summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2012-03-31 13:39:09 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2012-03-31 13:39:09 +0000
commit2c6405939667eb6da61fee9e8c0a6e9218313b98 (patch)
tree77a8df4bd2675475c38f0d8a666c79c705f35055
parentb5e7f4998b60effd62a2ad43db5e722dcb5dd1c3 (diff)
MAME going modern part 1 (no whatsnew)
- Added 4th parameter to all address maps - Added missing state classes
-rw-r--r--src/emu/addrmap.h3
-rw-r--r--src/emu/cpu/cop400/cop400.c14
-rw-r--r--src/emu/cpu/dsp56k/dsp56k.c4
-rw-r--r--src/emu/cpu/e132xs/e132xs.c12
-rw-r--r--src/emu/cpu/h83002/h8_16.c12
-rw-r--r--src/emu/cpu/h83002/h8_8.c2
-rw-r--r--src/emu/cpu/m37710/m37710.c2
-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/m68000/m68kcpu.c4
-rw-r--r--src/emu/cpu/mb88xx/mb88xx.c8
-rw-r--r--src/emu/cpu/mcs48/mcs48.c12
-rw-r--r--src/emu/cpu/mcs51/mcs51.c8
-rw-r--r--src/emu/cpu/pic16c5x/pic16c5x.c20
-rw-r--r--src/emu/cpu/pic16c62x/pic16c62x.c24
-rw-r--r--src/emu/cpu/powerpc/ppccom.c2
-rw-r--r--src/emu/cpu/sh2/sh2drc.c2
-rw-r--r--src/emu/cpu/sh4/sh4.c6
-rw-r--r--src/emu/cpu/sharc/sharc.c2
-rw-r--r--src/emu/cpu/tlcs90/tlcs90.c8
-rw-r--r--src/emu/cpu/tlcs900/tlcs900.c2
-rw-r--r--src/emu/cpu/tms0980/tms0980.c12
-rw-r--r--src/emu/cpu/tms32010/tms32010.c4
-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/cpu/z8/z8.c4
-rw-r--r--src/emu/machine/at28c16.c2
-rw-r--r--src/emu/machine/eeprom.c4
-rw-r--r--src/emu/machine/er2055.c2
-rw-r--r--src/emu/machine/i2cmem.c2
-rw-r--r--src/emu/machine/i8155.c2
-rw-r--r--src/emu/machine/i8355.c2
-rw-r--r--src/emu/machine/intelfsh.c16
-rw-r--r--src/emu/machine/x2212.c4
-rw-r--r--src/emu/sound/c352.c2
-rw-r--r--src/emu/sound/cdp1869.c2
-rw-r--r--src/emu/sound/es5503.c2
-rw-r--r--src/emu/sound/okim6295.c2
-rw-r--r--src/emu/sound/okim9810.c2
-rw-r--r--src/emu/video/315_5124.c2
-rw-r--r--src/emu/video/crt9007.c2
-rw-r--r--src/emu/video/h63484.c2
-rw-r--r--src/emu/video/hd61830.c2
-rw-r--r--src/emu/video/ramdac.c2
-rw-r--r--src/emu/video/sed1330.c2
-rw-r--r--src/mame/audio/atarijsa.c12
-rw-r--r--src/mame/audio/cage.c4
-rw-r--r--src/mame/audio/carnival.c4
-rw-r--r--src/mame/audio/cinemat.c4
-rw-r--r--src/mame/audio/dcs.c30
-rw-r--r--src/mame/audio/dkong.c12
-rw-r--r--src/mame/audio/exidy.c8
-rw-r--r--src/mame/audio/exidy440.c2
-rw-r--r--src/mame/audio/hyprolyb.c2
-rw-r--r--src/mame/audio/irem.c8
-rw-r--r--src/mame/audio/jedi.c2
-rw-r--r--src/mame/audio/leland.c8
-rw-r--r--src/mame/audio/mario.c6
-rw-r--r--src/mame/audio/mcr.c12
-rw-r--r--src/mame/audio/n8080.c6
-rw-r--r--src/mame/audio/namco52.c2
-rw-r--r--src/mame/audio/namco54.c2
-rw-r--r--src/mame/audio/qix.c2
-rw-r--r--src/mame/audio/redalert.c6
-rw-r--r--src/mame/audio/scramble.c4
-rw-r--r--src/mame/audio/segag80r.c2
-rw-r--r--src/mame/audio/segasnd.c10
-rw-r--r--src/mame/audio/seibu.c14
-rw-r--r--src/mame/audio/t5182.c4
-rw-r--r--src/mame/audio/taito_en.c2
-rw-r--r--src/mame/audio/taito_zm.c4
-rw-r--r--src/mame/audio/timeplt.c4
-rw-r--r--src/mame/audio/williams.c8
-rw-r--r--src/mame/drivers/1942.c4
-rw-r--r--src/mame/drivers/1943.c4
-rw-r--r--src/mame/drivers/1945kiii.c2
-rw-r--r--src/mame/drivers/20pacgal.c4
-rw-r--r--src/mame/drivers/2mindril.c2
-rw-r--r--src/mame/drivers/30test.c4
-rw-r--r--src/mame/drivers/39in1.c2
-rw-r--r--src/mame/drivers/3do.c2
-rw-r--r--src/mame/drivers/40love.c6
-rw-r--r--src/mame/drivers/4enraya.c8
-rw-r--r--src/mame/drivers/4roses.c2
-rw-r--r--src/mame/drivers/5clown.c4
-rw-r--r--src/mame/drivers/8080bw.c52
-rw-r--r--src/mame/drivers/88games.c4
-rw-r--r--src/mame/drivers/ace.c2
-rw-r--r--src/mame/drivers/acefruit.c4
-rw-r--r--src/mame/drivers/acommand.c2
-rw-r--r--src/mame/drivers/actfancr.c6
-rw-r--r--src/mame/drivers/adp.c14
-rw-r--r--src/mame/drivers/aeroboto.c4
-rw-r--r--src/mame/drivers/aerofgt.c34
-rw-r--r--src/mame/drivers/airbustr.c12
-rw-r--r--src/mame/drivers/ajax.c6
-rw-r--r--src/mame/drivers/albazc.c2
-rw-r--r--src/mame/drivers/albazg.c4
-rw-r--r--src/mame/drivers/aleck64.c4
-rw-r--r--src/mame/drivers/alg.c6
-rw-r--r--src/mame/drivers/aliens.c4
-rw-r--r--src/mame/drivers/alpha68k.c32
-rw-r--r--src/mame/drivers/amaticmg.c4
-rw-r--r--src/mame/drivers/ambush.c4
-rw-r--r--src/mame/drivers/ampoker2.c4
-rw-r--r--src/mame/drivers/amspdwy.c6
-rw-r--r--src/mame/drivers/angelkds.c8
-rw-r--r--src/mame/drivers/appoooh.c4
-rw-r--r--src/mame/drivers/aquarium.c6
-rw-r--r--src/mame/drivers/arabian.c6
-rw-r--r--src/mame/drivers/arcadecl.c2
-rw-r--r--src/mame/drivers/arcadia.c2
-rw-r--r--src/mame/drivers/argus.c14
-rw-r--r--src/mame/drivers/aristmk4.c4
-rw-r--r--src/mame/drivers/aristmk5.c4
-rw-r--r--src/mame/drivers/aristmk6.c4
-rw-r--r--src/mame/drivers/arkanoid.c10
-rw-r--r--src/mame/drivers/armedf.c24
-rw-r--r--src/mame/drivers/artmagic.c16
-rw-r--r--src/mame/drivers/ashnojoe.c6
-rw-r--r--src/mame/drivers/asterix.c4
-rw-r--r--src/mame/drivers/asteroid.c6
-rw-r--r--src/mame/drivers/astinvad.c8
-rw-r--r--src/mame/drivers/astrafr.c6
-rw-r--r--src/mame/drivers/astrocde.c28
-rw-r--r--src/mame/drivers/astrocorp.c8
-rw-r--r--src/mame/drivers/astrof.c6
-rw-r--r--src/mame/drivers/asuka.c18
-rw-r--r--src/mame/drivers/atarifb.c8
-rw-r--r--src/mame/drivers/atarig1.c2
-rw-r--r--src/mame/drivers/atarig42.c2
-rw-r--r--src/mame/drivers/atarigt.c2
-rw-r--r--src/mame/drivers/atarigx2.c2
-rw-r--r--src/mame/drivers/atarisy1.c4
-rw-r--r--src/mame/drivers/atarisy2.c4
-rw-r--r--src/mame/drivers/atarisy4.c10
-rw-r--r--src/mame/drivers/ataxx.c8
-rw-r--r--src/mame/drivers/atetris.c4
-rw-r--r--src/mame/drivers/attckufo.c2
-rw-r--r--src/mame/drivers/atvtrack.c8
-rw-r--r--src/mame/drivers/avalnche.c4
-rw-r--r--src/mame/drivers/aztarac.c4
-rw-r--r--src/mame/drivers/backfire.c2
-rw-r--r--src/mame/drivers/badlands.c6
-rw-r--r--src/mame/drivers/bagman.c6
-rw-r--r--src/mame/drivers/balsente.c8
-rw-r--r--src/mame/drivers/bankp.c4
-rw-r--r--src/mame/drivers/baraduke.c6
-rw-r--r--src/mame/drivers/bartop52.c2
-rw-r--r--src/mame/drivers/batman.c2
-rw-r--r--src/mame/drivers/battlane.c2
-rw-r--r--src/mame/drivers/battlera.c6
-rw-r--r--src/mame/drivers/battlex.c4
-rw-r--r--src/mame/drivers/battlnts.c4
-rw-r--r--src/mame/drivers/bbusters.c10
-rw-r--r--src/mame/drivers/beaminv.c4
-rw-r--r--src/mame/drivers/beezer.c4
-rw-r--r--src/mame/drivers/berzerk.c6
-rw-r--r--src/mame/drivers/bestleag.c2
-rw-r--r--src/mame/drivers/bfcobra.c6
-rw-r--r--src/mame/drivers/bfm_sc1.c6
-rw-r--r--src/mame/drivers/bfm_sc2.c4
-rw-r--r--src/mame/drivers/bfm_sc4.c4
-rw-r--r--src/mame/drivers/bfm_swp.c2
-rw-r--r--src/mame/drivers/bfmsys83.c2
-rw-r--r--src/mame/drivers/bfmsys85.c2
-rw-r--r--src/mame/drivers/big10.c4
-rw-r--r--src/mame/drivers/bigevglf.c12
-rw-r--r--src/mame/drivers/bigstrkb.c2
-rw-r--r--src/mame/drivers/bingoc.c6
-rw-r--r--src/mame/drivers/bingor.c6
-rw-r--r--src/mame/drivers/bionicc.c4
-rw-r--r--src/mame/drivers/bishi.c2
-rw-r--r--src/mame/drivers/bking.c8
-rw-r--r--src/mame/drivers/blackt96.c4
-rw-r--r--src/mame/drivers/bladestl.c4
-rw-r--r--src/mame/drivers/blitz.c4
-rw-r--r--src/mame/drivers/blitz68k.c20
-rw-r--r--src/mame/drivers/blktiger.c12
-rw-r--r--src/mame/drivers/blmbycar.c4
-rw-r--r--src/mame/drivers/blockade.c4
-rw-r--r--src/mame/drivers/blockhl.c4
-rw-r--r--src/mame/drivers/blockout.c6
-rw-r--r--src/mame/drivers/bloodbro.c4
-rw-r--r--src/mame/drivers/blstroid.c2
-rw-r--r--src/mame/drivers/blueprnt.c4
-rw-r--r--src/mame/drivers/bmcbowl.c2
-rw-r--r--src/mame/drivers/bmcpokr.c2
-rw-r--r--src/mame/drivers/bnstars.c4
-rw-r--r--src/mame/drivers/bogeyman.c2
-rw-r--r--src/mame/drivers/bombjack.c6
-rw-r--r--src/mame/drivers/boogwing.c4
-rw-r--r--src/mame/drivers/bottom9.c4
-rw-r--r--src/mame/drivers/boxer.c2
-rw-r--r--src/mame/drivers/brkthru.c6
-rw-r--r--src/mame/drivers/bsktball.c2
-rw-r--r--src/mame/drivers/btime.c20
-rw-r--r--src/mame/drivers/bublbobl.c18
-rw-r--r--src/mame/drivers/buggychl.c4
-rw-r--r--src/mame/drivers/buster.c2
-rw-r--r--src/mame/drivers/bwidow.c4
-rw-r--r--src/mame/drivers/bwing.c8
-rw-r--r--src/mame/drivers/bzone.c4
-rw-r--r--src/mame/drivers/cabal.c16
-rw-r--r--src/mame/drivers/cabaret.c4
-rw-r--r--src/mame/drivers/calchase.c4
-rw-r--r--src/mame/drivers/calomega.c8
-rw-r--r--src/mame/drivers/calorie.c6
-rw-r--r--src/mame/drivers/canyon.c2
-rw-r--r--src/mame/drivers/capbowl.c6
-rw-r--r--src/mame/drivers/cardline.c4
-rw-r--r--src/mame/drivers/carjmbre.c6
-rw-r--r--src/mame/drivers/carpolo.c2
-rw-r--r--src/mame/drivers/carrera.c4
-rw-r--r--src/mame/drivers/caswin.c4
-rw-r--r--src/mame/drivers/cave.c56
-rw-r--r--src/mame/drivers/cb2001.c4
-rw-r--r--src/mame/drivers/cball.c2
-rw-r--r--src/mame/drivers/cbasebal.c4
-rw-r--r--src/mame/drivers/cbuster.c4
-rw-r--r--src/mame/drivers/ccastles.c2
-rw-r--r--src/mame/drivers/cchance.c2
-rw-r--r--src/mame/drivers/cchasm.c6
-rw-r--r--src/mame/drivers/cclimber.c22
-rw-r--r--src/mame/drivers/cd32.c2
-rw-r--r--src/mame/drivers/cdi.c2
-rw-r--r--src/mame/drivers/centiped.c14
-rw-r--r--src/mame/drivers/chaknpop.c2
-rw-r--r--src/mame/drivers/cham24.c2
-rw-r--r--src/mame/drivers/champbas.c16
-rw-r--r--src/mame/drivers/champbwl.c4
-rw-r--r--src/mame/drivers/chanbara.c2
-rw-r--r--src/mame/drivers/changela.c4
-rw-r--r--src/mame/drivers/cheekyms.c4
-rw-r--r--src/mame/drivers/chihiro.c4
-rw-r--r--src/mame/drivers/chinagat.c14
-rw-r--r--src/mame/drivers/chinsan.c4
-rw-r--r--src/mame/drivers/chqflag.c4
-rw-r--r--src/mame/drivers/cinemat.c14
-rw-r--r--src/mame/drivers/circus.c2
-rw-r--r--src/mame/drivers/circusc.c4
-rw-r--r--src/mame/drivers/cischeat.c34
-rw-r--r--src/mame/drivers/citycon.c4
-rw-r--r--src/mame/drivers/clayshoo.c4
-rw-r--r--src/mame/drivers/cliffhgr.c4
-rw-r--r--src/mame/drivers/cloak.c4
-rw-r--r--src/mame/drivers/cloud9.c2
-rw-r--r--src/mame/drivers/clshroad.c4
-rw-r--r--src/mame/drivers/cmmb.c2
-rw-r--r--src/mame/drivers/cninja.c16
-rw-r--r--src/mame/drivers/cntsteer.c10
-rw-r--r--src/mame/drivers/coinmstr.c10
-rw-r--r--src/mame/drivers/coinmvga.c4
-rw-r--r--src/mame/drivers/combatsc.c8
-rw-r--r--src/mame/drivers/commando.c4
-rw-r--r--src/mame/drivers/compgolf.c2
-rw-r--r--src/mame/drivers/contra.c4
-rw-r--r--src/mame/drivers/coolpool.c14
-rw-r--r--src/mame/drivers/coolridr.c6
-rw-r--r--src/mame/drivers/cop01.c12
-rw-r--r--src/mame/drivers/copsnrob.c2
-rw-r--r--src/mame/drivers/corona.c32
-rw-r--r--src/mame/drivers/cosmic.c10
-rw-r--r--src/mame/drivers/cps1.c10
-rw-r--r--src/mame/drivers/cps2.c4
-rw-r--r--src/mame/drivers/cps3.c2
-rw-r--r--src/mame/drivers/crbaloon.c4
-rw-r--r--src/mame/drivers/crgolf.c4
-rw-r--r--src/mame/drivers/crimfght.c4
-rw-r--r--src/mame/drivers/crospang.c8
-rw-r--r--src/mame/drivers/crshrace.c6
-rw-r--r--src/mame/drivers/crystal.c2
-rw-r--r--src/mame/drivers/cshooter.c6
-rw-r--r--src/mame/drivers/csplayh5.c10
-rw-r--r--src/mame/drivers/cubeqst.c6
-rw-r--r--src/mame/drivers/cultures.c4
-rw-r--r--src/mame/drivers/cvs.c12
-rw-r--r--src/mame/drivers/cyberbal.c10
-rw-r--r--src/mame/drivers/cybertnk.c6
-rw-r--r--src/mame/drivers/cyclemb.c8
-rw-r--r--src/mame/drivers/d9final.c4
-rw-r--r--src/mame/drivers/dacholer.c14
-rw-r--r--src/mame/drivers/dai3wksi.c2
-rw-r--r--src/mame/drivers/dambustr.c2
-rw-r--r--src/mame/drivers/darius.c10
-rw-r--r--src/mame/drivers/darkhors.c10
-rw-r--r--src/mame/drivers/darkmist.c2
-rw-r--r--src/mame/drivers/darkseal.c4
-rw-r--r--src/mame/drivers/dassault.c6
-rw-r--r--src/mame/drivers/dblewing.c6
-rw-r--r--src/mame/drivers/dbz.c6
-rw-r--r--src/mame/drivers/dcheese.c4
-rw-r--r--src/mame/drivers/dcon.c2
-rw-r--r--src/mame/drivers/dday.c2
-rw-r--r--src/mame/drivers/ddayjlc.c4
-rw-r--r--src/mame/drivers/ddealer.c2
-rw-r--r--src/mame/drivers/ddenlovr.c74
-rw-r--r--src/mame/drivers/ddragon.c18
-rw-r--r--src/mame/drivers/ddragon3.c10
-rw-r--r--src/mame/drivers/ddribble.c6
-rw-r--r--src/mame/drivers/ddz.c2
-rw-r--r--src/mame/drivers/deadang.c4
-rw-r--r--src/mame/drivers/dec0.c24
-rw-r--r--src/mame/drivers/dec8.c36
-rw-r--r--src/mame/drivers/deco156.c4
-rw-r--r--src/mame/drivers/deco32.c20
-rw-r--r--src/mame/drivers/deco_ld.c8
-rw-r--r--src/mame/drivers/deco_mlc.c2
-rw-r--r--src/mame/drivers/decocass.c6
-rw-r--r--src/mame/drivers/deniam.c8
-rw-r--r--src/mame/drivers/deshoros.c2
-rw-r--r--src/mame/drivers/destroyr.c2
-rw-r--r--src/mame/drivers/dfruit.c4
-rw-r--r--src/mame/drivers/dgpix.c4
-rw-r--r--src/mame/drivers/dietgo.c4
-rw-r--r--src/mame/drivers/discoboy.c6
-rw-r--r--src/mame/drivers/diverboy.c4
-rw-r--r--src/mame/drivers/djboy.c14
-rw-r--r--src/mame/drivers/djmain.c2
-rw-r--r--src/mame/drivers/dkong.c14
-rw-r--r--src/mame/drivers/dlair.c6
-rw-r--r--src/mame/drivers/dmndrby.c4
-rw-r--r--src/mame/drivers/docastle.c16
-rw-r--r--src/mame/drivers/dogfgt.c4
-rw-r--r--src/mame/drivers/dominob.c4
-rw-r--r--src/mame/drivers/dooyong.c24
-rw-r--r--src/mame/drivers/dorachan.c4
-rw-r--r--src/mame/drivers/dotrikun.c4
-rw-r--r--src/mame/drivers/dragrace.c2
-rw-r--r--src/mame/drivers/dreamwld.c4
-rw-r--r--src/mame/drivers/drgnmst.c4
-rw-r--r--src/mame/drivers/dribling.c4
-rw-r--r--src/mame/drivers/drmicro.c4
-rw-r--r--src/mame/drivers/drtomy.c2
-rw-r--r--src/mame/drivers/drw80pkr.c4
-rw-r--r--src/mame/drivers/dunhuang.c4
-rw-r--r--src/mame/drivers/dwarfd.c8
-rw-r--r--src/mame/drivers/dynadice.c8
-rw-r--r--src/mame/drivers/dynax.c51
-rw-r--r--src/mame/drivers/dynduke.c6
-rw-r--r--src/mame/drivers/ecoinf1.c4
-rw-r--r--src/mame/drivers/ecoinf2.c4
-rw-r--r--src/mame/drivers/ecoinf3.c6
-rw-r--r--src/mame/drivers/ecoinfr.c4
-rw-r--r--src/mame/drivers/egghunt.c6
-rw-r--r--src/mame/drivers/embargo.c4
-rw-r--r--src/mame/drivers/enigma2.c8
-rw-r--r--src/mame/drivers/eolith.c2
-rw-r--r--src/mame/drivers/eolith16.c2
-rw-r--r--src/mame/drivers/epos.c8
-rw-r--r--src/mame/drivers/eprom.c6
-rw-r--r--src/mame/drivers/equites.c10
-rw-r--r--src/mame/drivers/ertictac.c2
-rw-r--r--src/mame/drivers/esd16.c12
-rw-r--r--src/mame/drivers/esh.c4
-rw-r--r--src/mame/drivers/espial.c8
-rw-r--r--src/mame/drivers/esripsys.c8
-rw-r--r--src/mame/drivers/ettrivia.c4
-rw-r--r--src/mame/drivers/exedexes.c4
-rw-r--r--src/mame/drivers/exerion.c4
-rw-r--r--src/mame/drivers/exidy.c16
-rw-r--r--src/mame/drivers/exidy440.c2
-rw-r--r--src/mame/drivers/expro02.c4
-rw-r--r--src/mame/drivers/exprraid.c6
-rw-r--r--src/mame/drivers/exterm.c8
-rw-r--r--src/mame/drivers/extrema.c4
-rw-r--r--src/mame/drivers/exzisus.c8
-rw-r--r--src/mame/drivers/f-32.c4
-rw-r--r--src/mame/drivers/f1gp.c14
-rw-r--r--src/mame/drivers/famibox.c2
-rw-r--r--src/mame/drivers/fantland.c18
-rw-r--r--src/mame/drivers/fastfred.c8
-rw-r--r--src/mame/drivers/fastlane.c2
-rw-r--r--src/mame/drivers/fcombat.c4
-rw-r--r--src/mame/drivers/fcrash.c6
-rw-r--r--src/mame/drivers/feversoc.c2
-rw-r--r--src/mame/drivers/fgoal.c2
-rw-r--r--src/mame/drivers/finalizr.c6
-rw-r--r--src/mame/drivers/firebeat.c4
-rw-r--r--src/mame/drivers/firefox.c4
-rw-r--r--src/mame/drivers/firetrap.c6
-rw-r--r--src/mame/drivers/firetrk.c6
-rw-r--r--src/mame/drivers/fitfight.c8
-rw-r--r--src/mame/drivers/flkatck.c4
-rw-r--r--src/mame/drivers/flower.c4
-rw-r--r--src/mame/drivers/flstory.c12
-rw-r--r--src/mame/drivers/flyball.c2
-rw-r--r--src/mame/drivers/foodf.c2
-rw-r--r--src/mame/drivers/forte2.c4
-rw-r--r--src/mame/drivers/fortecar.c4
-rw-r--r--src/mame/drivers/freekick.c12
-rw-r--r--src/mame/drivers/fromanc2.c14
-rw-r--r--src/mame/drivers/fromance.c14
-rw-r--r--src/mame/drivers/funkybee.c4
-rw-r--r--src/mame/drivers/funkyjet.c4
-rw-r--r--src/mame/drivers/funworld.c12
-rw-r--r--src/mame/drivers/funybubl.c6
-rw-r--r--src/mame/drivers/fuukifg2.c6
-rw-r--r--src/mame/drivers/fuukifg3.c6
-rw-r--r--src/mame/drivers/gaelco.c10
-rw-r--r--src/mame/drivers/gaelco2.c12
-rw-r--r--src/mame/drivers/gaelco3d.c10
-rw-r--r--src/mame/drivers/gaiden.c14
-rw-r--r--src/mame/drivers/gal3.c10
-rw-r--r--src/mame/drivers/galaga.c14
-rw-r--r--src/mame/drivers/galastrm.c2
-rw-r--r--src/mame/drivers/galaxi.c2
-rw-r--r--src/mame/drivers/galaxia.c6
-rw-r--r--src/mame/drivers/galaxian.c62
-rw-r--r--src/mame/drivers/galaxold.c50
-rw-r--r--src/mame/drivers/galgame.c2
-rw-r--r--src/mame/drivers/galivan.c12
-rw-r--r--src/mame/drivers/galpani2.c4
-rw-r--r--src/mame/drivers/galpani3.c2
-rw-r--r--src/mame/drivers/galpanic.c12
-rw-r--r--src/mame/drivers/galspnbl.c4
-rw-r--r--src/mame/drivers/gamecstl.c4
-rw-r--r--src/mame/drivers/gameplan.c6
-rw-r--r--src/mame/drivers/gamtor.c2
-rw-r--r--src/mame/drivers/gaplus.c8
-rw-r--r--src/mame/drivers/gatron.c4
-rw-r--r--src/mame/drivers/gauntlet.c4
-rw-r--r--src/mame/drivers/gberet.c6
-rw-r--r--src/mame/drivers/gbusters.c4
-rw-r--r--src/mame/drivers/gcpinbal.c2
-rw-r--r--src/mame/drivers/gei.c20
-rw-r--r--src/mame/drivers/ggconnie.c4
-rw-r--r--src/mame/drivers/ghosteo.c2
-rw-r--r--src/mame/drivers/gijoe.c4
-rw-r--r--src/mame/drivers/ginganin.c4
-rw-r--r--src/mame/drivers/gladiatr.c18
-rw-r--r--src/mame/drivers/glass.c2
-rw-r--r--src/mame/drivers/gng.c4
-rw-r--r--src/mame/drivers/go2000.c6
-rw-r--r--src/mame/drivers/goal92.c4
-rw-r--r--src/mame/drivers/goindol.c4
-rw-r--r--src/mame/drivers/goldngam.c4
-rw-r--r--src/mame/drivers/goldnpkr.c20
-rw-r--r--src/mame/drivers/goldstar.c34
-rw-r--r--src/mame/drivers/gomoku.c2
-rw-r--r--src/mame/drivers/good.c2
-rw-r--r--src/mame/drivers/goodejan.c8
-rw-r--r--src/mame/drivers/gotcha.c4
-rw-r--r--src/mame/drivers/gottlieb.c4
-rw-r--r--src/mame/drivers/gotya.c2
-rw-r--r--src/mame/drivers/gpworld.c4
-rw-r--r--src/mame/drivers/gradius3.c6
-rw-r--r--src/mame/drivers/grchamp.c10
-rw-r--r--src/mame/drivers/gridlee.c2
-rw-r--r--src/mame/drivers/groundfx.c2
-rw-r--r--src/mame/drivers/gstream.c4
-rw-r--r--src/mame/drivers/gstriker.c8
-rw-r--r--src/mame/drivers/gsword.c16
-rw-r--r--src/mame/drivers/gticlub.c10
-rw-r--r--src/mame/drivers/guab.c2
-rw-r--r--src/mame/drivers/gumbo.c6
-rw-r--r--src/mame/drivers/gunbustr.c2
-rw-r--r--src/mame/drivers/gundealr.c4
-rw-r--r--src/mame/drivers/gunpey.c4
-rw-r--r--src/mame/drivers/gunsmoke.c4
-rw-r--r--src/mame/drivers/gyruss.c12
-rw-r--r--src/mame/drivers/halleys.c4
-rw-r--r--src/mame/drivers/hanaawas.c4
-rw-r--r--src/mame/drivers/harddriv.c36
-rw-r--r--src/mame/drivers/hcastle.c4
-rw-r--r--src/mame/drivers/hexion.c2
-rw-r--r--src/mame/drivers/higemaru.c2
-rw-r--r--src/mame/drivers/highvdeo.c20
-rw-r--r--src/mame/drivers/hikaru.c13
-rw-r--r--src/mame/drivers/himesiki.c8
-rw-r--r--src/mame/drivers/hitme.c4
-rw-r--r--src/mame/drivers/hitpoker.c4
-rw-r--r--src/mame/drivers/hnayayoi.c10
-rw-r--r--src/mame/drivers/hng64.c8
-rw-r--r--src/mame/drivers/holeland.c6
-rw-r--r--src/mame/drivers/homedata.c24
-rw-r--r--src/mame/drivers/homerun.c4
-rw-r--r--src/mame/drivers/hornet.c10
-rw-r--r--src/mame/drivers/hotblock.c4
-rw-r--r--src/mame/drivers/hotstuff.c2
-rw-r--r--src/mame/drivers/hvyunit.c14
-rw-r--r--src/mame/drivers/hyhoo.c4
-rw-r--r--src/mame/drivers/hyperspt.c8
-rw-r--r--src/mame/drivers/hyprduel.c8
-rw-r--r--src/mame/drivers/igs009.c4
-rw-r--r--src/mame/drivers/igs011.c14
-rw-r--r--src/mame/drivers/igs017.c14
-rw-r--r--src/mame/drivers/igs_m027.c2
-rw-r--r--src/mame/drivers/igspoker.c8
-rw-r--r--src/mame/drivers/ikki.c4
-rw-r--r--src/mame/drivers/imolagp.c8
-rw-r--r--src/mame/drivers/intrscti.c4
-rw-r--r--src/mame/drivers/inufuku.c6
-rw-r--r--src/mame/drivers/iqblock.c4
-rw-r--r--src/mame/drivers/irobot.c2
-rw-r--r--src/mame/drivers/ironhors.c10
-rw-r--r--src/mame/drivers/istellar.c12
-rw-r--r--src/mame/drivers/itech32.c16
-rw-r--r--src/mame/drivers/itech8.c20
-rw-r--r--src/mame/drivers/itgambl2.c2
-rw-r--r--src/mame/drivers/itgambl3.c2
-rw-r--r--src/mame/drivers/jack.c8
-rw-r--r--src/mame/drivers/jackal.c4
-rw-r--r--src/mame/drivers/jackie.c4
-rw-r--r--src/mame/drivers/jackpool.c2
-rw-r--r--src/mame/drivers/jaguar.c14
-rw-r--r--src/mame/drivers/jailbrek.c2
-rw-r--r--src/mame/drivers/jalmah.c4
-rw-r--r--src/mame/drivers/jangou.c24
-rw-r--r--src/mame/drivers/jankenmn.c4
-rw-r--r--src/mame/drivers/jantotsu.c4
-rw-r--r--src/mame/drivers/jchan.c4
-rw-r--r--src/mame/drivers/jedi.c2
-rw-r--r--src/mame/drivers/jokrwild.c2
-rw-r--r--src/mame/drivers/jollyjgr.c4
-rw-r--r--src/mame/drivers/jongkyo.c4
-rw-r--r--src/mame/drivers/jpmimpct.c6
-rw-r--r--src/mame/drivers/jpmsys5.c4
-rw-r--r--src/mame/drivers/jrpacman.c4
-rw-r--r--src/mame/drivers/jubilee.c4
-rw-r--r--src/mame/drivers/junofrst.c8
-rw-r--r--src/mame/drivers/kaneko16.c28
-rw-r--r--src/mame/drivers/kangaroo.c6
-rw-r--r--src/mame/drivers/karnov.c4
-rw-r--r--src/mame/drivers/kas89.c8
-rw-r--r--src/mame/drivers/kchamp.c16
-rw-r--r--src/mame/drivers/kickgoal.c6
-rw-r--r--src/mame/drivers/kingdrby.c18
-rw-r--r--src/mame/drivers/kingobox.c18
-rw-r--r--src/mame/drivers/kingpin.c6
-rw-r--r--src/mame/drivers/kinst.c2
-rw-r--r--src/mame/drivers/klax.c2
-rw-r--r--src/mame/drivers/kncljoe.c6
-rw-r--r--src/mame/drivers/koftball.c2
-rw-r--r--src/mame/drivers/koikoi.c4
-rw-r--r--src/mame/drivers/konamigq.c4
-rw-r--r--src/mame/drivers/konamigv.c2
-rw-r--r--src/mame/drivers/konamigx.c14
-rw-r--r--src/mame/drivers/konamim2.c2
-rw-r--r--src/mame/drivers/kongambl.c4
-rw-r--r--src/mame/drivers/kopunch.c4
-rw-r--r--src/mame/drivers/ksayakyu.c4
-rw-r--r--src/mame/drivers/ksys573.c2
-rw-r--r--src/mame/drivers/kungfur.c2
-rw-r--r--src/mame/drivers/kyugo.c22
-rw-r--r--src/mame/drivers/labyrunr.c2
-rw-r--r--src/mame/drivers/ladybug.c8
-rw-r--r--src/mame/drivers/ladyfrog.c4
-rw-r--r--src/mame/drivers/laserbas.c4
-rw-r--r--src/mame/drivers/laserbat.c8
-rw-r--r--src/mame/drivers/lasso.c20
-rw-r--r--src/mame/drivers/lastbank.c4
-rw-r--r--src/mame/drivers/lastduel.c8
-rw-r--r--src/mame/drivers/lastfght.c2
-rw-r--r--src/mame/drivers/lazercmd.c8
-rw-r--r--src/mame/drivers/legionna.c18
-rw-r--r--src/mame/drivers/leland.c10
-rw-r--r--src/mame/drivers/lemmings.c4
-rw-r--r--src/mame/drivers/lethal.c4
-rw-r--r--src/mame/drivers/lethalj.c2
-rw-r--r--src/mame/drivers/lgp.c8
-rw-r--r--src/mame/drivers/liberate.c16
-rw-r--r--src/mame/drivers/limenko.c10
-rw-r--r--src/mame/drivers/littlerb.c6
-rw-r--r--src/mame/drivers/lkage.c8
-rw-r--r--src/mame/drivers/lockon.c10
-rw-r--r--src/mame/drivers/looping.c14
-rw-r--r--src/mame/drivers/lordgun.c10
-rw-r--r--src/mame/drivers/lsasquad.c12
-rw-r--r--src/mame/drivers/ltcasino.c2
-rw-r--r--src/mame/drivers/luckgrln.c8
-rw-r--r--src/mame/drivers/lucky74.c4
-rw-r--r--src/mame/drivers/lvcards.c8
-rw-r--r--src/mame/drivers/lwings.c14
-rw-r--r--src/mame/drivers/m10.c6
-rw-r--r--src/mame/drivers/m107.c10
-rw-r--r--src/mame/drivers/m14.c4
-rw-r--r--src/mame/drivers/m52.c6
-rw-r--r--src/mame/drivers/m57.c2
-rw-r--r--src/mame/drivers/m58.c2
-rw-r--r--src/mame/drivers/m62.c38
-rw-r--r--src/mame/drivers/m63.c8
-rw-r--r--src/mame/drivers/m72.c42
-rw-r--r--src/mame/drivers/m79amb.c2
-rw-r--r--src/mame/drivers/m90.c18
-rw-r--r--src/mame/drivers/m92.c10
-rw-r--r--src/mame/drivers/macrossp.c4
-rw-r--r--src/mame/drivers/macs.c4
-rw-r--r--src/mame/drivers/madalien.c4
-rw-r--r--src/mame/drivers/madmotor.c4
-rw-r--r--src/mame/drivers/magic10.c10
-rw-r--r--src/mame/drivers/magicard.c2
-rw-r--r--src/mame/drivers/magicfly.c2
-rw-r--r--src/mame/drivers/magmax.c6
-rw-r--r--src/mame/drivers/magtouch.c4
-rw-r--r--src/mame/drivers/mainevt.c8
-rw-r--r--src/mame/drivers/mainsnk.c6
-rw-r--r--src/mame/drivers/majorpkr.c4
-rw-r--r--src/mame/drivers/malzak.c6
-rw-r--r--src/mame/drivers/manohman.c2
-rw-r--r--src/mame/drivers/mappy.c14
-rw-r--r--src/mame/drivers/marineb.c6
-rw-r--r--src/mame/drivers/marinedt.c4
-rw-r--r--src/mame/drivers/mario.c6
-rw-r--r--src/mame/drivers/markham.c4
-rw-r--r--src/mame/drivers/mastboy.c4
-rw-r--r--src/mame/drivers/matmania.c10
-rw-r--r--src/mame/drivers/maxaflex.c4
-rw-r--r--src/mame/drivers/maygay1b.c2
-rw-r--r--src/mame/drivers/maygaysw.c2
-rw-r--r--src/mame/drivers/maygayv1.c8
-rw-r--r--src/mame/drivers/mayumi.c4
-rw-r--r--src/mame/drivers/mazerbla.c18
-rw-r--r--src/mame/drivers/mcatadv.c10
-rw-r--r--src/mame/drivers/mcr.c16
-rw-r--r--src/mame/drivers/mcr3.c8
-rw-r--r--src/mame/drivers/mcr68.c8
-rw-r--r--src/mame/drivers/meadows.c10
-rw-r--r--src/mame/drivers/mediagx.c6
-rw-r--r--src/mame/drivers/megaplay.c4
-rw-r--r--src/mame/drivers/megasys1.c16
-rw-r--r--src/mame/drivers/megatech.c4
-rw-r--r--src/mame/drivers/megazone.c10
-rw-r--r--src/mame/drivers/meijinsn.c6
-rw-r--r--src/mame/drivers/merit.c26
-rw-r--r--src/mame/drivers/meritm.c12
-rw-r--r--src/mame/drivers/mermaid.c4
-rw-r--r--src/mame/drivers/metalmx.c12
-rw-r--r--src/mame/drivers/metlclsh.c4
-rw-r--r--src/mame/drivers/metro.c58
-rw-r--r--src/mame/drivers/mexico86.c8
-rw-r--r--src/mame/drivers/mgolf.c2
-rw-r--r--src/mame/drivers/mhavoc.c6
-rw-r--r--src/mame/drivers/micro3d.c12
-rw-r--r--src/mame/drivers/midas.c4
-rw-r--r--src/mame/drivers/midtunit.c2
-rw-r--r--src/mame/drivers/midvunit.c4
-rw-r--r--src/mame/drivers/midwunit.c2
-rw-r--r--src/mame/drivers/midxunit.c2
-rw-r--r--src/mame/drivers/midyunit.c4
-rw-r--r--src/mame/drivers/midzeus.c6
-rw-r--r--src/mame/drivers/mikie.c4
-rw-r--r--src/mame/drivers/mil4000.c2
-rw-r--r--src/mame/drivers/miniboy7.c2
-rw-r--r--src/mame/drivers/minivadr.c2
-rw-r--r--src/mame/drivers/mirage.c2
-rw-r--r--src/mame/drivers/mirax.c4
-rw-r--r--src/mame/drivers/missb2.c6
-rw-r--r--src/mame/drivers/missile.c2
-rw-r--r--src/mame/drivers/mitchell.c18
-rw-r--r--src/mame/drivers/mjkjidai.c4
-rw-r--r--src/mame/drivers/mjsister.c4
-rw-r--r--src/mame/drivers/mlanding.c14
-rw-r--r--src/mame/drivers/model1.c10
-rw-r--r--src/mame/drivers/model2.c24
-rw-r--r--src/mame/drivers/model3.c4
-rw-r--r--src/mame/drivers/mogura.c4
-rw-r--r--src/mame/drivers/mole.c2
-rw-r--r--src/mame/drivers/momoko.c4
-rw-r--r--src/mame/drivers/monzagp.c4
-rw-r--r--src/mame/drivers/moo.c8
-rw-r--r--src/mame/drivers/mosaic.c8
-rw-r--r--src/mame/drivers/mouser.c6
-rw-r--r--src/mame/drivers/mpoker.c2
-rw-r--r--src/mame/drivers/mpu3.c2
-rw-r--r--src/mame/drivers/mpu4.c2
-rw-r--r--src/mame/drivers/mpu4vid.c12
-rw-r--r--src/mame/drivers/mquake.c4
-rw-r--r--src/mame/drivers/mrdo.c2
-rw-r--r--src/mame/drivers/mrflea.c8
-rw-r--r--src/mame/drivers/mrjong.c4
-rw-r--r--src/mame/drivers/ms32.c6
-rw-r--r--src/mame/drivers/msisaac.c4
-rw-r--r--src/mame/drivers/mugsmash.c4
-rw-r--r--src/mame/drivers/multfish.c6
-rw-r--r--src/mame/drivers/multigam.c8
-rw-r--r--src/mame/drivers/munchmo.c4
-rw-r--r--src/mame/drivers/murogem.c2
-rw-r--r--src/mame/drivers/murogmbl.c2
-rw-r--r--src/mame/drivers/mustache.c2
-rw-r--r--src/mame/drivers/mw18w.c4
-rw-r--r--src/mame/drivers/mw8080bw.c44
-rw-r--r--src/mame/drivers/mwarr.c2
-rw-r--r--src/mame/drivers/mystston.c2
-rw-r--r--src/mame/drivers/mystwarr.c14
-rw-r--r--src/mame/drivers/n8080.c6
-rw-r--r--src/mame/drivers/namcofl.c6
-rw-r--r--src/mame/drivers/namcona1.c8
-rw-r--r--src/mame/drivers/namconb1.c8
-rw-r--r--src/mame/drivers/namcond1.c6
-rw-r--r--src/mame/drivers/namcos1.c10
-rw-r--r--src/mame/drivers/namcos10.c2
-rw-r--r--src/mame/drivers/namcos11.c6
-rw-r--r--src/mame/drivers/namcos12.c6
-rw-r--r--src/mame/drivers/namcos2.c55
-rw-r--r--src/mame/drivers/namcos21.c36
-rw-r--r--src/mame/drivers/namcos22.c24
-rw-r--r--src/mame/drivers/namcos23.c22
-rw-r--r--src/mame/drivers/namcos86.c8
-rw-r--r--src/mame/drivers/naomi.c10
-rw-r--r--src/mame/drivers/naughtyb.c4
-rw-r--r--src/mame/drivers/nbmj8688.c28
-rw-r--r--src/mame/drivers/nbmj8891.c48
-rw-r--r--src/mame/drivers/nbmj8900.c6
-rw-r--r--src/mame/drivers/nbmj8991.c30
-rw-r--r--src/mame/drivers/nbmj9195.c66
-rw-r--r--src/mame/drivers/nemesis.c28
-rw-r--r--src/mame/drivers/neogeo.c6
-rw-r--r--src/mame/drivers/neoprint.c8
-rw-r--r--src/mame/drivers/news.c2
-rw-r--r--src/mame/drivers/nexus3d.c2
-rw-r--r--src/mame/drivers/nightgal.c18
-rw-r--r--src/mame/drivers/ninjakd2.c12
-rw-r--r--src/mame/drivers/ninjaw.c10
-rw-r--r--src/mame/drivers/nitedrvr.c2
-rw-r--r--src/mame/drivers/niyanpai.c12
-rw-r--r--src/mame/drivers/nmg5.c10
-rw-r--r--src/mame/drivers/nmk16.c58
-rw-r--r--src/mame/drivers/norautp.c30
-rw-r--r--src/mame/drivers/nova2001.c16
-rw-r--r--src/mame/drivers/nsmpoker.c4
-rw-r--r--src/mame/drivers/nss.c8
-rw-r--r--src/mame/drivers/nwk-tr.c6
-rw-r--r--src/mame/drivers/nycaptor.c18
-rw-r--r--src/mame/drivers/nyny.c6
-rw-r--r--src/mame/drivers/offtwall.c2
-rw-r--r--src/mame/drivers/ohmygod.c2
-rw-r--r--src/mame/drivers/ojankohs.c14
-rw-r--r--src/mame/drivers/olibochu.c4
-rw-r--r--src/mame/drivers/omegrace.c8
-rw-r--r--src/mame/drivers/oneshot.c4
-rw-r--r--src/mame/drivers/onetwo.c8
-rw-r--r--src/mame/drivers/opwolf.c8
-rw-r--r--src/mame/drivers/orbit.c2
-rw-r--r--src/mame/drivers/othello.c10
-rw-r--r--src/mame/drivers/othldrby.c2
-rw-r--r--src/mame/drivers/othunder.c4
-rw-r--r--src/mame/drivers/overdriv.c6
-rw-r--r--src/mame/drivers/pachifev.c4
-rw-r--r--src/mame/drivers/pacland.c6
-rw-r--r--src/mame/drivers/pacman.c52
-rw-r--r--src/mame/drivers/pandoras.c10
-rw-r--r--src/mame/drivers/pangofun.c4
-rw-r--r--src/mame/drivers/panicr.c2
-rw-r--r--src/mame/drivers/paradise.c10
-rw-r--r--src/mame/drivers/paranoia.c12
-rw-r--r--src/mame/drivers/parodius.c4
-rw-r--r--src/mame/drivers/pasha2.c4
-rw-r--r--src/mame/drivers/pass.c6
-rw-r--r--src/mame/drivers/pastelg.c6
-rw-r--r--src/mame/drivers/pbaction.c6
-rw-r--r--src/mame/drivers/pcat_dyn.c4
-rw-r--r--src/mame/drivers/pcat_nit.c4
-rw-r--r--src/mame/drivers/pcktgal.c4
-rw-r--r--src/mame/drivers/pcxt.c8
-rw-r--r--src/mame/drivers/pengadvb.c4
-rw-r--r--src/mame/drivers/pengo.c4
-rw-r--r--src/mame/drivers/peplus.c4
-rw-r--r--src/mame/drivers/peyper.c4
-rw-r--r--src/mame/drivers/pgm.c10
-rw-r--r--src/mame/drivers/pgm2.c2
-rw-r--r--src/mame/drivers/phoenix.c6
-rw-r--r--src/mame/drivers/photon.c4
-rw-r--r--src/mame/drivers/photon2.c4
-rw-r--r--src/mame/drivers/photoply.c4
-rw-r--r--src/mame/drivers/pingpong.c4
-rw-r--r--src/mame/drivers/pinkiri8.c6
-rw-r--r--src/mame/drivers/pipedrm.c10
-rw-r--r--src/mame/drivers/pipeline.c8
-rw-r--r--src/mame/drivers/pirates.c2
-rw-r--r--src/mame/drivers/pitnrun.c8
-rw-r--r--src/mame/drivers/pkscram.c2
-rw-r--r--src/mame/drivers/pktgaldx.c4
-rw-r--r--src/mame/drivers/playch10.c6
-rw-r--r--src/mame/drivers/playmark.c14
-rw-r--r--src/mame/drivers/pluto5.c2
-rw-r--r--src/mame/drivers/plygonet.c8
-rw-r--r--src/mame/drivers/pntnpuzl.c2
-rw-r--r--src/mame/drivers/pokechmp.c4
-rw-r--r--src/mame/drivers/poker72.c2
-rw-r--r--src/mame/drivers/polepos.c10
-rw-r--r--src/mame/drivers/policetr.c4
-rw-r--r--src/mame/drivers/polyplay.c4
-rw-r--r--src/mame/drivers/poo.c8
-rw-r--r--src/mame/drivers/poolshrk.c2
-rw-r--r--src/mame/drivers/pooyan.c2
-rw-r--r--src/mame/drivers/popeye.c8
-rw-r--r--src/mame/drivers/popobear.c2
-rw-r--r--src/mame/drivers/popper.c4
-rw-r--r--src/mame/drivers/portrait.c4
-rw-r--r--src/mame/drivers/potgoldu.c2
-rw-r--r--src/mame/drivers/powerbal.c4
-rw-r--r--src/mame/drivers/powerins.c10
-rw-r--r--src/mame/drivers/ppmast93.c8
-rw-r--r--src/mame/drivers/prehisle.c6
-rw-r--r--src/mame/drivers/progolf.c4
-rw-r--r--src/mame/drivers/psattack.c2
-rw-r--r--src/mame/drivers/psikyo.c16
-rw-r--r--src/mame/drivers/psikyo4.c2
-rw-r--r--src/mame/drivers/psikyosh.c4
-rw-r--r--src/mame/drivers/psychic5.c12
-rw-r--r--src/mame/drivers/pturn.c4
-rw-r--r--src/mame/drivers/puckpkmn.c4
-rw-r--r--src/mame/drivers/punchout.c8
-rw-r--r--src/mame/drivers/pushman.c10
-rw-r--r--src/mame/drivers/pzletime.c2
-rw-r--r--src/mame/drivers/qdrmfgp.c4
-rw-r--r--src/mame/drivers/qix.c6
-rw-r--r--src/mame/drivers/quakeat.c4
-rw-r--r--src/mame/drivers/quantum.c2
-rw-r--r--src/mame/drivers/quasar.c8
-rw-r--r--src/mame/drivers/quizdna.c10
-rw-r--r--src/mame/drivers/quizo.c4
-rw-r--r--src/mame/drivers/quizpani.c2
-rw-r--r--src/mame/drivers/quizpun2.c8
-rw-r--r--src/mame/drivers/quizshow.c4
-rw-r--r--src/mame/drivers/r2dtank.c4
-rw-r--r--src/mame/drivers/r2dx_v33.c4
-rw-r--r--src/mame/drivers/rabbit.c2
-rw-r--r--src/mame/drivers/raiden.c10
-rw-r--r--src/mame/drivers/rainbow.c8
-rw-r--r--src/mame/drivers/rallyx.c6
-rw-r--r--src/mame/drivers/rampart.c2
-rw-r--r--src/mame/drivers/rastan.c4
-rw-r--r--src/mame/drivers/rbmk.c6
-rw-r--r--src/mame/drivers/re900.c4
-rw-r--r--src/mame/drivers/realbrk.c10
-rw-r--r--src/mame/drivers/redalert.c8
-rw-r--r--src/mame/drivers/redclash.c4
-rw-r--r--src/mame/drivers/relief.c2
-rw-r--r--src/mame/drivers/renegade.c6
-rw-r--r--src/mame/drivers/retofinv.c8
-rw-r--r--src/mame/drivers/rgum.c2
-rw-r--r--src/mame/drivers/rltennis.c4
-rw-r--r--src/mame/drivers/rmhaihai.c8
-rw-r--r--src/mame/drivers/rockrage.c4
-rw-r--r--src/mame/drivers/rocnrope.c2
-rw-r--r--src/mame/drivers/rohga.c10
-rw-r--r--src/mame/drivers/rollerg.c4
-rw-r--r--src/mame/drivers/rollrace.c4
-rw-r--r--src/mame/drivers/rotaryf.c4
-rw-r--r--src/mame/drivers/roul.c8
-rw-r--r--src/mame/drivers/route16.c16
-rw-r--r--src/mame/drivers/royalmah.c62
-rw-r--r--src/mame/drivers/rpunch.c4
-rw-r--r--src/mame/drivers/runaway.c2
-rw-r--r--src/mame/drivers/rungun.c4
-rw-r--r--src/mame/drivers/safarir.c2
-rw-r--r--src/mame/drivers/sandscrp.c6
-rw-r--r--src/mame/drivers/sangho.c6
-rw-r--r--src/mame/drivers/saturn.c6
-rw-r--r--src/mame/drivers/sauro.c8
-rw-r--r--src/mame/drivers/sbasketb.c4
-rw-r--r--src/mame/drivers/sbowling.c4
-rw-r--r--src/mame/drivers/sbrkout.c2
-rw-r--r--src/mame/drivers/sbugger.c4
-rw-r--r--src/mame/drivers/scobra.c22
-rw-r--r--src/mame/drivers/scotrsht.c6
-rw-r--r--src/mame/drivers/scramble.c30
-rw-r--r--src/mame/drivers/scregg.c4
-rw-r--r--src/mame/drivers/sderby.c8
-rw-r--r--src/mame/drivers/seattle.c2
-rw-r--r--src/mame/drivers/segac2.c2
-rw-r--r--src/mame/drivers/segag80r.c10
-rw-r--r--src/mame/drivers/segag80v.c4
-rw-r--r--src/mame/drivers/segahang.c18
-rw-r--r--src/mame/drivers/segald.c4
-rw-r--r--src/mame/drivers/segaorun.c8
-rw-r--r--src/mame/drivers/segas16a.c10
-rw-r--r--src/mame/drivers/segas16b.c10
-rw-r--r--src/mame/drivers/segas18.c8
-rw-r--r--src/mame/drivers/segas32.c14
-rw-r--r--src/mame/drivers/segaxbd.c12
-rw-r--r--src/mame/drivers/segaybd.c10
-rw-r--r--src/mame/drivers/seibuspi.c8
-rw-r--r--src/mame/drivers/seicross.c8
-rw-r--r--src/mame/drivers/sengokmj.c4
-rw-r--r--src/mame/drivers/senjyo.c10
-rw-r--r--src/mame/drivers/seta.c86
-rw-r--r--src/mame/drivers/seta2.c26
-rw-r--r--src/mame/drivers/sf.c12
-rw-r--r--src/mame/drivers/sfbonus.c6
-rw-r--r--src/mame/drivers/sfcbox.c4
-rw-r--r--src/mame/drivers/sfkick.c8
-rw-r--r--src/mame/drivers/sg1000a.c4
-rw-r--r--src/mame/drivers/shadfrce.c4
-rw-r--r--src/mame/drivers/shangha3.c10
-rw-r--r--src/mame/drivers/shanghai.c10
-rw-r--r--src/mame/drivers/shangkid.c22
-rw-r--r--src/mame/drivers/shaolins.c2
-rw-r--r--src/mame/drivers/shisen.c8
-rw-r--r--src/mame/drivers/shootout.c6
-rw-r--r--src/mame/drivers/shougi.c8
-rw-r--r--src/mame/drivers/shtzone.c2
-rw-r--r--src/mame/drivers/shuuz.c2
-rw-r--r--src/mame/drivers/sidearms.c12
-rw-r--r--src/mame/drivers/sidepckt.c4
-rw-r--r--src/mame/drivers/sigmab52.c4
-rw-r--r--src/mame/drivers/sigmab98.c22
-rw-r--r--src/mame/drivers/silkroad.c2
-rw-r--r--src/mame/drivers/simpl156.c10
-rw-r--r--src/mame/drivers/simpsons.c4
-rw-r--r--src/mame/drivers/skeetsht.c6
-rw-r--r--src/mame/drivers/skimaxx.c6
-rw-r--r--src/mame/drivers/skullxbo.c2
-rw-r--r--src/mame/drivers/skyarmy.c4
-rw-r--r--src/mame/drivers/skydiver.c2
-rw-r--r--src/mame/drivers/skyfox.c4
-rw-r--r--src/mame/drivers/skykid.c6
-rw-r--r--src/mame/drivers/skylncr.c4
-rw-r--r--src/mame/drivers/skyraid.c2
-rw-r--r--src/mame/drivers/slapfght.c22
-rw-r--r--src/mame/drivers/slapshot.c6
-rw-r--r--src/mame/drivers/sliver.c8
-rw-r--r--src/mame/drivers/slotcarn.c4
-rw-r--r--src/mame/drivers/sms.c6
-rw-r--r--src/mame/drivers/snesb.c4
-rw-r--r--src/mame/drivers/snk.c78
-rw-r--r--src/mame/drivers/snk6502.c10
-rw-r--r--src/mame/drivers/snk68.c8
-rw-r--r--src/mame/drivers/snookr10.c4
-rw-r--r--src/mame/drivers/snowbros.c30
-rw-r--r--src/mame/drivers/solomon.c6
-rw-r--r--src/mame/drivers/sonson.c4
-rw-r--r--src/mame/drivers/sothello.c10
-rw-r--r--src/mame/drivers/spacefb.c8
-rw-r--r--src/mame/drivers/spaceg.c2
-rw-r--r--src/mame/drivers/spbactn.c4
-rw-r--r--src/mame/drivers/spcforce.c6
-rw-r--r--src/mame/drivers/spdodgeb.c4
-rw-r--r--src/mame/drivers/speedatk.c4
-rw-r--r--src/mame/drivers/speedbal.c8
-rw-r--r--src/mame/drivers/speedspn.c6
-rw-r--r--src/mame/drivers/speglsht.c6
-rw-r--r--src/mame/drivers/spiders.c4
-rw-r--r--src/mame/drivers/splash.c16
-rw-r--r--src/mame/drivers/splus.c4
-rw-r--r--src/mame/drivers/spoker.c6
-rw-r--r--src/mame/drivers/spool99.c4
-rw-r--r--src/mame/drivers/sprcros2.c8
-rw-r--r--src/mame/drivers/sprint2.c2
-rw-r--r--src/mame/drivers/sprint4.c2
-rw-r--r--src/mame/drivers/sprint8.c2
-rw-r--r--src/mame/drivers/spy.c4
-rw-r--r--src/mame/drivers/srmp2.c12
-rw-r--r--src/mame/drivers/srmp5.c6
-rw-r--r--src/mame/drivers/srmp6.c2
-rw-r--r--src/mame/drivers/srumbler.c4
-rw-r--r--src/mame/drivers/ssfindo.c6
-rw-r--r--src/mame/drivers/sshangha.c6
-rw-r--r--src/mame/drivers/sshot.c2
-rw-r--r--src/mame/drivers/ssingles.c8
-rw-r--r--src/mame/drivers/sslam.c6
-rw-r--r--src/mame/drivers/ssozumo.c4
-rw-r--r--src/mame/drivers/sspeedr.c4
-rw-r--r--src/mame/drivers/ssrj.c2
-rw-r--r--src/mame/drivers/sstrangr.c4
-rw-r--r--src/mame/drivers/ssv.c40
-rw-r--r--src/mame/drivers/st0016.c8
-rw-r--r--src/mame/drivers/stactics.c2
-rw-r--r--src/mame/drivers/stadhero.c4
-rw-r--r--src/mame/drivers/starcrus.c4
-rw-r--r--src/mame/drivers/starfire.c2
-rw-r--r--src/mame/drivers/starshp1.c2
-rw-r--r--src/mame/drivers/starwars.c4
-rw-r--r--src/mame/drivers/statriv2.c6
-rw-r--r--src/mame/drivers/stepstag.c4
-rw-r--r--src/mame/drivers/stfight.c4
-rw-r--r--src/mame/drivers/stlforce.c2
-rw-r--r--src/mame/drivers/strnskil.c6
-rw-r--r--src/mame/drivers/su2000.c4
-rw-r--r--src/mame/drivers/sub.c8
-rw-r--r--src/mame/drivers/subs.c2
-rw-r--r--src/mame/drivers/subsino.c18
-rw-r--r--src/mame/drivers/subsino2.c18
-rw-r--r--src/mame/drivers/summit.c2
-rw-r--r--src/mame/drivers/suna16.c32
-rw-r--r--src/mame/drivers/suna8.c28
-rw-r--r--src/mame/drivers/supbtime.c6
-rw-r--r--src/mame/drivers/supdrapo.c2
-rw-r--r--src/mame/drivers/superchs.c4
-rw-r--r--src/mame/drivers/superdq.c4
-rw-r--r--src/mame/drivers/superqix.c16
-rw-r--r--src/mame/drivers/supertnk.c4
-rw-r--r--src/mame/drivers/superwng.c4
-rw-r--r--src/mame/drivers/suprgolf.c4
-rw-r--r--src/mame/drivers/suprloco.c4
-rw-r--r--src/mame/drivers/suprnova.c2
-rw-r--r--src/mame/drivers/suprridr.c8
-rw-r--r--src/mame/drivers/suprslam.c6
-rw-r--r--src/mame/drivers/surpratk.c2
-rw-r--r--src/mame/drivers/system1.c14
-rw-r--r--src/mame/drivers/system16.c58
-rw-r--r--src/mame/drivers/tagteam.c4
-rw-r--r--src/mame/drivers/tail2nos.c6
-rw-r--r--src/mame/drivers/taito_b.c38
-rw-r--r--src/mame/drivers/taito_f2.c64
-rw-r--r--src/mame/drivers/taito_f3.c2
-rw-r--r--src/mame/drivers/taito_h.c8
-rw-r--r--src/mame/drivers/taito_l.c38
-rw-r--r--src/mame/drivers/taito_o.c2
-rw-r--r--src/mame/drivers/taito_x.c12
-rw-r--r--src/mame/drivers/taito_z.c44
-rw-r--r--src/mame/drivers/taitoair.c10
-rw-r--r--src/mame/drivers/taitogn.c2
-rw-r--r--src/mame/drivers/taitojc.c10
-rw-r--r--src/mame/drivers/taitopjc.c13
-rw-r--r--src/mame/drivers/taitosj.c10
-rw-r--r--src/mame/drivers/taitotz.c4
-rw-r--r--src/mame/drivers/taitowlf.c4
-rw-r--r--src/mame/drivers/tank8.c2
-rw-r--r--src/mame/drivers/tankbatt.c2
-rw-r--r--src/mame/drivers/tankbust.c6
-rw-r--r--src/mame/drivers/taotaido.c6
-rw-r--r--src/mame/drivers/tapatune.c6
-rw-r--r--src/mame/drivers/targeth.c2
-rw-r--r--src/mame/drivers/tatsumi.c24
-rw-r--r--src/mame/drivers/tattack.c2
-rw-r--r--src/mame/drivers/taxidriv.c8
-rw-r--r--src/mame/drivers/tbowl.c6
-rw-r--r--src/mame/drivers/tceptor.c12
-rw-r--r--src/mame/drivers/tcl.c2
-rw-r--r--src/mame/drivers/tecmo.c10
-rw-r--r--src/mame/drivers/tecmo16.c6
-rw-r--r--src/mame/drivers/tecmosys.c6
-rw-r--r--src/mame/drivers/tehkanwc.c8
-rw-r--r--src/mame/drivers/tempest.c2
-rw-r--r--src/mame/drivers/terracre.c10
-rw-r--r--src/mame/drivers/tetrisp2.c12
-rw-r--r--src/mame/drivers/tgtpanic.c4
-rw-r--r--src/mame/drivers/thayers.c6
-rw-r--r--src/mame/drivers/thedeep.c6
-rw-r--r--src/mame/drivers/thepit.c8
-rw-r--r--src/mame/drivers/thief.c6
-rw-r--r--src/mame/drivers/thoop2.c2
-rw-r--r--src/mame/drivers/thunderj.c4
-rw-r--r--src/mame/drivers/thunderx.c8
-rw-r--r--src/mame/drivers/tiamc1.c4
-rw-r--r--src/mame/drivers/tickee.c8
-rw-r--r--src/mame/drivers/tigeroad.c10
-rw-r--r--src/mame/drivers/timelimt.c8
-rw-r--r--src/mame/drivers/timeplt.c6
-rw-r--r--src/mame/drivers/timetrv.c4
-rw-r--r--src/mame/drivers/tmaster.c4
-rw-r--r--src/mame/drivers/tmmjprd.c2
-rw-r--r--src/mame/drivers/tmnt.c40
-rw-r--r--src/mame/drivers/tmspoker.c4
-rw-r--r--src/mame/drivers/tnzs.c24
-rw-r--r--src/mame/drivers/toaplan1.c36
-rw-r--r--src/mame/drivers/toaplan2.c68
-rw-r--r--src/mame/drivers/toki.c6
-rw-r--r--src/mame/drivers/tomcat.c8
-rw-r--r--src/mame/drivers/tonton.c4
-rw-r--r--src/mame/drivers/toobin.c2
-rw-r--r--src/mame/drivers/topspeed.c6
-rw-r--r--src/mame/drivers/toratora.c2
-rw-r--r--src/mame/drivers/tourtabl.c2
-rw-r--r--src/mame/drivers/tourvis.c6
-rw-r--r--src/mame/drivers/toypop.c8
-rw-r--r--src/mame/drivers/tp84.c8
-rw-r--r--src/mame/drivers/trackfld.c16
-rw-r--r--src/mame/drivers/travrusa.c2
-rw-r--r--src/mame/drivers/triforce.c12
-rw-r--r--src/mame/drivers/triplhnt.c2
-rw-r--r--src/mame/drivers/truco.c2
-rw-r--r--src/mame/drivers/trucocl.c2
-rw-r--r--src/mame/drivers/trvmadns.c4
-rw-r--r--src/mame/drivers/trvquest.c2
-rw-r--r--src/mame/drivers/tryout.c4
-rw-r--r--src/mame/drivers/tsamurai.c26
-rw-r--r--src/mame/drivers/ttchamp.c4
-rw-r--r--src/mame/drivers/tubep.c26
-rw-r--r--src/mame/drivers/tugboat.c2
-rw-r--r--src/mame/drivers/tumbleb.c28
-rw-r--r--src/mame/drivers/tumblep.c4
-rw-r--r--src/mame/drivers/tunhunt.c2
-rw-r--r--src/mame/drivers/turbo.c10
-rw-r--r--src/mame/drivers/tutankhm.c2
-rw-r--r--src/mame/drivers/twin16.c8
-rw-r--r--src/mame/drivers/twincobr.c12
-rw-r--r--src/mame/drivers/twinkle.c4
-rw-r--r--src/mame/drivers/twins.c6
-rw-r--r--src/mame/drivers/tx1.c20
-rw-r--r--src/mame/drivers/uapce.c6
-rw-r--r--src/mame/drivers/ultraman.c6
-rw-r--r--src/mame/drivers/ultratnk.c2
-rw-r--r--src/mame/drivers/ultrsprt.c4
-rw-r--r--src/mame/drivers/umipoker.c6
-rw-r--r--src/mame/drivers/undrfire.c6
-rw-r--r--src/mame/drivers/unico.c6
-rw-r--r--src/mame/drivers/upscope.c2
-rw-r--r--src/mame/drivers/usgames.c4
-rw-r--r--src/mame/drivers/vamphalf.c32
-rw-r--r--src/mame/drivers/vaportra.c4
-rw-r--r--src/mame/drivers/vastar.c8
-rw-r--r--src/mame/drivers/vball.c4
-rw-r--r--src/mame/drivers/vcombat.c8
-rw-r--r--src/mame/drivers/vectrex.c4
-rw-r--r--src/mame/drivers/vega.c2
-rw-r--r--src/mame/drivers/vegaeo.c2
-rw-r--r--src/mame/drivers/vegas.c4
-rw-r--r--src/mame/drivers/vendetta.c6
-rw-r--r--src/mame/drivers/vertigo.c4
-rw-r--r--src/mame/drivers/vicdual.c58
-rw-r--r--src/mame/drivers/victory.c4
-rw-r--r--src/mame/drivers/videopin.c2
-rw-r--r--src/mame/drivers/videopkr.c12
-rw-r--r--src/mame/drivers/vigilant.c14
-rw-r--r--src/mame/drivers/vindictr.c2
-rw-r--r--src/mame/drivers/viper.c2
-rw-r--r--src/mame/drivers/vmetal.c2
-rw-r--r--src/mame/drivers/volfied.c4
-rw-r--r--src/mame/drivers/vpoker.c2
-rw-r--r--src/mame/drivers/vroulet.c4
-rw-r--r--src/mame/drivers/vsnes.c4
-rw-r--r--src/mame/drivers/vulgus.c4
-rw-r--r--src/mame/drivers/wallc.c2
-rw-r--r--src/mame/drivers/wardner.c12
-rw-r--r--src/mame/drivers/warpsped.c4
-rw-r--r--src/mame/drivers/warpwarp.c8
-rw-r--r--src/mame/drivers/warriorb.c6
-rw-r--r--src/mame/drivers/wc90.c6
-rw-r--r--src/mame/drivers/wc90b.c6
-rw-r--r--src/mame/drivers/wecleman.c12
-rw-r--r--src/mame/drivers/welltris.c6
-rw-r--r--src/mame/drivers/wgp.c6
-rw-r--r--src/mame/drivers/wheelfir.c4
-rw-r--r--src/mame/drivers/williams.c20
-rw-r--r--src/mame/drivers/wink.c8
-rw-r--r--src/mame/drivers/wiping.c4
-rw-r--r--src/mame/drivers/witch.c4
-rw-r--r--src/mame/drivers/wiz.c6
-rw-r--r--src/mame/drivers/wldarrow.c2
-rw-r--r--src/mame/drivers/wolfpack.c2
-rw-r--r--src/mame/drivers/wrally.c6
-rw-r--r--src/mame/drivers/wwfsstar.c4
-rw-r--r--src/mame/drivers/wwfwfest.c4
-rw-r--r--src/mame/drivers/xain.c8
-rw-r--r--src/mame/drivers/xexex.c4
-rw-r--r--src/mame/drivers/xmen.c6
-rw-r--r--src/mame/drivers/xorworld.c2
-rw-r--r--src/mame/drivers/xtheball.c2
-rw-r--r--src/mame/drivers/xxmissio.c4
-rw-r--r--src/mame/drivers/xybots.c2
-rw-r--r--src/mame/drivers/xyonix.c4
-rw-r--r--src/mame/drivers/yiear.c2
-rw-r--r--src/mame/drivers/yunsun16.c6
-rw-r--r--src/mame/drivers/yunsung8.c6
-rw-r--r--src/mame/drivers/zac2650.c4
-rw-r--r--src/mame/drivers/zaccaria.c6
-rw-r--r--src/mame/drivers/zaxxon.c6
-rw-r--r--src/mame/drivers/zn.c16
-rw-r--r--src/mame/drivers/zr107.c8
-rw-r--r--src/mame/machine/asic65.c4
-rw-r--r--src/mame/machine/buggychl.c2
-rw-r--r--src/mame/machine/megadriv.c18
-rw-r--r--src/mame/machine/model1.c2
-rw-r--r--src/mame/machine/namco50.c2
-rw-r--r--src/mame/machine/namco51.c2
-rw-r--r--src/mame/machine/namco53.c2
-rw-r--r--src/mame/machine/namco62.c2
-rw-r--r--src/mame/machine/pcshare.c2
-rw-r--r--src/mame/machine/pgmprot1.c8
-rw-r--r--src/mame/machine/pgmprot2.c4
-rw-r--r--src/mame/machine/pgmprot3.c4
-rw-r--r--src/mame/machine/pgmprot4.c2
-rw-r--r--src/mame/machine/pgmprot6.c2
-rw-r--r--src/mame/machine/segamsys.c4
-rw-r--r--src/mame/video/bfm_adr2.c2
-rw-r--r--src/mame/video/bfm_dm01.c2
-rw-r--r--src/mame/video/cidelsa.c4
-rw-r--r--src/mame/video/gp9001.c2
-rw-r--r--src/mame/video/qix.c6
1176 files changed, 4552 insertions, 4521 deletions
diff --git a/src/emu/addrmap.h b/src/emu/addrmap.h
index af1eae23b04..34c4769a35c 100644
--- a/src/emu/addrmap.h
+++ b/src/emu/addrmap.h
@@ -465,7 +465,7 @@ public:
// start/end tags for the address map
#define ADDRESS_MAP_NAME(_name) construct_address_map_##_name
-#define ADDRESS_MAP_START(_name, _space, _bits) \
+#define ADDRESS_MAP_START(_name, _space, _bits, _class) \
ATTR_COLD void ADDRESS_MAP_NAME(_name)(address_map &map, const device_t &device) \
{ \
typedef read##_bits##_delegate read_delegate; \
@@ -473,6 +473,7 @@ ATTR_COLD void ADDRESS_MAP_NAME(_name)(address_map &map, const device_t &device)
address_map_entry##_bits *curentry = NULL; \
(void)curentry; \
map.configure(_space, _bits); \
+ typedef _class drivdata_class; \
#define ADDRESS_MAP_END \
}
diff --git a/src/emu/cpu/cop400/cop400.c b/src/emu/cpu/cop400/cop400.c
index f629e7913bd..e21d2a91008 100644
--- a/src/emu/cpu/cop400/cop400.c
+++ b/src/emu/cpu/cop400/cop400.c
@@ -1236,32 +1236,32 @@ static CPU_EXECUTE( cop400 )
ADDRESS MAPS
***************************************************************************/
-static ADDRESS_MAP_START( program_512b, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( program_512b, AS_PROGRAM, 8, legacy_cpu_device )
AM_RANGE(0x000, 0x1ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( program_1kb, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( program_1kb, AS_PROGRAM, 8, legacy_cpu_device )
AM_RANGE(0x000, 0x3ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( program_2kb, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( program_2kb, AS_PROGRAM, 8, legacy_cpu_device )
AM_RANGE(0x000, 0x7ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( data_32b, AS_DATA, 8 )
+static ADDRESS_MAP_START( data_32b, AS_DATA, 8, legacy_cpu_device )
AM_RANGE(0x00, 0x1f) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( data_64b, AS_DATA, 8 )
+static ADDRESS_MAP_START( data_64b, AS_DATA, 8, legacy_cpu_device )
AM_RANGE(0x00, 0x3f) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( data_128b, AS_DATA, 8 )
+static ADDRESS_MAP_START( data_128b, AS_DATA, 8, legacy_cpu_device )
AM_RANGE(0x00, 0x7f) AM_RAM
ADDRESS_MAP_END
#ifdef UNUSED_CODE
-static ADDRESS_MAP_START( data_160b, AS_DATA, 8 )
+static ADDRESS_MAP_START( data_160b, AS_DATA, 8, legacy_cpu_device )
AM_RANGE(0x00, 0x9f) AM_RAM
ADDRESS_MAP_END
#endif
diff --git a/src/emu/cpu/dsp56k/dsp56k.c b/src/emu/cpu/dsp56k/dsp56k.c
index 565ac5484e8..078114e0864 100644
--- a/src/emu/cpu/dsp56k/dsp56k.c
+++ b/src/emu/cpu/dsp56k/dsp56k.c
@@ -368,12 +368,12 @@ extern CPU_DISASSEMBLE( dsp56k );
/****************************************************************************
* Internal Memory Maps
****************************************************************************/
-static ADDRESS_MAP_START( dsp56156_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dsp56156_program_map, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0x0000,0x07ff) AM_READWRITE(DSP56K::program_r, DSP56K::program_w) /* 1-5 */
// AM_RANGE(0x2f00,0x2fff) AM_ROM /* 1-5 PROM reserved memory. Is this the right spot for it? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dsp56156_x_data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( dsp56156_x_data_map, AS_DATA, 16, legacy_cpu_device )
AM_RANGE(0x0000,0x07ff) AM_RAM /* 1-5 */
AM_RANGE(0xffc0,0xffff) AM_READWRITE(DSP56K::peripheral_register_r, DSP56K::peripheral_register_w) /* 1-5 On-chip peripheral registers memory mapped in data space */
ADDRESS_MAP_END
diff --git a/src/emu/cpu/e132xs/e132xs.c b/src/emu/cpu/e132xs/e132xs.c
index d93620aba96..aa4bc248914 100644
--- a/src/emu/cpu/e132xs/e132xs.c
+++ b/src/emu/cpu/e132xs/e132xs.c
@@ -375,27 +375,27 @@ static void check_interrupts(hyperstone_state *cpustate);
// 4Kb IRAM (On-Chip Memory)
-static ADDRESS_MAP_START( e116_4k_iram_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( e116_4k_iram_map, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0xc0000000, 0xc0000fff) AM_RAM AM_MIRROR(0x1ffff000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( e132_4k_iram_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( e132_4k_iram_map, AS_PROGRAM, 32, legacy_cpu_device )
AM_RANGE(0xc0000000, 0xc0000fff) AM_RAM AM_MIRROR(0x1ffff000)
ADDRESS_MAP_END
// 8Kb IRAM (On-Chip Memory)
+static ADDRESS_MAP_START( e116_8k_iram_map, AS_PROGRAM, 16, legacy_cpu_device )
-static ADDRESS_MAP_START( e116_8k_iram_map, AS_PROGRAM, 16 )
AM_RANGE(0xc0000000, 0xc0001fff) AM_RAM AM_MIRROR(0x1fffe000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( e132_8k_iram_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( e132_8k_iram_map, AS_PROGRAM, 32, legacy_cpu_device )
AM_RANGE(0xc0000000, 0xc0001fff) AM_RAM AM_MIRROR(0x1fffe000)
ADDRESS_MAP_END
@@ -403,13 +403,13 @@ ADDRESS_MAP_END
// 16Kb IRAM (On-Chip Memory)
-static ADDRESS_MAP_START( e116_16k_iram_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( e116_16k_iram_map, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0xc0000000, 0xc0003fff) AM_RAM AM_MIRROR(0x1fffc000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( e132_16k_iram_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( e132_16k_iram_map, AS_PROGRAM, 32, legacy_cpu_device )
AM_RANGE(0xc0000000, 0xc0003fff) AM_RAM AM_MIRROR(0x1fffc000)
ADDRESS_MAP_END
diff --git a/src/emu/cpu/h83002/h8_16.c b/src/emu/cpu/h83002/h8_16.c
index a506fbb09ca..0fa2e65a7fc 100644
--- a/src/emu/cpu/h83002/h8_16.c
+++ b/src/emu/cpu/h83002/h8_16.c
@@ -684,36 +684,36 @@ READ16_HANDLER( h8s2323_per_regs_r )
}
// On-board RAM and peripherals
-static ADDRESS_MAP_START( h8_3002_internal_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( h8_3002_internal_map, AS_PROGRAM, 16, legacy_cpu_device )
// 512B RAM
AM_RANGE(0xfffd10, 0xffff0f) AM_RAM
AM_RANGE(0xffff10, 0xffffff) AM_READWRITE( h8_itu_r, h8_itu_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( h8_3044_internal_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( h8_3044_internal_map, AS_PROGRAM, 16, legacy_cpu_device )
// 32k ROM, 2k RAM
AM_RANGE(0xfff710, 0xffff0f) AM_RAM
AM_RANGE(0xffff1c, 0xffffff) AM_READWRITE( h8_itu_r, h8_itu_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( h8_3007_internal_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( h8_3007_internal_map, AS_PROGRAM, 16, legacy_cpu_device )
// ROM-less, 4k RAM
AM_RANGE(0xfee000, 0xfee0ff) AM_READWRITE( h8_3007_itu1_r, h8_3007_itu1_w )
AM_RANGE(0xffef20, 0xffff1f) AM_RAM
AM_RANGE(0xffff20, 0xffffe9) AM_READWRITE( h8_3007_itu_r, h8_3007_itu_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( h8s_2241_internal_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( h8s_2241_internal_map, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE( 0xFFEC00, 0xFFFBFF ) AM_RAM // on-chip ram
AM_RANGE( 0xFFFE40, 0xFFFFFF ) AM_READWRITE( h8s2241_per_regs_r, h8s2241_per_regs_w ) // internal i/o registers
ADDRESS_MAP_END
-static ADDRESS_MAP_START( h8s_2246_internal_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( h8s_2246_internal_map, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE( 0xFFDC00, 0xFFFBFF ) AM_RAM // on-chip ram
AM_RANGE( 0xFFFE40, 0xFFFFFF ) AM_READWRITE( h8s2246_per_regs_r, h8s2246_per_regs_w ) // internal i/o registers
ADDRESS_MAP_END
-static ADDRESS_MAP_START( h8s_2323_internal_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( h8s_2323_internal_map, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE( 0xFFDC00, 0xFFFBFF ) AM_RAM // on-chip ram
AM_RANGE( 0xFFFE40, 0xFFFFFF ) AM_READWRITE( h8s2323_per_regs_r, h8s2323_per_regs_w ) // internal i/o registers
ADDRESS_MAP_END
diff --git a/src/emu/cpu/h83002/h8_8.c b/src/emu/cpu/h83002/h8_8.c
index 386305dccb9..2fd51484b9c 100644
--- a/src/emu/cpu/h83002/h8_8.c
+++ b/src/emu/cpu/h83002/h8_8.c
@@ -732,7 +732,7 @@ static TIMER_CALLBACK( h8_timer_3_cb )
timer_8bit_expire(h8, 1, 1);
}
-static ADDRESS_MAP_START( h8_3334_internal_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( h8_3334_internal_map, AS_PROGRAM, 8, legacy_cpu_device )
// 512B RAM
AM_RANGE(0xfb80, 0xff7f) AM_RAM
AM_RANGE(0xff88, 0xffff) AM_READWRITE( h8330_itu_r, h8330_itu_w )
diff --git a/src/emu/cpu/m37710/m37710.c b/src/emu/cpu/m37710/m37710.c
index 3b842420a93..dff96c1ff76 100644
--- a/src/emu/cpu/m37710/m37710.c
+++ b/src/emu/cpu/m37710/m37710.c
@@ -1079,7 +1079,7 @@ static CPU_SET_INFO( m37710 )
}
// On-board RAM and peripherals
-static ADDRESS_MAP_START( m37710_internal_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( m37710_internal_map, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0x000000, 0x00007f) AM_READWRITE(m37710_internal_word_r, m37710_internal_word_w)
AM_RANGE(0x000080, 0x00027f) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/cpu/m6502/m4510.c b/src/emu/cpu/m6502/m4510.c
index 4e824ccb188..c4c94d430dc 100644
--- a/src/emu/cpu/m6502/m4510.c
+++ b/src/emu/cpu/m6502/m4510.c
@@ -393,7 +393,7 @@ static WRITE8_HANDLER( m4510_write_0000 )
cpustate->out_port_func(0, m4510_get_port(downcast<legacy_cpu_device *>(&space->device())));
}
-static ADDRESS_MAP_START(m4510_mem, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(m4510_mem, AS_PROGRAM, 8, legacy_cpu_device)
AM_RANGE(0x0000, 0x0001) AM_READWRITE(m4510_read_0000, m4510_write_0000)
ADDRESS_MAP_END
diff --git a/src/emu/cpu/m6502/m6502.c b/src/emu/cpu/m6502/m6502.c
index 3029959fc7e..962be4215da 100644
--- a/src/emu/cpu/m6502/m6502.c
+++ b/src/emu/cpu/m6502/m6502.c
@@ -399,7 +399,7 @@ static WRITE8_HANDLER( m6510_write_0000 )
cpustate->out_port_func(cpustate->ddr, cpustate->port & cpustate->ddr);
}
-static ADDRESS_MAP_START(m6510_mem, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(m6510_mem, AS_PROGRAM, 8, legacy_cpu_device)
AM_RANGE(0x0000, 0x0001) AM_READWRITE(m6510_read_0000, m6510_write_0000)
ADDRESS_MAP_END
diff --git a/src/emu/cpu/m6502/m6509.c b/src/emu/cpu/m6502/m6509.c
index 995a935096f..056b040e250 100644
--- a/src/emu/cpu/m6502/m6509.c
+++ b/src/emu/cpu/m6502/m6509.c
@@ -130,7 +130,7 @@ static WRITE8_HANDLER( m6509_write_00001 )
cpustate->ind_bank.b.h2=data&0xf;
}
-static ADDRESS_MAP_START(m6509_mem, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(m6509_mem, AS_PROGRAM, 8, legacy_cpu_device)
AM_RANGE(0x00000, 0x00000) AM_MIRROR(0xF0000) AM_READWRITE(m6509_read_00000, m6509_write_00000)
AM_RANGE(0x00001, 0x00001) AM_MIRROR(0xF0000) AM_READWRITE(m6509_read_00001, m6509_write_00001)
ADDRESS_MAP_END
diff --git a/src/emu/cpu/m6800/m6800.c b/src/emu/cpu/m6800/m6800.c
index 9963e7399e5..db46c3f78ae 100644
--- a/src/emu/cpu/m6800/m6800.c
+++ b/src/emu/cpu/m6800/m6800.c
@@ -1276,7 +1276,7 @@ static CPU_INIT( m6803 )
}
}
-static ADDRESS_MAP_START(m6803_mem, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(m6803_mem, AS_PROGRAM, 8, legacy_cpu_device)
AM_RANGE(0x0000, 0x001f) AM_READWRITE(m6801_io_r, m6801_io_w)
AM_RANGE(0x0020, 0x007f) AM_NOP /* unused */
AM_RANGE(0x0080, 0x00ff) AM_RAM /* 6803 internal RAM */
diff --git a/src/emu/cpu/m68000/m68kcpu.c b/src/emu/cpu/m68000/m68kcpu.c
index 64fbce30363..bc841997f5b 100644
--- a/src/emu/cpu/m68000/m68kcpu.c
+++ b/src/emu/cpu/m68000/m68kcpu.c
@@ -2017,7 +2017,7 @@ static WRITE16_HANDLER( m68307_internal_base_w )
}
}
-static ADDRESS_MAP_START( m68307_internal_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( m68307_internal_map, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0x000000f0, 0x000000ff) AM_READWRITE(m68307_internal_base_r, m68307_internal_base_w)
ADDRESS_MAP_END
@@ -2694,7 +2694,7 @@ static WRITE32_HANDLER( m68340_internal_base_w )
}
-static ADDRESS_MAP_START( m68340_internal_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( m68340_internal_map, AS_PROGRAM, 32, legacy_cpu_device )
AM_RANGE(0x0003ff00, 0x0003ff03) AM_READWRITE( m68340_internal_base_r, m68340_internal_base_w)
ADDRESS_MAP_END
diff --git a/src/emu/cpu/mb88xx/mb88xx.c b/src/emu/cpu/mb88xx/mb88xx.c
index 7ede63decac..48e9e609a2e 100644
--- a/src/emu/cpu/mb88xx/mb88xx.c
+++ b/src/emu/cpu/mb88xx/mb88xx.c
@@ -874,19 +874,19 @@ static CPU_EXECUTE( mb88 )
ADDRESS MAPS
***************************************************************************/
-static ADDRESS_MAP_START(program_10bit, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(program_10bit, AS_PROGRAM, 8, legacy_cpu_device)
AM_RANGE(0x000, 0x3ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(program_11bit, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(program_11bit, AS_PROGRAM, 8, legacy_cpu_device)
AM_RANGE(0x000, 0x7ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(data_6bit, AS_DATA, 8)
+static ADDRESS_MAP_START(data_6bit, AS_DATA, 8, legacy_cpu_device)
AM_RANGE(0x00, 0x3f) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(data_7bit, AS_DATA, 8)
+static ADDRESS_MAP_START(data_7bit, AS_DATA, 8, legacy_cpu_device)
AM_RANGE(0x00, 0x7f) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/cpu/mcs48/mcs48.c b/src/emu/cpu/mcs48/mcs48.c
index 658244c2a81..01e332a9b3c 100644
--- a/src/emu/cpu/mcs48/mcs48.c
+++ b/src/emu/cpu/mcs48/mcs48.c
@@ -1225,27 +1225,27 @@ void upi41_master_w(device_t *_device, UINT8 a0, UINT8 data)
***************************************************************************/
/* FIXME: the memory maps should probably support rom banking for EA */
-static ADDRESS_MAP_START(program_10bit, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(program_10bit, AS_PROGRAM, 8, legacy_cpu_device)
AM_RANGE(0x000, 0x3ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(program_11bit, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(program_11bit, AS_PROGRAM, 8, legacy_cpu_device)
AM_RANGE(0x000, 0x7ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(program_12bit, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(program_12bit, AS_PROGRAM, 8, legacy_cpu_device)
AM_RANGE(0x000, 0xfff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(data_6bit, AS_DATA, 8)
+static ADDRESS_MAP_START(data_6bit, AS_DATA, 8, legacy_cpu_device)
AM_RANGE(0x00, 0x3f) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(data_7bit, AS_DATA, 8)
+static ADDRESS_MAP_START(data_7bit, AS_DATA, 8, legacy_cpu_device)
AM_RANGE(0x00, 0x7f) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(data_8bit, AS_DATA, 8)
+static ADDRESS_MAP_START(data_8bit, AS_DATA, 8, legacy_cpu_device)
AM_RANGE(0x00, 0xff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/cpu/mcs51/mcs51.c b/src/emu/cpu/mcs51/mcs51.c
index b2db9af668e..d60b40f6daf 100644
--- a/src/emu/cpu/mcs51/mcs51.c
+++ b/src/emu/cpu/mcs51/mcs51.c
@@ -2404,20 +2404,20 @@ static CPU_INIT( ds5002fp )
ADDRESS MAPS
***************************************************************************/
-static ADDRESS_MAP_START(program_12bit, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(program_12bit, AS_PROGRAM, 8, legacy_cpu_device)
AM_RANGE(0x00, 0x0fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(program_13bit, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(program_13bit, AS_PROGRAM, 8, legacy_cpu_device)
AM_RANGE(0x00, 0x1fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(data_7bit, AS_DATA, 8)
+static ADDRESS_MAP_START(data_7bit, AS_DATA, 8, legacy_cpu_device)
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x0100, 0x01ff) AM_RAM /* SFR */
ADDRESS_MAP_END
-static ADDRESS_MAP_START(data_8bit, AS_DATA, 8)
+static ADDRESS_MAP_START(data_8bit, AS_DATA, 8, legacy_cpu_device)
AM_RANGE(0x0000, 0x00ff) AM_RAM
AM_RANGE(0x0100, 0x01ff) AM_RAM /* SFR */
ADDRESS_MAP_END
diff --git a/src/emu/cpu/pic16c5x/pic16c5x.c b/src/emu/cpu/pic16c5x/pic16c5x.c
index 8ca1fe08f6b..41f0a25eb4d 100644
--- a/src/emu/cpu/pic16c5x/pic16c5x.c
+++ b/src/emu/cpu/pic16c5x/pic16c5x.c
@@ -1097,11 +1097,11 @@ static CPU_GET_INFO( pic16c5x )
* Internal Memory Map
****************************************************************************/
-static ADDRESS_MAP_START( pic16c54_rom, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pic16c54_rom, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0x000, 0x1ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pic16c54_ram, AS_DATA, 8 )
+static ADDRESS_MAP_START( pic16c54_ram, AS_DATA, 8, legacy_cpu_device )
AM_RANGE(0x00, 0x07) AM_RAM
AM_RANGE(0x08, 0x0f) AM_RAM
AM_RANGE(0x10, 0x1f) AM_RAM
@@ -1155,11 +1155,11 @@ CPU_GET_INFO( pic16c54 )
* Internal Memory Map
****************************************************************************/
-static ADDRESS_MAP_START( pic16c55_rom, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pic16c55_rom, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0x000, 0x1ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pic16c55_ram, AS_DATA, 8 )
+static ADDRESS_MAP_START( pic16c55_ram, AS_DATA, 8, legacy_cpu_device )
AM_RANGE(0x00, 0x07) AM_RAM
AM_RANGE(0x08, 0x0f) AM_RAM
AM_RANGE(0x10, 0x1f) AM_RAM
@@ -1213,11 +1213,11 @@ CPU_GET_INFO( pic16c55 )
* Internal Memory Map
****************************************************************************/
-static ADDRESS_MAP_START( pic16c56_rom, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pic16c56_rom, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0x000, 0x3ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pic16c56_ram, AS_DATA, 8 )
+static ADDRESS_MAP_START( pic16c56_ram, AS_DATA, 8, legacy_cpu_device )
AM_RANGE(0x00, 0x07) AM_RAM
AM_RANGE(0x08, 0x0f) AM_RAM
AM_RANGE(0x10, 0x1f) AM_RAM
@@ -1271,11 +1271,11 @@ CPU_GET_INFO( pic16c56 )
* Internal Memory Map
****************************************************************************/
-static ADDRESS_MAP_START( pic16c57_rom, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pic16c57_rom, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0x000, 0x7ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pic16c57_ram, AS_DATA, 8 )
+static ADDRESS_MAP_START( pic16c57_ram, AS_DATA, 8, legacy_cpu_device )
AM_RANGE(0x00, 0x07) AM_RAM AM_MIRROR(0x60)
AM_RANGE(0x08, 0x0f) AM_RAM AM_MIRROR(0x60)
AM_RANGE(0x10, 0x1f) AM_RAM
@@ -1331,11 +1331,11 @@ CPU_GET_INFO( pic16c57 )
* Internal Memory Map
****************************************************************************/
-static ADDRESS_MAP_START( pic16c58_rom, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pic16c58_rom, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0x000, 0x7ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pic16c58_ram, AS_DATA, 8 )
+static ADDRESS_MAP_START( pic16c58_ram, AS_DATA, 8, legacy_cpu_device )
AM_RANGE(0x00, 0x07) AM_RAM AM_MIRROR(0x60)
AM_RANGE(0x08, 0x0f) AM_RAM AM_MIRROR(0x60)
AM_RANGE(0x10, 0x1f) AM_RAM
diff --git a/src/emu/cpu/pic16c62x/pic16c62x.c b/src/emu/cpu/pic16c62x/pic16c62x.c
index 2e527d8b3c4..e0cb6535ebf 100644
--- a/src/emu/cpu/pic16c62x/pic16c62x.c
+++ b/src/emu/cpu/pic16c62x/pic16c62x.c
@@ -1226,11 +1226,11 @@ static CPU_GET_INFO( pic16c62x )
* Internal Memory Map
****************************************************************************/
-static ADDRESS_MAP_START( pic16c620_rom, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pic16c620_rom, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0x000, 0x1ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pic16c620_ram, AS_DATA, 8 )
+static ADDRESS_MAP_START( pic16c620_ram, AS_DATA, 8, legacy_cpu_device )
AM_RANGE(0x00, 0x06) AM_RAM
AM_RANGE(0x0a, 0x0c) AM_RAM
AM_RANGE(0x1f, 0x6f) AM_RAM
@@ -1289,11 +1289,11 @@ CPU_GET_INFO( pic16c620 )
* Internal Memory Map
****************************************************************************/
-static ADDRESS_MAP_START( pic16c621_rom, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pic16c621_rom, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0x000, 0x3ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pic16c621_ram, AS_DATA, 8 )
+static ADDRESS_MAP_START( pic16c621_ram, AS_DATA, 8, legacy_cpu_device )
AM_RANGE(0x00, 0x06) AM_RAM
AM_RANGE(0x0a, 0x0c) AM_RAM
AM_RANGE(0x1f, 0x6f) AM_RAM
@@ -1352,11 +1352,11 @@ CPU_GET_INFO( pic16c621 )
* Internal Memory Map
****************************************************************************/
-static ADDRESS_MAP_START( pic16c622_rom, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pic16c622_rom, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0x000, 0x7ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pic16c622_ram, AS_DATA, 8 )
+static ADDRESS_MAP_START( pic16c622_ram, AS_DATA, 8, legacy_cpu_device )
AM_RANGE(0x00, 0x06) AM_RAM
AM_RANGE(0x0a, 0x0c) AM_RAM
AM_RANGE(0x1f, 0x7f) AM_RAM
@@ -1415,11 +1415,11 @@ CPU_GET_INFO( pic16c622 )
* Internal Memory Map
****************************************************************************/
-static ADDRESS_MAP_START( pic16c620a_rom, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pic16c620a_rom, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0x000, 0x1ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pic16c620a_ram, AS_DATA, 8 )
+static ADDRESS_MAP_START( pic16c620a_ram, AS_DATA, 8, legacy_cpu_device )
AM_RANGE(0x00, 0x06) AM_RAM
AM_RANGE(0x0a, 0x0c) AM_RAM
AM_RANGE(0x1f, 0x6f) AM_RAM
@@ -1480,11 +1480,11 @@ CPU_GET_INFO( pic16c620a )
* Internal Memory Map
****************************************************************************/
-static ADDRESS_MAP_START( pic16c621a_rom, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pic16c621a_rom, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0x000, 0x3ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pic16c621a_ram, AS_DATA, 8 )
+static ADDRESS_MAP_START( pic16c621a_ram, AS_DATA, 8, legacy_cpu_device )
AM_RANGE(0x00, 0x06) AM_RAM
AM_RANGE(0x0a, 0x0c) AM_RAM
AM_RANGE(0x1f, 0x6f) AM_RAM
@@ -1545,11 +1545,11 @@ CPU_GET_INFO( pic16c621a )
* Internal Memory Map
****************************************************************************/
-static ADDRESS_MAP_START( pic16c622a_rom, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pic16c622a_rom, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0x000, 0x7ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pic16c622a_ram, AS_DATA, 8 )
+static ADDRESS_MAP_START( pic16c622a_ram, AS_DATA, 8, legacy_cpu_device )
AM_RANGE(0x00, 0x06) AM_RAM
AM_RANGE(0x0a, 0x0c) AM_RAM
AM_RANGE(0x1f, 0x6f) AM_RAM
diff --git a/src/emu/cpu/powerpc/ppccom.c b/src/emu/cpu/powerpc/ppccom.c
index a8d659e93ed..2580c057d42 100644
--- a/src/emu/cpu/powerpc/ppccom.c
+++ b/src/emu/cpu/powerpc/ppccom.c
@@ -2146,7 +2146,7 @@ static WRITE8_HANDLER( ppc4xx_spu_w )
the 4XX
-------------------------------------------------*/
-static ADDRESS_MAP_START( internal_ppc4xx, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( internal_ppc4xx, AS_PROGRAM, 32, legacy_cpu_device )
AM_RANGE(0x40000000, 0x4000000f) AM_READWRITE8(ppc4xx_spu_r, ppc4xx_spu_w, 0xffffffff)
ADDRESS_MAP_END
diff --git a/src/emu/cpu/sh2/sh2drc.c b/src/emu/cpu/sh2/sh2drc.c
index 507211a8cf4..79d34769645 100644
--- a/src/emu/cpu/sh2/sh2drc.c
+++ b/src/emu/cpu/sh2/sh2drc.c
@@ -3193,7 +3193,7 @@ static READ32_HANDLER(sh2_internal_a5)
sh2_internal_map - maps SH2 built-ins
-------------------------------------------------*/
-static ADDRESS_MAP_START( sh2_internal_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( sh2_internal_map, AS_PROGRAM, 32, legacy_cpu_device )
AM_RANGE(0x40000000, 0xbfffffff) AM_READ(sh2_internal_a5)
AM_RANGE(0xe0000000, 0xffffffff) AM_READWRITE(sh2_internal_r, sh2_internal_w)
ADDRESS_MAP_END
diff --git a/src/emu/cpu/sh4/sh4.c b/src/emu/cpu/sh4/sh4.c
index 7edab8007e5..43b1614a634 100644
--- a/src/emu/cpu/sh4/sh4.c
+++ b/src/emu/cpu/sh4/sh4.c
@@ -3458,7 +3458,7 @@ void sh4_set_ftcsr_callback(device_t *device, sh4_ftcsr_callback callback)
#if 0
/*When OC index mode is off (CCR.OIX = 0)*/
-static ADDRESS_MAP_START( sh4_internal_map, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( sh4_internal_map, AS_PROGRAM, 64, legacy_cpu_device )
AM_RANGE(0x1C000000, 0x1C000FFF) AM_RAM AM_MIRROR(0x03FFD000)
AM_RANGE(0x1C002000, 0x1C002FFF) AM_RAM AM_MIRROR(0x03FFD000)
AM_RANGE(0xE0000000, 0xE000003F) AM_RAM AM_MIRROR(0x03FFFFC0)
@@ -3466,7 +3466,7 @@ ADDRESS_MAP_END
#endif
/*When OC index mode is on (CCR.OIX = 1)*/
-static ADDRESS_MAP_START( sh4_internal_map, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( sh4_internal_map, AS_PROGRAM, 64, legacy_cpu_device )
AM_RANGE(0x1C000000, 0x1C000FFF) AM_RAM AM_MIRROR(0x01FFF000)
AM_RANGE(0x1E000000, 0x1E000FFF) AM_RAM AM_MIRROR(0x01FFF000)
AM_RANGE(0xE0000000, 0xE000003F) AM_RAM AM_MIRROR(0x03FFFFC0) // todo: store queues should be write only on DC's SH4, executing PREFM shouldn't cause an actual memory read access!
@@ -3474,7 +3474,7 @@ static ADDRESS_MAP_START( sh4_internal_map, AS_PROGRAM, 64 )
AM_RANGE(0xFE000000, 0xFFFFFFFF) AM_READWRITE32(sh4_internal_r, sh4_internal_w, U64(0xffffffffffffffff))
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sh3_internal_map, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( sh3_internal_map, AS_PROGRAM, 64, legacy_cpu_device )
AM_RANGE(SH3_LOWER_REGBASE, SH3_LOWER_REGEND) AM_READWRITE32(sh3_internal_r, sh3_internal_w, U64(0xffffffffffffffff))
AM_RANGE(SH3_UPPER_REGBASE, SH3_UPPER_REGEND) AM_READWRITE32(sh3_internal_high_r, sh3_internal_high_w, U64(0xffffffffffffffff))
ADDRESS_MAP_END
diff --git a/src/emu/cpu/sharc/sharc.c b/src/emu/cpu/sharc/sharc.c
index 70fbdc3959e..452130d7c73 100644
--- a/src/emu/cpu/sharc/sharc.c
+++ b/src/emu/cpu/sharc/sharc.c
@@ -1046,7 +1046,7 @@ static CPU_READOP( sharc )
}
// This is just used to stop the debugger from complaining about executing from I/O space
-static ADDRESS_MAP_START( internal_pgm, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( internal_pgm, AS_PROGRAM, 64, adsp21062_device )
AM_RANGE(0x20000, 0x7ffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/cpu/tlcs90/tlcs90.c b/src/emu/cpu/tlcs90/tlcs90.c
index a1d57eb4f47..0db766aafd3 100644
--- a/src/emu/cpu/tlcs90/tlcs90.c
+++ b/src/emu/cpu/tlcs90/tlcs90.c
@@ -2731,23 +2731,23 @@ static CPU_INIT( t90 )
cpustate->timer[4] = device->machine().scheduler().timer_alloc(FUNC(t90_timer4_callback), cpustate);
}
-static ADDRESS_MAP_START(tmp90840_mem, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(tmp90840_mem, AS_PROGRAM, 8, legacy_cpu_device)
AM_RANGE( 0x0000, 0x1fff ) AM_ROM // 8KB ROM (internal)
AM_RANGE( 0xfec0, 0xffc0 ) AM_RAM // 256b RAM (internal)
AM_RANGE( T90_IOBASE, T90_IOBASE+47 ) AM_READWRITE( t90_internal_registers_r, t90_internal_registers_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START(tmp90841_mem, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(tmp90841_mem, AS_PROGRAM, 8, legacy_cpu_device)
// AM_RANGE( 0x0000, 0x1fff ) AM_ROM // rom-less
AM_RANGE( 0xfec0, 0xffc0 ) AM_RAM // 256b RAM (internal)
AM_RANGE( T90_IOBASE, T90_IOBASE+47 ) AM_READWRITE( t90_internal_registers_r, t90_internal_registers_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START(tmp91640_mem, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(tmp91640_mem, AS_PROGRAM, 8, legacy_cpu_device )
AM_RANGE( 0x0000, 0x3fff ) AM_ROM // 16KB ROM (internal)
AM_RANGE( 0xfdc0, 0xffc0 ) AM_RAM // 512b RAM (internal)
AM_RANGE( T90_IOBASE, T90_IOBASE+47 ) AM_READWRITE( t90_internal_registers_r, t90_internal_registers_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START(tmp91641_mem, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(tmp91641_mem, AS_PROGRAM, 8, legacy_cpu_device )
// AM_RANGE( 0x0000, 0x3fff ) AM_ROM // rom-less
AM_RANGE( 0xfdc0, 0xffc0 ) AM_RAM // 512b RAM (internal)
AM_RANGE( T90_IOBASE, T90_IOBASE+47 ) AM_READWRITE( t90_internal_registers_r, t90_internal_registers_w )
diff --git a/src/emu/cpu/tlcs900/tlcs900.c b/src/emu/cpu/tlcs900/tlcs900.c
index f43955c40c1..ac84c6746e2 100644
--- a/src/emu/cpu/tlcs900/tlcs900.c
+++ b/src/emu/cpu/tlcs900/tlcs900.c
@@ -1095,7 +1095,7 @@ static WRITE8_HANDLER( tlcs900_internal_w )
}
-static ADDRESS_MAP_START( tlcs900_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tlcs900_mem, AS_PROGRAM, 8, legacy_cpu_device )
AM_RANGE( 0x000000, 0x00007f ) AM_READWRITE( tlcs900_internal_r, tlcs900_internal_w )
ADDRESS_MAP_END
diff --git a/src/emu/cpu/tms0980/tms0980.c b/src/emu/cpu/tms0980/tms0980.c
index 084f5c3f662..1aa04d62f09 100644
--- a/src/emu/cpu/tms0980/tms0980.c
+++ b/src/emu/cpu/tms0980/tms0980.c
@@ -460,32 +460,32 @@ INLINE tms0980_state *get_safe_token(device_t *device)
}
-static ADDRESS_MAP_START(tms0980_internal_rom, AS_PROGRAM, 16)
+static ADDRESS_MAP_START(tms0980_internal_rom, AS_PROGRAM, 16, legacy_cpu_device)
AM_RANGE( 0x0000, 0x0FFF ) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(tms0980_internal_ram, AS_DATA, 8)
+static ADDRESS_MAP_START(tms0980_internal_ram, AS_DATA, 8, legacy_cpu_device)
AM_RANGE( 0x0000, 0x0FFF ) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(program_10bit_8, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(program_10bit_8, AS_PROGRAM, 8, legacy_cpu_device)
AM_RANGE( 0x000, 0x3ff ) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(program_11bit_8, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(program_11bit_8, AS_PROGRAM, 8, legacy_cpu_device)
AM_RANGE( 0x000, 0x7ff ) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(data_6bit, AS_DATA, 8)
+static ADDRESS_MAP_START(data_6bit, AS_DATA, 8, legacy_cpu_device)
AM_RANGE( 0x00, 0x3f ) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(data_7bit, AS_DATA, 8)
+static ADDRESS_MAP_START(data_7bit, AS_DATA, 8, legacy_cpu_device)
AM_RANGE( 0x00, 0x7f ) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/cpu/tms32010/tms32010.c b/src/emu/cpu/tms32010/tms32010.c
index b5579df843b..b0e7ae8a132 100644
--- a/src/emu/cpu/tms32010/tms32010.c
+++ b/src/emu/cpu/tms32010/tms32010.c
@@ -913,7 +913,7 @@ static CPU_EXECUTE( tms32010 )
* TMS32010 Internal Memory Map
****************************************************************************/
-static ADDRESS_MAP_START( tms32010_ram, AS_DATA, 16 )
+static ADDRESS_MAP_START( tms32010_ram, AS_DATA, 16, legacy_cpu_device )
AM_RANGE(0x00, 0x7f) AM_RAM /* Page 0 */
AM_RANGE(0x80, 0x8f) AM_RAM /* Page 1 */
ADDRESS_MAP_END
@@ -1074,7 +1074,7 @@ CPU_GET_INFO( tms32010 )
* TMS32015 Internal Memory Map
****************************************************************************/
-static ADDRESS_MAP_START( tms32015_ram, AS_DATA, 16 )
+static ADDRESS_MAP_START( tms32015_ram, AS_DATA, 16, tms32015_device )
AM_RANGE(0x00, 0x7f) AM_RAM /* Page 0 */
AM_RANGE(0x80, 0xff) AM_RAM /* Page 1 */
ADDRESS_MAP_END
diff --git a/src/emu/cpu/tms32031/tms32031.c b/src/emu/cpu/tms32031/tms32031.c
index 227e52f5e77..dcb6f0c8d5a 100644
--- a/src/emu/cpu/tms32031/tms32031.c
+++ b/src/emu/cpu/tms32031/tms32031.c
@@ -120,11 +120,11 @@ const device_type TMS32031 = &device_creator<tms32031_device>;
const device_type TMS32032 = &device_creator<tms32032_device>;
// internal memory maps
-static ADDRESS_MAP_START( internal_32031, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( internal_32031, AS_PROGRAM, 32, legacy_cpu_device )
AM_RANGE(0x809800, 0x809fff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( internal_32032, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( internal_32032, AS_PROGRAM, 32, legacy_cpu_device )
AM_RANGE(0x87fe00, 0x87ffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/cpu/tms32051/tms32051.c b/src/emu/cpu/tms32051/tms32051.c
index 7af6f971f53..4179b662adf 100644
--- a/src/emu/cpu/tms32051/tms32051.c
+++ b/src/emu/cpu/tms32051/tms32051.c
@@ -535,12 +535,12 @@ static WRITE16_HANDLER( cpuregs_w )
* Internal memory map
**************************************************************************/
-static ADDRESS_MAP_START( internal_pgm, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( internal_pgm, AS_PROGRAM, 16, legacy_cpu_device )
AM_RANGE(0x2000, 0x23ff) AM_RAM AM_SHARE("saram") // SARAM
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_SHARE("daram_b0") // DARAM B0
ADDRESS_MAP_END
-static ADDRESS_MAP_START( internal_data, AS_DATA, 16 )
+static ADDRESS_MAP_START( internal_data, AS_DATA, 16, legacy_cpu_device )
AM_RANGE(0x0000, 0x005f) AM_READWRITE(cpuregs_r, cpuregs_w)
AM_RANGE(0x0060, 0x007f) AM_RAM // DARAM B2
AM_RANGE(0x0100, 0x02ff) AM_RAM AM_SHARE("daram_b0") // DARAM B0
diff --git a/src/emu/cpu/tms7000/tms7000.c b/src/emu/cpu/tms7000/tms7000.c
index 25929f28ce9..d8416d2febd 100644
--- a/src/emu/cpu/tms7000/tms7000.c
+++ b/src/emu/cpu/tms7000/tms7000.c
@@ -131,7 +131,7 @@ static WRITE8_HANDLER( tms7000_internal_w );
static READ8_HANDLER( tms70x0_pf_r );
static WRITE8_HANDLER( tms70x0_pf_w );
-static ADDRESS_MAP_START(tms7000_mem, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(tms7000_mem, AS_PROGRAM, 8, legacy_cpu_device )
AM_RANGE(0x0000, 0x007f) AM_READWRITE(tms7000_internal_r, tms7000_internal_w) /* tms7000 internal RAM */
AM_RANGE(0x0080, 0x00ff) AM_NOP /* reserved */
AM_RANGE(0x0100, 0x01ff) AM_READWRITE(tms70x0_pf_r, tms70x0_pf_w) /* tms7000 internal I/O ports */
diff --git a/src/emu/cpu/z8/z8.c b/src/emu/cpu/z8/z8.c
index 444f36b4af2..abcb0da9b87 100644
--- a/src/emu/cpu/z8/z8.c
+++ b/src/emu/cpu/z8/z8.c
@@ -734,11 +734,11 @@ static CPU_RESET( z8 )
ADDRESS MAPS
***************************************************************************/
-static ADDRESS_MAP_START( program_2kb, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( program_2kb, AS_PROGRAM, 8, legacy_cpu_device )
AM_RANGE(0x0000, 0x07ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( program_4kb, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( program_4kb, AS_PROGRAM, 8, legacy_cpu_device )
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/emu/machine/at28c16.c b/src/emu/machine/at28c16.c
index bfb66894cec..f0584f3fa6f 100644
--- a/src/emu/machine/at28c16.c
+++ b/src/emu/machine/at28c16.c
@@ -20,7 +20,7 @@
// GLOBAL VARIABLES
//**************************************************************************
-static ADDRESS_MAP_START( at28c16_map8, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( at28c16_map8, AS_PROGRAM, 8, at28c16_device )
AM_RANGE(0x0000, 0x081f) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/machine/eeprom.c b/src/emu/machine/eeprom.c
index 11929be6b77..fb478aa6fca 100644
--- a/src/emu/machine/eeprom.c
+++ b/src/emu/machine/eeprom.c
@@ -73,12 +73,12 @@ const eeprom_interface eeprom_interface_93C66B =
};
-static ADDRESS_MAP_START( eeprom_map8, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( eeprom_map8, AS_PROGRAM, 8, eeprom_device )
AM_RANGE(0x0000, 0x0fff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( eeprom_map16, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( eeprom_map16, AS_PROGRAM, 16, eeprom_device )
AM_RANGE(0x0000, 0x07ff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/machine/er2055.c b/src/emu/machine/er2055.c
index a4e336e83ab..b710bdfa73b 100644
--- a/src/emu/machine/er2055.c
+++ b/src/emu/machine/er2055.c
@@ -48,7 +48,7 @@
// device type definition
const device_type ER2055 = &device_creator<er2055_device>;
-static ADDRESS_MAP_START( er2055_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( er2055_map, AS_PROGRAM, 8, er2055_device )
AM_RANGE(0x0000, 0x003f) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/machine/i2cmem.c b/src/emu/machine/i2cmem.c
index 288a430de7c..f05e3b844e8 100644
--- a/src/emu/machine/i2cmem.c
+++ b/src/emu/machine/i2cmem.c
@@ -58,7 +58,7 @@ INLINE void ATTR_PRINTF( 3, 4 ) verboselog( device_t *device, int n_level, const
// device type definition
const device_type I2CMEM = &device_creator<i2cmem_device>;
-static ADDRESS_MAP_START( i2cmem_map8, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( i2cmem_map8, AS_PROGRAM, 8, i2cmem_device )
AM_RANGE(0x0000, 0x0fff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/machine/i8155.c b/src/emu/machine/i8155.c
index fba9b5210cc..ec83d3013de 100644
--- a/src/emu/machine/i8155.c
+++ b/src/emu/machine/i8155.c
@@ -98,7 +98,7 @@ enum
//**************************************************************************
// default address map
-static ADDRESS_MAP_START( i8155, AS_0, 8 )
+static ADDRESS_MAP_START( i8155, AS_0, 8, i8155_device )
AM_RANGE(0x00, 0xff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/machine/i8355.c b/src/emu/machine/i8355.c
index a3a03c90de1..5b28fd76bf8 100644
--- a/src/emu/machine/i8355.c
+++ b/src/emu/machine/i8355.c
@@ -43,7 +43,7 @@ enum
const device_type I8355 = &device_creator<i8355_device>;
// default address map
-static ADDRESS_MAP_START( i8355, AS_0, 8 )
+static ADDRESS_MAP_START( i8355, AS_0, 8, i8355_device )
AM_RANGE(0x000, 0x7ff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/emu/machine/intelfsh.c b/src/emu/machine/intelfsh.c
index fc95473c130..4b640f5b879 100644
--- a/src/emu/machine/intelfsh.c
+++ b/src/emu/machine/intelfsh.c
@@ -61,36 +61,36 @@ const device_type INTEL_E28F008SA = &device_creator<intel_e28f008sa_device>;
const device_type INTEL_TE28F160 = &device_creator<intel_te28f160_device>;
const device_type SHARP_UNK128MBIT = &device_creator<sharp_unk128mbit_device>;
-static ADDRESS_MAP_START( memory_map8_512Kb, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( memory_map8_512Kb, AS_PROGRAM, 8, intelfsh_device )
AM_RANGE(0x00000, 0x00ffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( memory_map8_1Mb, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( memory_map8_1Mb, AS_PROGRAM, 8, intelfsh_device )
AM_RANGE(0x00000, 0x01ffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( memory_map8_4Mb, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( memory_map8_4Mb, AS_PROGRAM, 8, intelfsh_device )
AM_RANGE(0x00000, 0x07ffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( memory_map8_8Mb, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( memory_map8_8Mb, AS_PROGRAM, 8, intelfsh_device )
AM_RANGE(0x00000, 0x0fffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( memory_map8_16Mb, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( memory_map8_16Mb, AS_PROGRAM, 8, intelfsh_device )
AM_RANGE(0x00000, 0x1fffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( memory_map16_4Mb, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( memory_map16_4Mb, AS_PROGRAM, 16, intelfsh_device )
AM_RANGE(0x00000, 0x03ffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( memory_map16_16Mb, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( memory_map16_16Mb, AS_PROGRAM, 16, intelfsh_device )
AM_RANGE(0x00000, 0x0fffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( memory_map16_64Mb, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( memory_map16_64Mb, AS_PROGRAM, 16, intelfsh_device )
AM_RANGE(0x00000, 0x3fffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/machine/x2212.c b/src/emu/machine/x2212.c
index a20a8321a54..8e6db9f447e 100644
--- a/src/emu/machine/x2212.c
+++ b/src/emu/machine/x2212.c
@@ -14,11 +14,11 @@
// GLOBAL VARIABLES
//**************************************************************************
-static ADDRESS_MAP_START( x2212_sram_map, AS_0, 8 )
+static ADDRESS_MAP_START( x2212_sram_map, AS_0, 8, x2212_device )
AM_RANGE(0x0000, 0x00ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( x2212_e2prom_map, AS_1, 8 )
+static ADDRESS_MAP_START( x2212_e2prom_map, AS_1, 8, x2212_device )
AM_RANGE(0x0000, 0x00ff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/sound/c352.c b/src/emu/sound/c352.c
index 752e8b24cef..fb7f3498a71 100644
--- a/src/emu/sound/c352.c
+++ b/src/emu/sound/c352.c
@@ -23,7 +23,7 @@
const device_type C352 = &device_creator<c352_device>;
// default address map
-static ADDRESS_MAP_START( c352, AS_0, 8 )
+static ADDRESS_MAP_START( c352, AS_0, 8, c352_device )
AM_RANGE(0x000000, 0xffffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/emu/sound/cdp1869.c b/src/emu/sound/cdp1869.c
index 3036573e394..3c7ead02d50 100644
--- a/src/emu/sound/cdp1869.c
+++ b/src/emu/sound/cdp1869.c
@@ -60,7 +60,7 @@ enum
const device_type CDP1869 = &device_creator<cdp1869_device>;
// default address map
-static ADDRESS_MAP_START( cdp1869, AS_0, 8 )
+static ADDRESS_MAP_START( cdp1869, AS_0, 8, cdp1869_device )
AM_RANGE(0x000, 0x7ff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/sound/es5503.c b/src/emu/sound/es5503.c
index fcda8faa5d5..2d5234dc1d4 100644
--- a/src/emu/sound/es5503.c
+++ b/src/emu/sound/es5503.c
@@ -47,7 +47,7 @@ static const UINT32 accmasks[8] = { 0xff, 0x1ff, 0x3ff, 0x7ff, 0xfff, 0x1fff, 0
static const int resshifts[8] = { 9, 10, 11, 12, 13, 14, 15, 16 };
// default address map
-static ADDRESS_MAP_START( es5503, AS_0, 8 )
+static ADDRESS_MAP_START( es5503, AS_0, 8, es5503_device )
AM_RANGE(0x000000, 0x1ffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/emu/sound/okim6295.c b/src/emu/sound/okim6295.c
index 08ded618728..e1a643aa63e 100644
--- a/src/emu/sound/okim6295.c
+++ b/src/emu/sound/okim6295.c
@@ -75,7 +75,7 @@ const UINT8 okim6295_device::s_volume_table[16] =
};
// default address map
-static ADDRESS_MAP_START( okim6295, AS_0, 8 )
+static ADDRESS_MAP_START( okim6295, AS_0, 8, okim6295_device )
AM_RANGE(0x00000, 0x3ffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/emu/sound/okim9810.c b/src/emu/sound/okim9810.c
index 5b49201115b..c67bd670031 100644
--- a/src/emu/sound/okim9810.c
+++ b/src/emu/sound/okim9810.c
@@ -61,7 +61,7 @@ const UINT32 okim9810_device::s_sampling_freq_table[16] =
};
// default address map
-static ADDRESS_MAP_START( okim9810, AS_0, 8 )
+static ADDRESS_MAP_START( okim9810, AS_0, 8, okim9810_device )
AM_RANGE(0x000000, 0xffffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/emu/video/315_5124.c b/src/emu/video/315_5124.c
index df0756889df..39d9f7be72f 100644
--- a/src/emu/video/315_5124.c
+++ b/src/emu/video/315_5124.c
@@ -139,7 +139,7 @@ PALETTE_INIT( sega315_5378 )
// default address map
-static ADDRESS_MAP_START( sega315_5124, AS_0, 8 )
+static ADDRESS_MAP_START( sega315_5124, AS_0, 8, sega315_5124_device )
AM_RANGE(0x0000, VRAM_SIZE-1) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/video/crt9007.c b/src/emu/video/crt9007.c
index 4ea1c5c4341..62a2f089df5 100644
--- a/src/emu/video/crt9007.c
+++ b/src/emu/video/crt9007.c
@@ -215,7 +215,7 @@ const int STATUS_FRAME_TIMER_OCCURRED = 0x01;
//**************************************************************************
// default address map
-static ADDRESS_MAP_START( crt9007, AS_0, 8 )
+static ADDRESS_MAP_START( crt9007, AS_0, 8, crt9007_device )
AM_RANGE(0x0000, 0x3fff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/video/h63484.c b/src/emu/video/h63484.c
index edacced60b6..8ba7d562ff8 100644
--- a/src/emu/video/h63484.c
+++ b/src/emu/video/h63484.c
@@ -15,7 +15,7 @@
#define FIFO_LOG 0
// default address map
-static ADDRESS_MAP_START( h63484_vram, AS_0, 8 )
+static ADDRESS_MAP_START( h63484_vram, AS_0, 8, h63484_device )
AM_RANGE(0x00000, 0x7ffff) AM_RAM
AM_RANGE(0x80000, 0xfffff) AM_NOP
ADDRESS_MAP_END
diff --git a/src/emu/video/hd61830.c b/src/emu/video/hd61830.c
index ece461232c9..1e25af33484 100644
--- a/src/emu/video/hd61830.c
+++ b/src/emu/video/hd61830.c
@@ -58,7 +58,7 @@ const device_type HD61830 = &device_creator<hd61830_device>;
// default address map
-static ADDRESS_MAP_START( hd61830, AS_0, 8 )
+static ADDRESS_MAP_START( hd61830, AS_0, 8, hd61830_device )
AM_RANGE(0x0000, 0xffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/emu/video/ramdac.c b/src/emu/video/ramdac.c
index 61ae67891e5..6521079e8a9 100644
--- a/src/emu/video/ramdac.c
+++ b/src/emu/video/ramdac.c
@@ -14,7 +14,7 @@
#include "video/ramdac.h"
// default address map
-static ADDRESS_MAP_START( ramdac_palram, AS_0, 8 )
+static ADDRESS_MAP_START( ramdac_palram, AS_0, 8, ramdac_device )
AM_RANGE(0x000, 0x0ff) AM_RAM // R bank
AM_RANGE(0x100, 0x1ff) AM_RAM // G bank
AM_RANGE(0x200, 0x2ff) AM_RAM // B bank
diff --git a/src/emu/video/sed1330.c b/src/emu/video/sed1330.c
index ca68c992e67..5312b4d62e3 100644
--- a/src/emu/video/sed1330.c
+++ b/src/emu/video/sed1330.c
@@ -66,7 +66,7 @@ const device_type SED1330 = &device_creator<sed1330_device>;
// default address map
-static ADDRESS_MAP_START( sed1330, AS_0, 8 )
+static ADDRESS_MAP_START( sed1330, AS_0, 8, sed1330_device )
AM_RANGE(0x0000, 0xffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/audio/atarijsa.c b/src/mame/audio/atarijsa.c
index 29b201909c3..055492d5056 100644
--- a/src/mame/audio/atarijsa.c
+++ b/src/mame/audio/atarijsa.c
@@ -87,12 +87,12 @@ static WRITE8_HANDLER( jsa3_io_w );
*
*************************************/
-static ADDRESS_MAP_START( jsa3_oki_map, AS_0, 8 )
+static ADDRESS_MAP_START( jsa3_oki_map, AS_0, 8, driver_device )
AM_RANGE(0x00000, 0x1ffff) AM_ROMBANK("bank12")
AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("bank13")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jsa3_oki2_map, AS_0, 8 )
+static ADDRESS_MAP_START( jsa3_oki2_map, AS_0, 8, driver_device )
AM_RANGE(0x00000, 0x1ffff) AM_ROMBANK("bank14")
AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("bank15")
ADDRESS_MAP_END
@@ -748,7 +748,7 @@ static void update_all_volumes(running_machine &machine )
*
*************************************/
-static ADDRESS_MAP_START( atarijsa1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( atarijsa1_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x2800, 0x2bff) AM_READWRITE(jsa1_io_r, jsa1_io_w)
@@ -756,7 +756,7 @@ static ADDRESS_MAP_START( atarijsa1_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( atarijsa2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( atarijsa2_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x2800, 0x2bff) AM_READWRITE(jsa2_io_r, jsa2_io_w)
@@ -765,7 +765,7 @@ ADDRESS_MAP_END
/* full map verified from schematics and Batman GALs */
-static ADDRESS_MAP_START( atarijsa3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( atarijsa3_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_MIRROR(0x07fe) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x2800, 0x2fff) AM_READWRITE(jsa3_io_r, jsa3_io_w)
@@ -773,7 +773,7 @@ static ADDRESS_MAP_START( atarijsa3_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( atarijsa3s_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( atarijsa3s_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_MIRROR(0x07fe) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x2800, 0x2fff) AM_READWRITE(jsa3s_io_r, jsa3s_io_w)
diff --git a/src/mame/audio/cage.c b/src/mame/audio/cage.c
index 9eee8290ff3..2a417a2f815 100644
--- a/src/mame/audio/cage.c
+++ b/src/mame/audio/cage.c
@@ -653,7 +653,7 @@ static const tms3203x_config cage_config =
};
-static ADDRESS_MAP_START( cage_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( cage_map, AS_PROGRAM, 32, driver_device )
AM_RANGE(0x000000, 0x00ffff) AM_RAM
AM_RANGE(0x200000, 0x200000) AM_WRITENOP
AM_RANGE(0x400000, 0x47ffff) AM_ROMBANK("bank10")
@@ -664,7 +664,7 @@ static ADDRESS_MAP_START( cage_map, AS_PROGRAM, 32 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cage_map_seattle, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( cage_map_seattle, AS_PROGRAM, 32, driver_device )
AM_RANGE(0x000000, 0x00ffff) AM_RAM
AM_RANGE(0x200000, 0x200000) AM_WRITENOP
AM_RANGE(0x400000, 0x47ffff) AM_ROMBANK("bank10")
diff --git a/src/mame/audio/carnival.c b/src/mame/audio/carnival.c
index 45d814e907e..2a31251dce4 100644
--- a/src/mame/audio/carnival.c
+++ b/src/mame/audio/carnival.c
@@ -285,11 +285,11 @@ static WRITE8_DEVICE_HANDLER( carnival_music_port_2_w )
}
-static ADDRESS_MAP_START( carnival_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( carnival_audio_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x07ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( carnival_audio_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( carnival_audio_io_map, AS_IO, 8, driver_device )
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(carnival_music_port_t1_r)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_WRITE(carnival_music_port_1_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_DEVWRITE("psg", carnival_music_port_2_w)
diff --git a/src/mame/audio/cinemat.c b/src/mame/audio/cinemat.c
index 76f1aa676f8..1b3c3eaa898 100644
--- a/src/mame/audio/cinemat.c
+++ b/src/mame/audio/cinemat.c
@@ -1535,7 +1535,7 @@ static MACHINE_RESET( demon_sound )
}
-static ADDRESS_MAP_START( demon_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( demon_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x3000, 0x33ff) AM_RAM
AM_RANGE(0x4000, 0x4001) AM_DEVREAD("ay1", ay8910_r)
@@ -1548,7 +1548,7 @@ static ADDRESS_MAP_START( demon_sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( demon_sound_ports, AS_IO, 8 )
+static ADDRESS_MAP_START( demon_sound_ports, AS_IO, 8, driver_device )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVWRITE("ctc", z80ctc_w)
AM_RANGE(0x1c, 0x1f) AM_DEVWRITE("ctc", z80ctc_w)
diff --git a/src/mame/audio/dcs.c b/src/mame/audio/dcs.c
index cde0e702fd4..56cee58e97f 100644
--- a/src/mame/audio/dcs.c
+++ b/src/mame/audio/dcs.c
@@ -431,14 +431,14 @@ static void sdrc_remap_memory(running_machine &machine);
*************************************/
/* DCS 2k memory map */
-static ADDRESS_MAP_START( dcs_2k_program_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( dcs_2k_program_map, AS_PROGRAM, 32, driver_device )
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE("dcsint")
AM_RANGE(0x0800, 0x0fff) AM_RAM AM_SHARE("dcsext")
AM_RANGE(0x1000, 0x17ff) AM_RAM AM_SHARE("dcsext")
AM_RANGE(0x1800, 0x1fff) AM_RAM AM_SHARE("dcsext")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dcs_2k_data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( dcs_2k_data_map, AS_DATA, 16, driver_device )
AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x1800) AM_READWRITE(dcs_dataram_r, dcs_dataram_w)
AM_RANGE(0x2000, 0x2fff) AM_ROMBANK("databank")
AM_RANGE(0x3000, 0x33ff) AM_WRITE(dcs_data_bank_select_w)
@@ -449,7 +449,7 @@ ADDRESS_MAP_END
/* DCS 2k with UART memory map */
-static ADDRESS_MAP_START( dcs_2k_uart_data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( dcs_2k_uart_data_map, AS_DATA, 16, driver_device )
AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x1800) AM_READWRITE(dcs_dataram_r, dcs_dataram_w)
AM_RANGE(0x2000, 0x2fff) AM_ROMBANK("databank")
AM_RANGE(0x3000, 0x33ff) AM_WRITE(dcs_data_bank_select_w)
@@ -462,12 +462,12 @@ ADDRESS_MAP_END
/* DCS 8k memory map */
-static ADDRESS_MAP_START( dcs_8k_program_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( dcs_8k_program_map, AS_PROGRAM, 32, driver_device )
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE("dcsint")
AM_RANGE(0x0800, 0x1fff) AM_RAM AM_SHARE("dcsext")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dcs_8k_data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( dcs_8k_data_map, AS_DATA, 16, driver_device )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x1fff) AM_READWRITE(dcs_dataram_r, dcs_dataram_w)
AM_RANGE(0x2000, 0x2fff) AM_ROMBANK("databank")
@@ -485,18 +485,18 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( dcs2_2115_program_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( dcs2_2115_program_map, AS_PROGRAM, 32, driver_device )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE("dcsint")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dcs2_2104_program_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( dcs2_2104_program_map, AS_PROGRAM, 32, driver_device )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x01ff) AM_RAM AM_SHARE("dcsint")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dcs2_2115_data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( dcs2_2115_data_map, AS_DATA, 16, driver_device )
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)
@@ -508,7 +508,7 @@ static ADDRESS_MAP_START( dcs2_2115_data_map, AS_DATA, 16 )
AM_RANGE(0x3fe0, 0x3fff) AM_READWRITE(adsp_control_r, adsp_control_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dcs2_2104_data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( dcs2_2104_data_map, AS_DATA, 16, driver_device )
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)
@@ -528,13 +528,13 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( dsio_program_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( dsio_program_map, AS_PROGRAM, 32, driver_device )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_RAM AM_SHARE("dcsint")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dsio_data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( dsio_data_map, AS_DATA, 16, driver_device )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x03ff) AM_RAMBANK("databank")
AM_RANGE(0x0400, 0x3fdf) AM_RAM
@@ -542,7 +542,7 @@ static ADDRESS_MAP_START( dsio_data_map, AS_DATA, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dsio_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( dsio_io_map, AS_IO, 16, driver_device )
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)
@@ -560,13 +560,13 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( denver_program_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( denver_program_map, AS_PROGRAM, 32, driver_device )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_RAM AM_SHARE("dcsint")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( denver_data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( denver_data_map, AS_DATA, 16, driver_device )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x07ff) AM_RAMBANK("databank")
AM_RANGE(0x0800, 0x3fdf) AM_RAM
@@ -574,7 +574,7 @@ static ADDRESS_MAP_START( denver_data_map, AS_DATA, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( denver_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( denver_io_map, AS_IO, 16, driver_device )
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)
diff --git a/src/mame/audio/dkong.c b/src/mame/audio/dkong.c
index 0cd9a9f44f2..95c53a7843c 100644
--- a/src/mame/audio/dkong.c
+++ b/src/mame/audio/dkong.c
@@ -1285,11 +1285,11 @@ WRITE8_HANDLER( dkong_audio_irq_w )
*
*************************************/
-static ADDRESS_MAP_START( dkong_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dkong_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dkong_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( dkong_sound_io_map, AS_IO, 8, driver_device )
AM_RANGE(0x00, 0xFF) AM_DEVREAD("ls175.3d", dkong_tune_r)
AM_WRITE(dkong_voice_w)
AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_DEVREAD("ls175.3d", dkong_tune_r)
@@ -1300,7 +1300,7 @@ static ADDRESS_MAP_START( dkong_sound_io_map, AS_IO, 8 )
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_LATCH8_READBIT("ls259.6h", 4)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dkongjr_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( dkongjr_sound_io_map, AS_IO, 8, driver_device )
AM_RANGE(0x00, 0x00) AM_MIRROR(0xff) AM_LATCH8_READ("ls174.3d")
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE("discrete", dkong_p1_w) /* only write to dac */
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_LATCH8_READWRITE("virtual_p2")
@@ -1308,7 +1308,7 @@ static ADDRESS_MAP_START( dkongjr_sound_io_map, AS_IO, 8 )
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_LATCH8_READBIT("ls259.6h", 4)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( radarscp1_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( radarscp1_sound_io_map, AS_IO, 8, driver_device )
AM_RANGE(0x00, 0x00) AM_MIRROR(0xff) AM_DEVREAD("ls175.3d", latch8_r)
AM_RANGE(0x00, 0xff) AM_DEVWRITE("discrete", dkong_p1_w) /* DAC here */
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_LATCH8_READ("virtual_p1")
@@ -1318,7 +1318,7 @@ static ADDRESS_MAP_START( radarscp1_sound_io_map, AS_IO, 8 )
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_LATCH8_READBIT("ls259.6h", 4)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dkong3_sound1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dkong3_sound1_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x4016, 0x4016) AM_LATCH8_READ("latch1") /* overwrite default */
AM_RANGE(0x4017, 0x4017) AM_LATCH8_READ("latch2")
@@ -1327,7 +1327,7 @@ static ADDRESS_MAP_START( dkong3_sound1_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dkong3_sound2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dkong3_sound2_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x4016, 0x4016) AM_LATCH8_READ("latch3") /* overwrite default */
AM_RANGE(0x4000, 0x4017) AM_DEVREAD("nes2", nes_psg_r)
diff --git a/src/mame/audio/exidy.c b/src/mame/audio/exidy.c
index 58fcd263167..5beb04e752b 100644
--- a/src/mame/audio/exidy.c
+++ b/src/mame/audio/exidy.c
@@ -866,7 +866,7 @@ DEVICE_GET_INFO( venture_sound )
DEFINE_LEGACY_SOUND_DEVICE(EXIDY_VENTURE, venture_sound);
-static ADDRESS_MAP_START( venture_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( venture_audio_map, AS_PROGRAM, 8, driver_device )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x0780) AM_RAM
AM_RANGE(0x0800, 0x087f) AM_MIRROR(0x0780) AM_DEVREADWRITE("riot", riot6532_r, riot6532_w)
@@ -935,13 +935,13 @@ static READ8_DEVICE_HANDLER( mtrap_voiceio_r )
}
-static ADDRESS_MAP_START( cvsd_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cvsd_map, AS_PROGRAM, 8, driver_device )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x3fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cvsd_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( cvsd_iomap, AS_IO, 8, driver_device )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xff) AM_DEVREADWRITE("custom", mtrap_voiceio_r, mtrap_voiceio_w)
ADDRESS_MAP_END
@@ -1105,7 +1105,7 @@ DEVICE_GET_INFO( victory_sound )
DEFINE_LEGACY_SOUND_DEVICE(EXIDY_VICTORY, victory_sound);
-static ADDRESS_MAP_START( victory_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( victory_audio_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x0f00) AM_RAM
AM_RANGE(0x1000, 0x107f) AM_MIRROR(0x0f80) AM_DEVREADWRITE("riot", riot6532_r, riot6532_w)
AM_RANGE(0x2000, 0x2003) AM_MIRROR(0x0ffc) AM_DEVREADWRITE_MODERN("pia1", pia6821_device, read, write)
diff --git a/src/mame/audio/exidy440.c b/src/mame/audio/exidy440.c
index e794fe4e78d..170b9ea1e87 100644
--- a/src/mame/audio/exidy440.c
+++ b/src/mame/audio/exidy440.c
@@ -944,7 +944,7 @@ static WRITE8_DEVICE_HANDLER( sound_banks_w )
*
*************************************/
-static ADDRESS_MAP_START( exidy440_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( exidy440_audio_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x7fff) AM_NOP
AM_RANGE(0x8000, 0x801f) AM_MIRROR(0x03e0) AM_DEVREADWRITE("custom", m6844_r, m6844_w)
AM_RANGE(0x8400, 0x840f) AM_MIRROR(0x03f0) AM_DEVREADWRITE("custom", sound_volume_r, sound_volume_w)
diff --git a/src/mame/audio/hyprolyb.c b/src/mame/audio/hyprolyb.c
index 074417e7299..eb28ab29bca 100644
--- a/src/mame/audio/hyprolyb.c
+++ b/src/mame/audio/hyprolyb.c
@@ -89,7 +89,7 @@ static READ8_DEVICE_HANDLER( hyprolyb_adpcm_data_r )
return soundlatch2_r(state->m_space, offset);
}
-static ADDRESS_MAP_START( hyprolyb_adpcm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hyprolyb_adpcm_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_DEVREAD("hyprolyb_adpcm", hyprolyb_adpcm_data_r)
AM_RANGE(0x1001, 0x1001) AM_DEVREAD("hyprolyb_adpcm", hyprolyb_adpcm_ready_r)
diff --git a/src/mame/audio/irem.c b/src/mame/audio/irem.c
index a94a915dba9..9ff8b1d2ffd 100644
--- a/src/mame/audio/irem.c
+++ b/src/mame/audio/irem.c
@@ -377,14 +377,14 @@ DISCRETE_SOUND_END
/* 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, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m52_small_sound_map, AS_PROGRAM, 8, driver_device )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x0fff) AM_DEVWRITE("irem_audio", m52_adpcm_w)
AM_RANGE(0x1000, 0x1fff) AM_WRITE(sound_irq_ack_w)
AM_RANGE(0x2000, 0x7fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m52_large_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m52_large_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_DEVWRITE("irem_audio", m52_adpcm_w)
AM_RANGE(0x2000, 0x3fff) AM_WRITE(sound_irq_ack_w)
AM_RANGE(0x4000, 0xffff) AM_ROM
@@ -392,14 +392,14 @@ ADDRESS_MAP_END
/* complete address map verified from Kid Niki schematics */
-static ADDRESS_MAP_START( m62_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m62_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0800, 0x0800) AM_MIRROR(0xf7fc) AM_WRITE(sound_irq_ack_w)
AM_RANGE(0x0801, 0x0802) AM_MIRROR(0xf7fc) AM_DEVWRITE("irem_audio", m62_adpcm_w)
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( irem_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( irem_sound_portmap, AS_IO, 8, driver_device )
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_DEVREADWRITE("irem_audio", m6803_port1_r, m6803_port1_w)
AM_RANGE(M6801_PORT2, M6801_PORT2) AM_DEVREADWRITE("irem_audio", m6803_port2_r, m6803_port2_w)
ADDRESS_MAP_END
diff --git a/src/mame/audio/jedi.c b/src/mame/audio/jedi.c
index e36ff859ab1..b7f080e51d1 100644
--- a/src/mame/audio/jedi.c
+++ b/src/mame/audio/jedi.c
@@ -173,7 +173,7 @@ static WRITE8_HANDLER( speech_reset_w )
*
*************************************/
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x080f) AM_MIRROR(0x07c0) AM_DEVREADWRITE("pokey1", pokey_r, pokey_w)
AM_RANGE(0x0810, 0x081f) AM_MIRROR(0x07c0) AM_DEVREADWRITE("pokey2", pokey_r, pokey_w)
diff --git a/src/mame/audio/leland.c b/src/mame/audio/leland.c
index 92a515647dd..4eb4c4cce9c 100644
--- a/src/mame/audio/leland.c
+++ b/src/mame/audio/leland.c
@@ -2207,24 +2207,24 @@ WRITE8_DEVICE_HANDLER( ataxx_80186_control_w )
*
*************************************/
-ADDRESS_MAP_START( leland_80186_map_program, AS_PROGRAM, 16 )
+ADDRESS_MAP_START( leland_80186_map_program, AS_PROGRAM, 16, driver_device )
AM_RANGE(0x00000, 0x03fff) AM_MIRROR(0x1c000) AM_RAM
AM_RANGE(0x20000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-ADDRESS_MAP_START( ataxx_80186_map_io, AS_IO, 16 )
+ADDRESS_MAP_START( ataxx_80186_map_io, AS_IO, 16, driver_device )
AM_RANGE(0xff00, 0xffff) AM_DEVREADWRITE("custom", i80186_internal_port_r, i80186_internal_port_w)
ADDRESS_MAP_END
-ADDRESS_MAP_START( redline_80186_map_io, AS_IO, 16 )
+ADDRESS_MAP_START( redline_80186_map_io, AS_IO, 16, driver_device )
AM_RANGE(0x6000, 0x6fff) AM_DEVWRITE("custom", redline_dac_w)
AM_RANGE(0xff00, 0xffff) AM_DEVREADWRITE("custom", i80186_internal_port_r, i80186_internal_port_w)
ADDRESS_MAP_END
-ADDRESS_MAP_START( leland_80186_map_io, AS_IO, 16 )
+ADDRESS_MAP_START( leland_80186_map_io, AS_IO, 16, driver_device )
AM_RANGE(0x0000, 0x000b) AM_DEVWRITE("custom", dac_w)
AM_RANGE(0x0080, 0x008b) AM_DEVWRITE("custom", dac_w)
AM_RANGE(0x00c0, 0x00cb) AM_DEVWRITE("custom", dac_w)
diff --git a/src/mame/audio/mario.c b/src/mame/audio/mario.c
index bbb6e630c65..a1b34f71d84 100644
--- a/src/mame/audio/mario.c
+++ b/src/mame/audio/mario.c
@@ -588,12 +588,12 @@ WRITE8_HANDLER( mario_sh3_w )
*
*************************************/
-static ADDRESS_MAP_START( mario_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mario_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x07ff) AM_ROMBANK("bank1") AM_REGION("audiocpu", 0)
AM_RANGE(0x0800, 0x0fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mario_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mario_sound_io_map, AS_IO, 8, driver_device )
AM_RANGE(0x00, 0xff) AM_READ(mario_sh_tune_r) AM_DEVWRITE("discrete", mario_sh_sound_w)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READWRITE(mario_sh_p1_r, mario_sh_p1_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(mario_sh_p2_r, mario_sh_p2_w)
@@ -601,7 +601,7 @@ static ADDRESS_MAP_START( mario_sound_io_map, AS_IO, 8 )
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(mario_sh_t1_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( masao_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( masao_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_DEVREADWRITE("aysnd", ay8910_r, ay8910_data_w)
diff --git a/src/mame/audio/mcr.c b/src/mame/audio/mcr.c
index 5c9e1e3df76..99b10d0d786 100644
--- a/src/mame/audio/mcr.c
+++ b/src/mame/audio/mcr.c
@@ -443,7 +443,7 @@ static const ay8910_interface ssio_ay8910_interface_2 =
/********* memory interfaces ***********/
/* address map verified from schematics */
-static ADDRESS_MAP_START( ssio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ssio_map, AS_PROGRAM, 8, driver_device )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x0c00) AM_RAM
@@ -568,7 +568,7 @@ void csdeluxe_reset_w(running_machine &machine, int state)
/********* memory interfaces ***********/
/* address map determined by PAL; not verified */
-static ADDRESS_MAP_START( csdeluxe_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( csdeluxe_map, AS_PROGRAM, 16, driver_device )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x1ffff)
AM_RANGE(0x000000, 0x007fff) AM_ROM
@@ -688,7 +688,7 @@ void soundsgood_reset_w(running_machine &machine, int state)
/********* memory interfaces ***********/
/* address map determined by PAL; not verified */
-static ADDRESS_MAP_START( soundsgood_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( soundsgood_map, AS_PROGRAM, 16, driver_device )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x7ffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
@@ -792,7 +792,7 @@ void turbocs_reset_w(running_machine &machine, int state)
/********* memory interfaces ***********/
/* address map verified from schematics */
-static ADDRESS_MAP_START( turbocs_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( turbocs_map, AS_PROGRAM, 8, driver_device )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x3800) AM_RAM
AM_RANGE(0x4000, 0x4003) AM_MIRROR(0x3ffc) AM_DEVREADWRITE_MODERN("tcspia", pia6821_device, read_alt, write_alt)
@@ -923,7 +923,7 @@ void squawkntalk_reset_w(running_machine &machine, int state)
/* address map verified from schematics */
/* note that jumpers control the ROM sizes; if these are changed, use the alternate */
/* address map below */
-static ADDRESS_MAP_START( squawkntalk_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( squawkntalk_map, AS_PROGRAM, 8, driver_device )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */
AM_RANGE(0x0080, 0x0083) AM_MIRROR(0x4f6c) AM_DEVREADWRITE_MODERN("sntpia0", pia6821_device, read, write)
@@ -935,7 +935,7 @@ ADDRESS_MAP_END
/* alternate address map if the ROM jumpers are changed to support a smaller */
/* ROM size of 2k */
#ifdef UNUSED_FUNCTION
-ADDRESS_MAP_START( squawkntalk_alt_map, AS_PROGRAM, 8 )
+ADDRESS_MAP_START( squawkntalk_alt_map, AS_PROGRAM, 8, driver_device )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */
AM_RANGE(0x0080, 0x0083) AM_MIRROR(0x676c) AM_DEVREADWRITE_MODERN("sntpia0", pia6821_device, read, write)
diff --git a/src/mame/audio/n8080.c b/src/mame/audio/n8080.c
index c187b6d5f90..0eedc347544 100644
--- a/src/mame/audio/n8080.c
+++ b/src/mame/audio/n8080.c
@@ -558,13 +558,13 @@ MACHINE_RESET( helifire_sound )
}
-static ADDRESS_MAP_START( n8080_sound_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( n8080_sound_cpu_map, AS_PROGRAM, 8, driver_device )
ADDRESS_MAP_GLOBAL_MASK(0x3ff)
AM_RANGE(0x0000, 0x03ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( n8080_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( n8080_sound_io_map, AS_IO, 8, driver_device )
AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(n8080_8035_t0_r)
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(n8080_8035_t1_r)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READ(n8080_8035_p1_r)
@@ -573,7 +573,7 @@ static ADDRESS_MAP_START( n8080_sound_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( helifire_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( helifire_sound_io_map, AS_IO, 8, driver_device )
AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(helifire_8035_t0_r)
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(helifire_8035_t1_r)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READ(helifire_8035_p2_r)
diff --git a/src/mame/audio/namco52.c b/src/mame/audio/namco52.c
index 8a247832b4e..b3b65b59382 100644
--- a/src/mame/audio/namco52.c
+++ b/src/mame/audio/namco52.c
@@ -170,7 +170,7 @@ static TIMER_CALLBACK( external_clock_pulse )
DEVICE INTERFACE
***************************************************************************/
-static ADDRESS_MAP_START( namco_52xx_map_io, AS_IO, 8 )
+static ADDRESS_MAP_START( namco_52xx_map_io, AS_IO, 8, namco_52xx_device )
AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(namco_52xx_K_r)
AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(namco_52xx_O_w)
AM_RANGE(MB88_PORTP, MB88_PORTP) AM_WRITE(namco_52xx_P_w)
diff --git a/src/mame/audio/namco54.c b/src/mame/audio/namco54.c
index d8ba961ef15..9b1ae4ec9f1 100644
--- a/src/mame/audio/namco54.c
+++ b/src/mame/audio/namco54.c
@@ -137,7 +137,7 @@ WRITE8_DEVICE_HANDLER( namco_54xx_write )
DEVICE INTERFACE
***************************************************************************/
-static ADDRESS_MAP_START( namco_54xx_map_io, AS_IO, 8 )
+static ADDRESS_MAP_START( namco_54xx_map_io, AS_IO, 8, namco_54xx_device )
AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(namco_54xx_K_r)
AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(namco_54xx_O_w)
AM_RANGE(MB88_PORTR0, MB88_PORTR0) AM_READ(namco_54xx_R0_r)
diff --git a/src/mame/audio/qix.c b/src/mame/audio/qix.c
index d974a7880e9..b9f2428d322 100644
--- a/src/mame/audio/qix.c
+++ b/src/mame/audio/qix.c
@@ -154,7 +154,7 @@ static WRITE_LINE_DEVICE_HANDLER( qix_pia_sint )
*
*************************************/
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x2000, 0x2003) AM_MIRROR(0x5ffc) AM_DEVREADWRITE_MODERN("sndpia2", pia6821_device, read, write)
AM_RANGE(0x4000, 0x4003) AM_MIRROR(0x3ffc) AM_DEVREADWRITE_MODERN("sndpia1", pia6821_device, read, write)
diff --git a/src/mame/audio/redalert.c b/src/mame/audio/redalert.c
index b12c59a68a7..4661d767efe 100644
--- a/src/mame/audio/redalert.c
+++ b/src/mame/audio/redalert.c
@@ -125,7 +125,7 @@ static const ay8910_interface redalert_ay8910_interface =
};
-static ADDRESS_MAP_START( redalert_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( redalert_audio_map, AS_PROGRAM, 8, driver_device )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x0c00) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x0ffe) AM_READNOP AM_DEVWRITE("aysnd", redalert_AY8910_w)
@@ -182,7 +182,7 @@ static I8085_CONFIG( redalert_voice_i8085_config )
};
-static ADDRESS_MAP_START( redalert_voice_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( redalert_voice_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_NOP
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x3c00) AM_RAM
@@ -344,7 +344,7 @@ static WRITE8_DEVICE_HANDLER( demoneye_ay8910_data_w )
}
-static ADDRESS_MAP_START( demoneye_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( demoneye_audio_map, AS_PROGRAM, 8, driver_device )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x0500, 0x0503) AM_DEVREADWRITE_MODERN("sndpia", pia6821_device, read, write)
diff --git a/src/mame/audio/scramble.c b/src/mame/audio/scramble.c
index 9b8a1688b09..6989d0c877a 100644
--- a/src/mame/audio/scramble.c
+++ b/src/mame/audio/scramble.c
@@ -289,12 +289,12 @@ static const ay8910_interface ad2083_ay8910_interface_2 =
DEVCB_NULL
};
-static ADDRESS_MAP_START( ad2083_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ad2083_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ad2083_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( ad2083_sound_io_map, AS_IO, 8, driver_device )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_DEVWRITE("tmsprom", ad2083_tms5110_ctrl_w)
AM_RANGE(0x10, 0x10) AM_DEVWRITE("ay1", ay8910_address_w)
diff --git a/src/mame/audio/segag80r.c b/src/mame/audio/segag80r.c
index 99cb44497ee..65da74c6e75 100644
--- a/src/mame/audio/segag80r.c
+++ b/src/mame/audio/segag80r.c
@@ -797,7 +797,7 @@ static const tms36xx_interface monsterb_tms3617_interface =
*
*************************************/
-static ADDRESS_MAP_START( monsterb_7751_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( monsterb_7751_portmap, AS_IO, 8, driver_device )
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(n7751_t1_r)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READ(n7751_command_r)
AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_READ(n7751_rom_r)
diff --git a/src/mame/audio/segasnd.c b/src/mame/audio/segasnd.c
index 27250d1d301..6d6f1974d73 100644
--- a/src/mame/audio/segasnd.c
+++ b/src/mame/audio/segasnd.c
@@ -293,12 +293,12 @@ WRITE8_DEVICE_HANDLER( sega_speech_control_w )
*
*************************************/
-static ADDRESS_MAP_START( speech_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( speech_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x0800) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( speech_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( speech_portmap, AS_IO, 8, driver_device )
AM_RANGE(0x00, 0xff) AM_DEVREAD("segaspeech", speech_rom_r)
AM_RANGE(0x00, 0xff) AM_DEVWRITE("speech", sp0250_w)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVREADWRITE("segaspeech", speech_p1_r, speech_p1_w)
@@ -986,17 +986,17 @@ static WRITE8_DEVICE_HANDLER( usb_workram_w )
*
*************************************/
-static ADDRESS_MAP_START( usb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( usb_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("pgmram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( usb_map_rom, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( usb_map_rom, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( usb_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( usb_portmap, AS_IO, 8, driver_device )
AM_RANGE(0x00, 0xff) AM_DEVREADWRITE("usbsnd", usb_workram_r, usb_workram_w)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVREADWRITE("usbsnd", usb_p1_r, usb_p1_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_DEVWRITE("usbsnd", usb_p2_w)
diff --git a/src/mame/audio/seibu.c b/src/mame/audio/seibu.c
index 99794beb3fe..79c0281fd84 100644
--- a/src/mame/audio/seibu.c
+++ b/src/mame/audio/seibu.c
@@ -489,7 +489,7 @@ const ym2203_interface seibu_ym2203_interface =
/***************************************************************************/
-ADDRESS_MAP_START( seibu_sound_map, AS_PROGRAM, 8 )
+ADDRESS_MAP_START( seibu_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_WRITE(seibu_pending_w)
@@ -507,7 +507,7 @@ ADDRESS_MAP_START( seibu_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-ADDRESS_MAP_START( seibu2_airraid_sound_map, AS_PROGRAM, 8 )
+ADDRESS_MAP_START( seibu2_airraid_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_WRITE(seibu_pending_w)
@@ -525,7 +525,7 @@ ADDRESS_MAP_START( seibu2_airraid_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-ADDRESS_MAP_START( seibu2_sound_map, AS_PROGRAM, 8 )
+ADDRESS_MAP_START( seibu2_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_WRITE(seibu_pending_w)
@@ -543,7 +543,7 @@ ADDRESS_MAP_START( seibu2_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-ADDRESS_MAP_START( seibu2_raiden2_sound_map, AS_PROGRAM, 8 )
+ADDRESS_MAP_START( seibu2_raiden2_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_WRITE(seibu_pending_w)
@@ -564,7 +564,7 @@ ADDRESS_MAP_START( seibu2_raiden2_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0x401a, 0x401a) AM_NOP
ADDRESS_MAP_END
-ADDRESS_MAP_START( seibu_newzeroteam_sound_map, AS_PROGRAM, 8 )
+ADDRESS_MAP_START( seibu_newzeroteam_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_WRITE(seibu_pending_w)
@@ -582,7 +582,7 @@ ADDRESS_MAP_START( seibu_newzeroteam_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-ADDRESS_MAP_START( seibu3_sound_map, AS_PROGRAM, 8 )
+ADDRESS_MAP_START( seibu3_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_WRITE(seibu_pending_w)
@@ -600,7 +600,7 @@ ADDRESS_MAP_START( seibu3_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-ADDRESS_MAP_START( seibu3_adpcm_sound_map, AS_PROGRAM, 8 )
+ADDRESS_MAP_START( seibu3_adpcm_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_WRITE(seibu_pending_w)
diff --git a/src/mame/audio/t5182.c b/src/mame/audio/t5182.c
index 46e263e74cd..576c674ab7e 100644
--- a/src/mame/audio/t5182.c
+++ b/src/mame/audio/t5182.c
@@ -295,7 +295,7 @@ const ym2151_interface t5182_ym2151_interface =
// 90XX reset
// A0XX
// rest unused
-ADDRESS_MAP_START( t5182_map, AS_PROGRAM, 8 )
+ADDRESS_MAP_START( t5182_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_ROM // internal ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM AM_MIRROR(0x1800) // internal RAM
AM_RANGE(0x4000, 0x40ff) AM_RAM AM_MIRROR(0x3F00) AM_BASE(&t5182_sharedram) // 2016 with four 74ls245s, one each for main and t5182 address and data. pins 23, 22, 20, 19, 18 are all tied low so only 256 bytes are usable
@@ -313,7 +313,7 @@ ADDRESS_MAP_END
// 30 R coin inputs (bits 0 and 1, active high)
// 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, AS_IO, 8 )
+ADDRESS_MAP_START( t5182_io, AS_IO, 8, driver_device )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x10, 0x10) AM_WRITE(t5182_sharedram_semaphore_snd_acquire_w)
diff --git a/src/mame/audio/taito_en.c b/src/mame/audio/taito_en.c
index ef2d4792879..73a01d92bc2 100644
--- a/src/mame/audio/taito_en.c
+++ b/src/mame/audio/taito_en.c
@@ -287,7 +287,7 @@ static WRITE16_HANDLER(es5510_dsp_w)
}
}
-static ADDRESS_MAP_START( f3_sound_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( f3_sound_map, AS_PROGRAM, 16, driver_device )
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_MIRROR(0x30000) AM_SHARE("share1")
AM_RANGE(0x140000, 0x140fff) AM_READWRITE(f3_68000_share_r, f3_68000_share_w)
AM_RANGE(0x200000, 0x20001f) AM_DEVREADWRITE("ensoniq", es5505_r, es5505_w)
diff --git a/src/mame/audio/taito_zm.c b/src/mame/audio/taito_zm.c
index ad7e4904a05..a754e47957c 100644
--- a/src/mame/audio/taito_zm.c
+++ b/src/mame/audio/taito_zm.c
@@ -15,7 +15,7 @@
#include "audio/taito_zm.h"
#include "sound/zsg2.h"
-static ADDRESS_MAP_START(taitozoom_map, AS_PROGRAM, 16)
+static ADDRESS_MAP_START(taitozoom_map, AS_PROGRAM, 16, driver_device )
AM_RANGE(0x080000, 0x0fffff) AM_ROM AM_REGION("mn10200", 0)
AM_RANGE(0x400000, 0x40ffff) AM_RAM
AM_RANGE(0x800000, 0x800fff) AM_DEVREADWRITE("zsg2", zsg2_r, zsg2_w)
@@ -41,7 +41,7 @@ static WRITE8_HANDLER(tms_ctrl_w)
tms_ctrl = data;
}
-static ADDRESS_MAP_START(taitozoom_io_map, AS_IO, 8)
+static ADDRESS_MAP_START(taitozoom_io_map, AS_IO, 8, driver_device )
AM_RANGE(MN10200_PORT1, MN10200_PORT1) AM_READWRITE(tms_ctrl_r, tms_ctrl_w)
ADDRESS_MAP_END
diff --git a/src/mame/audio/timeplt.c b/src/mame/audio/timeplt.c
index 886f45d9d14..00568c41816 100644
--- a/src/mame/audio/timeplt.c
+++ b/src/mame/audio/timeplt.c
@@ -165,7 +165,7 @@ WRITE8_HANDLER( timeplt_sh_irqtrigger_w )
*
*************************************/
-static ADDRESS_MAP_START( timeplt_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( timeplt_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x3000, 0x33ff) AM_MIRROR(0x0c00) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_MIRROR(0x0fff) AM_DEVREADWRITE("ay1", ay8910_r, ay8910_data_w)
@@ -176,7 +176,7 @@ static ADDRESS_MAP_START( timeplt_sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( locomotn_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( locomotn_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_MIRROR(0x0c00) AM_RAM
AM_RANGE(0x3000, 0x3fff) AM_DEVWRITE("timeplt_audio", timeplt_filter_w)
diff --git a/src/mame/audio/williams.c b/src/mame/audio/williams.c
index 2919c0b1990..c2bb8fc1c9c 100644
--- a/src/mame/audio/williams.c
+++ b/src/mame/audio/williams.c
@@ -99,7 +99,7 @@ static WRITE8_HANDLER( narc_slave_sync_w );
****************************************************************************/
/* CVSD readmem/writemem structures */
-static ADDRESS_MAP_START( williams_cvsd_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( williams_cvsd_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x1800) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_MIRROR(0x1ffe) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x4000, 0x4003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE_MODERN("cvsdpia", pia6821_device, read, write)
@@ -111,7 +111,7 @@ ADDRESS_MAP_END
/* NARC master readmem/writemem structures */
-static ADDRESS_MAP_START( williams_narc_master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( williams_narc_master_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_MIRROR(0x03fe) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x2800, 0x2800) AM_MIRROR(0x03ff) AM_WRITE(narc_master_talkback_w)
@@ -125,7 +125,7 @@ static ADDRESS_MAP_START( williams_narc_master_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* NARC slave readmem/writemem structures */
-static ADDRESS_MAP_START( williams_narc_slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( williams_narc_slave_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x03ff) AM_DEVWRITE("cvsd", cvsd_clock_set_w)
AM_RANGE(0x2400, 0x2400) AM_MIRROR(0x03ff) AM_DEVWRITE("cvsd", cvsd_digit_clock_clear_w)
@@ -140,7 +140,7 @@ ADDRESS_MAP_END
/* ADPCM readmem/writemem structures */
-static ADDRESS_MAP_START( williams_adpcm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( williams_adpcm_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x03ff) AM_WRITE(adpcm_bank_select_w)
AM_RANGE(0x2400, 0x2401) AM_MIRROR(0x03fe) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/1942.c b/src/mame/drivers/1942.c
index 0a033811344..1f74266f22a 100644
--- a/src/mame/drivers/1942.c
+++ b/src/mame/drivers/1942.c
@@ -86,7 +86,7 @@ static TIMER_DEVICE_CALLBACK( c1942_scanline )
}
-static ADDRESS_MAP_START( c1942_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( c1942_map, AS_PROGRAM, 8, _1942_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("SYSTEM")
@@ -105,7 +105,7 @@ static ADDRESS_MAP_START( c1942_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, _1942_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/1943.c b/src/mame/drivers/1943.c
index e3478d297aa..2095c5c95f7 100644
--- a/src/mame/drivers/1943.c
+++ b/src/mame/drivers/1943.c
@@ -50,7 +50,7 @@ static READ8_HANDLER( c1943_protection_r )
/* Memory Maps */
-static ADDRESS_MAP_START( c1943_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( c1943_map, AS_PROGRAM, 8, _1943_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("SYSTEM")
@@ -77,7 +77,7 @@ static ADDRESS_MAP_START( c1943_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_SIZE_MEMBER(_1943_state, m_spriteram, m_spriteram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, _1943_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc800) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/1945kiii.c b/src/mame/drivers/1945kiii.c
index ce7117a2e22..63bd00c6746 100644
--- a/src/mame/drivers/1945kiii.c
+++ b/src/mame/drivers/1945kiii.c
@@ -144,7 +144,7 @@ static WRITE16_HANDLER( k3_soundbanks_w )
state->m_oki2->set_bank_base((data & 2) ? 0x40000 : 0);
}
-static ADDRESS_MAP_START( k3_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( k3_map, AS_PROGRAM, 16, k3_state )
AM_RANGE(0x0009ce, 0x0009cf) AM_WRITENOP // bug in code? (clean up log)
AM_RANGE(0x0009d2, 0x0009d3) AM_WRITENOP // bug in code? (clean up log)
diff --git a/src/mame/drivers/20pacgal.c b/src/mame/drivers/20pacgal.c
index 4423c8b0083..6fcdb03262f 100644
--- a/src/mame/drivers/20pacgal.c
+++ b/src/mame/drivers/20pacgal.c
@@ -198,7 +198,7 @@ static WRITE8_HANDLER( sprite_lookup_w )
state->m_sprite_color_lookup[offset] = data;
}
-static ADDRESS_MAP_START( 20pacgal_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( 20pacgal_map, AS_PROGRAM, 8, _20pacgal_state )
AM_RANGE(0x00000, 0x03fff) AM_ROM
AM_RANGE(0x04000, 0x07fff) AM_ROM
AM_RANGE(0x08000, 0x09fff) AM_ROM
@@ -225,7 +225,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( 20pacgal_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( 20pacgal_io_map, AS_IO, 8, _20pacgal_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x3f) AM_NOP /* Z180 internal registers */
AM_RANGE(0x40, 0x7f) AM_NOP /* Z180 internal registers */
diff --git a/src/mame/drivers/2mindril.c b/src/mame/drivers/2mindril.c
index d3899a7028c..5b6a36a23a7 100644
--- a/src/mame/drivers/2mindril.c
+++ b/src/mame/drivers/2mindril.c
@@ -190,7 +190,7 @@ static WRITE16_HANDLER( drill_irq_w )
COMBINE_DATA(&state->irq_reg);
}
-static ADDRESS_MAP_START( drill_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( drill_map, AS_PROGRAM, 16, taito_f3_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
AM_RANGE(0x300000, 0x3000ff) AM_RAM
diff --git a/src/mame/drivers/30test.c b/src/mame/drivers/30test.c
index e647b464075..4b3031e428f 100644
--- a/src/mame/drivers/30test.c
+++ b/src/mame/drivers/30test.c
@@ -125,7 +125,7 @@ static WRITE8_DEVICE_HANDLER( hc11_okibank_w )
}
-static ADDRESS_MAP_START( namco_30test_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( namco_30test_map, AS_PROGRAM, 8, namco_30test_state )
AM_RANGE(0x0000, 0x003f) AM_RAM // internal I/O
AM_RANGE(0x007c, 0x007c) AM_READWRITE(hc11_mux_r,hc11_mux_w)
AM_RANGE(0x007e, 0x007e) AM_DEVREADWRITE("oki",hc11_okibank_r,hc11_okibank_w)
@@ -145,7 +145,7 @@ static ADDRESS_MAP_START( namco_30test_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( namco_30test_io, AS_IO, 8 )
+static ADDRESS_MAP_START( namco_30test_io, AS_IO, 8, namco_30test_state )
AM_RANGE(MC68HC11_IO_PORTA,MC68HC11_IO_PORTA) AM_READ(namco_30test_mux_r)
// AM_RANGE(MC68HC11_IO_PORTD,MC68HC11_IO_PORTD) AM_RAM
AM_RANGE(MC68HC11_IO_PORTE,MC68HC11_IO_PORTE) AM_READ_PORT("SYSTEM")
diff --git a/src/mame/drivers/39in1.c b/src/mame/drivers/39in1.c
index dcc698c5b73..f79f975d8c1 100644
--- a/src/mame/drivers/39in1.c
+++ b/src/mame/drivers/39in1.c
@@ -1463,7 +1463,7 @@ static DRIVER_INIT( 39in1 )
space->install_legacy_read_handler (0xa0151648, 0xa015164b, FUNC(prot_cheater_r));
}
-static ADDRESS_MAP_START( 39in1_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( 39in1_map, AS_PROGRAM, 32, _39in1_state )
AM_RANGE(0x00000000, 0x0007ffff) AM_ROM
AM_RANGE(0x00400000, 0x005fffff) AM_ROM AM_REGION("data", 0)
AM_RANGE(0x04000000, 0x047fffff) AM_READWRITE( cpld_r, cpld_w )
diff --git a/src/mame/drivers/3do.c b/src/mame/drivers/3do.c
index b3e0a953d40..1d4cbd05402 100644
--- a/src/mame/drivers/3do.c
+++ b/src/mame/drivers/3do.c
@@ -103,7 +103,7 @@ Part list of Goldstar 3DO Interactive Multiplayer
#define X601_CLOCK XTAL_16_9344MHz
-static ADDRESS_MAP_START( 3do_mem, AS_PROGRAM, 32)
+static ADDRESS_MAP_START( 3do_mem, AS_PROGRAM, 32, _3do_state )
AM_RANGE(0x00000000, 0x001FFFFF) AM_RAMBANK("bank1") AM_BASE_MEMBER(_3do_state,m_dram) /* DRAM */
AM_RANGE(0x00200000, 0x003FFFFF) AM_RAM AM_BASE_MEMBER(_3do_state,m_vram) /* VRAM */
AM_RANGE(0x03000000, 0x030FFFFF) AM_ROMBANK("bank2") /* BIOS */
diff --git a/src/mame/drivers/40love.c b/src/mame/drivers/40love.c
index b607e3d9965..96f57e09b31 100644
--- a/src/mame/drivers/40love.c
+++ b/src/mame/drivers/40love.c
@@ -631,7 +631,7 @@ static WRITE8_HANDLER( to_main_w )
/***************************************************************************/
-static ADDRESS_MAP_START( 40love_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( 40love_map, AS_PROGRAM, 8, fortyl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM /* M5517P on main board */
AM_RANGE(0x8800, 0x8800) AM_DEVREADWRITE("bmcu", buggychl_mcu_r, buggychl_mcu_w)
@@ -656,7 +656,7 @@ static ADDRESS_MAP_START( 40love_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_READWRITE(fortyl_pixram_r, fortyl_pixram_w) /* banked pixel layer */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( undoukai_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( undoukai_map, AS_PROGRAM, 8, fortyl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_BASE_MEMBER(fortyl_state, m_mcu_ram) /* M5517P on main board */
@@ -754,7 +754,7 @@ static WRITE8_DEVICE_HANDLER( sound_control_3_w ) /* unknown */
// popmessage("SND3 0=%02x 1=%02x 2=%02x 3=%02x", state->m_snd_ctrl0, state->m_snd_ctrl1, state->m_snd_ctrl2, state->m_snd_ctrl3);
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, fortyl_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc801) AM_DEVWRITE("aysnd", ay8910_address_data_w)
diff --git a/src/mame/drivers/4enraya.c b/src/mame/drivers/4enraya.c
index b72d4b47739..8986b08af39 100644
--- a/src/mame/drivers/4enraya.c
+++ b/src/mame/drivers/4enraya.c
@@ -140,7 +140,7 @@ static WRITE8_HANDLER( fenraya_custom_map_w )
}
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, _4enraya_state )
AM_RANGE(0x0000, 0xffff) AM_READWRITE(fenraya_custom_map_r,fenraya_custom_map_w)
#if 0
AM_RANGE(0x0000, 0xbfff) AM_ROM
@@ -151,7 +151,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
#endif
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, AS_IO, 8, _4enraya_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW")
AM_RANGE(0x01, 0x01) AM_READ_PORT("INPUTS")
@@ -160,14 +160,14 @@ static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
AM_RANGE(0x33, 0x33) AM_DEVWRITE("aysnd", sound_control_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( unkpacg_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( unkpacg_main_map, AS_PROGRAM, 8, _4enraya_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x6000, 0x67ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x7000, 0x7fff) AM_WRITE(fenraya_videoram_w) AM_BASE_SIZE_MEMBER(_4enraya_state, m_videoram, m_videoram_size)
AM_RANGE(0x8000, 0x9fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( unkpacg_main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( unkpacg_main_portmap, AS_IO, 8, _4enraya_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW1")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/4roses.c b/src/mame/drivers/4roses.c
index d602a679f5c..a9993980e9e 100644
--- a/src/mame/drivers/4roses.c
+++ b/src/mame/drivers/4roses.c
@@ -199,7 +199,7 @@ public:
* Memory map information *
*************************/
-static ADDRESS_MAP_START( 4roses_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( 4roses_map, AS_PROGRAM, 8, _4roses_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM // AM_SHARE("nvram")
AM_RANGE(0x6000, 0x6fff) AM_RAM_WRITE(funworld_videoram_w) AM_BASE_MEMBER(funworld_state, m_videoram)
AM_RANGE(0x7000, 0x7fff) AM_RAM_WRITE(funworld_colorram_w) AM_BASE_MEMBER(funworld_state, m_colorram)
diff --git a/src/mame/drivers/5clown.c b/src/mame/drivers/5clown.c
index e0b824ab5cb..f9b7dd3ba9f 100644
--- a/src/mame/drivers/5clown.c
+++ b/src/mame/drivers/5clown.c
@@ -716,7 +716,7 @@ static WRITE8_HANDLER( snd_a02_w )
* Memory map information *
*************************/
-static ADDRESS_MAP_START( fclown_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fclown_map, AS_PROGRAM, 8, _5clown_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x0800, 0x0800) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE_MODERN("crtc", mc6845_device, register_r, register_w)
@@ -791,7 +791,7 @@ ADDRESS_MAP_END
*/
-static ADDRESS_MAP_START( fcaudio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fcaudio_map, AS_PROGRAM, 8, _5clown_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0800) AM_WRITE(snd_800_w)
AM_RANGE(0x0a02, 0x0a02) AM_WRITE(snd_a02_w)
diff --git a/src/mame/drivers/8080bw.c b/src/mame/drivers/8080bw.c
index a3b38a02120..333e96648fc 100644
--- a/src/mame/drivers/8080bw.c
+++ b/src/mame/drivers/8080bw.c
@@ -342,7 +342,7 @@ INPUT_PORTS_END
/* */
/*******************************************************/
-static ADDRESS_MAP_START( invadpt2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( invadpt2_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_shift_count_w)
@@ -408,7 +408,7 @@ MACHINE_CONFIG_END
/* */
/*******************************************************/
-static ADDRESS_MAP_START( spcewars_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( spcewars_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_shift_count_w)
@@ -463,7 +463,7 @@ MACHINE_CONFIG_END
/* */
/*******************************************************/
-static ADDRESS_MAP_START( astropal_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( astropal_io_map, AS_IO, 8, _8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
@@ -526,7 +526,7 @@ MACHINE_CONFIG_END
/* */
/*******************************************************/
-static ADDRESS_MAP_START( cosmo_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cosmo_map, AS_PROGRAM, 8, _8080bw_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE_SIZE_MEMBER(_8080bw_state, m_main_ram, m_main_ram_size)
AM_RANGE(0x4000, 0x57ff) AM_ROM
@@ -534,7 +534,7 @@ static ADDRESS_MAP_START( cosmo_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* at least one of these MWA8_NOPs must be sound related */
-static ADDRESS_MAP_START( cosmo_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( cosmo_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITENOP
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_WRITENOP
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_WRITENOP
@@ -634,7 +634,7 @@ INPUT_PORTS_END
/* */
/*******************************************************/
-static ADDRESS_MAP_START( invrvnge_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( invrvnge_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_shift_count_w)
@@ -767,7 +767,7 @@ INPUT_PORTS_END
/* */
/*******************************************************/
-static ADDRESS_MAP_START( lrescue_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( lrescue_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_shift_count_w)
@@ -900,7 +900,7 @@ INPUT_PORTS_END
/* */
/*******************************************************/
-static ADDRESS_MAP_START( rollingc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rollingc_map, AS_PROGRAM, 8, _8080bw_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE_SIZE_MEMBER(_8080bw_state, m_main_ram, m_main_ram_size)
AM_RANGE(0x4000, 0x5fff) AM_ROM
@@ -909,7 +909,7 @@ static ADDRESS_MAP_START( rollingc_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rollingc_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( rollingc_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(rollingc_sh_port_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_shift_count_w)
@@ -964,7 +964,7 @@ MACHINE_CONFIG_END
/* */
/*******************************************************/
-static ADDRESS_MAP_START( schaser_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( schaser_map, AS_PROGRAM, 8, _8080bw_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE_SIZE_MEMBER(_8080bw_state, m_main_ram, m_main_ram_size)
AM_RANGE(0x4000, 0x5fff) AM_ROM
@@ -972,7 +972,7 @@ static ADDRESS_MAP_START( schaser_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( schaser_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( schaser_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_shift_count_w)
@@ -1089,7 +1089,7 @@ MACHINE_CONFIG_END
/* */
/*******************************************************/
-static ADDRESS_MAP_START( schasercv_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( schasercv_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_shift_count_w)
@@ -1158,7 +1158,7 @@ static CUSTOM_INPUT( sflush_80_r )
return (field.machine().primary_screen->vpos() & 0x80) ? 1 : 0;
}
-static ADDRESS_MAP_START( sflush_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sflush_map, AS_PROGRAM, 8, _8080bw_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x4000, 0x5fff) AM_RAM AM_BASE_SIZE_MEMBER(_8080bw_state, m_main_ram, m_main_ram_size)
AM_RANGE(0x8008, 0x8008) AM_READ_PORT("PADDLE")
@@ -1228,7 +1228,7 @@ MACHINE_CONFIG_END
/* */
/*******************************************************/
-static ADDRESS_MAP_START( lupin3_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( lupin3_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_shift_count_w)
@@ -1385,7 +1385,7 @@ static MACHINE_START( polaris )
// you will get a nice sound that accurately follows the plane.
// It sounds better then the actual circuit used.
// Probably an unfinished feature.
-static ADDRESS_MAP_START( polaris_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( polaris_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_DEVWRITE("mb14241", mb14241_shift_count_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("discrete", polaris_sh_port_1_w)
@@ -1555,7 +1555,7 @@ INPUT_PORTS_END
/* */
/*******************************************************/
-static ADDRESS_MAP_START( ballbomb_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( ballbomb_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_shift_count_w)
@@ -1602,13 +1602,13 @@ MACHINE_CONFIG_END
/* */
/*******************************************************/
-static ADDRESS_MAP_START( yosakdon_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( yosakdon_map, AS_PROGRAM, 8, _8080bw_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE_SIZE_MEMBER(_8080bw_state, m_main_ram, m_main_ram_size)
AM_RANGE(0x4000, 0x43ff) AM_WRITEONLY /* what's this? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( yosakdon_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( yosakdon_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN1")
AM_RANGE(0x03, 0x03) AM_WRITE(yosakdon_sh_port_1_w)
@@ -1735,7 +1735,7 @@ static READ8_HANDLER(indianbt_r)
return space->machine().rand();
}
-static ADDRESS_MAP_START( indianbt_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( indianbt_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x00, 0x00) AM_READ(indianbt_r)
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_shift_count_w)
@@ -1781,7 +1781,7 @@ static WRITE8_HANDLER( steelwkr_sh_port_3_w )
coin_lockout_global_w(space->machine(), !(~data & 0x03)); /* possibly */
}
-static ADDRESS_MAP_START( steelwkr_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( steelwkr_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_shift_count_w)
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_shift_result_r) AM_WRITE(invadpt2_sh_port_1_w)
@@ -1941,14 +1941,14 @@ static INPUT_PORTS_START( skylove )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1)
INPUT_PORTS_END
-static ADDRESS_MAP_START( shuttlei_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( shuttlei_map, AS_PROGRAM, 8, _8080bw_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE_SIZE_MEMBER(_8080bw_state, m_main_ram, m_main_ram_size)
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_SHARE("share1") // shuttlei
AM_RANGE(0x6000, 0x63ff) AM_RAM AM_SHARE("share1") // skylove (is it mirrored, or different PCB hookup?)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shuttlei_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( shuttlei_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0xfc, 0xfc) AM_WRITENOP /* game writes 0xAA every so often (perhaps when base hit?) */
AM_RANGE(0xfd, 0xfd) AM_WRITE(shuttlei_sh_port_1_w)
AM_RANGE(0xfe, 0xfe) AM_READ_PORT("DSW") AM_WRITE(shuttlei_sh_port_2_w)
@@ -2014,13 +2014,13 @@ static MACHINE_RESET( darthvdr )
}
-static ADDRESS_MAP_START( darthvdr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( darthvdr_map, AS_PROGRAM, 8, _8080bw_state )
AM_RANGE(0x0000, 0x17ff) AM_ROM
AM_RANGE(0x1800, 0x1fff) AM_RAM
AM_RANGE(0x4000, 0x5fff) AM_RAM AM_BASE_SIZE_MEMBER(_8080bw_state, m_main_ram, m_main_ram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( darthvdr_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( darthvdr_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
AM_RANGE(0x01, 0x01) AM_READ_PORT("P2")
AM_RANGE(0x00, 0x0f) AM_WRITENOP
@@ -2089,7 +2089,7 @@ MACHINE_CONFIG_END
*
*************************************/
-static ADDRESS_MAP_START( vortex_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( vortex_io_map, AS_IO, 8, _8080bw_state )
// I/O map is same as invaders but with A9 (used as A1 for I/O) inverted
ADDRESS_MAP_GLOBAL_MASK(0xFF)
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN0")
@@ -2335,7 +2335,7 @@ BOARD 2:
// the invaders shifter stuff doesn't seem correct for this, if i hook up the count_w the gfx are corrupt, otherwise they're incorrectly offset?
// might need custom implementation
-static ADDRESS_MAP_START( modelr_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( modelr_io_map, AS_IO, 8, _8080bw_state )
// AM_RANGE(0x00, 0x00) AM_DEVWRITE("mb14241", mb14241_shift_count_w)
// AM_RANGE(0x01, 0x01) AM_DEVREAD("mb14241", mb14241_shift_result_r)
AM_RANGE(0x02, 0x02) AM_DEVWRITE("mb14241", mb14241_shift_data_w)
diff --git a/src/mame/drivers/88games.c b/src/mame/drivers/88games.c
index ed8adc2b717..cd576256c2d 100644
--- a/src/mame/drivers/88games.c
+++ b/src/mame/drivers/88games.c
@@ -134,7 +134,7 @@ static WRITE8_HANDLER( k052109_051960_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, _88games_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_BASE_MEMBER(_88games_state, m_banked_rom) /* banked ROM + palette RAM */
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE_MEMBER(_88games_state, m_paletteram_1000) /* banked ROM + palette RAM */
AM_RANGE(0x2000, 0x2fff) AM_RAM
@@ -154,7 +154,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, _88games_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_WRITE(speech_msg_w)
diff --git a/src/mame/drivers/ace.c b/src/mame/drivers/ace.c
index 183692af0d4..1cb6d2f8f23 100644
--- a/src/mame/drivers/ace.c
+++ b/src/mame/drivers/ace.c
@@ -162,7 +162,7 @@ static READ8_HANDLER( unk_r )
/* 3x3106 - SRAM 256x1 */
/* 1x3622 - ROM 512x4 - doesn't seem to be used ????????????*/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, aceal_state )
AM_RANGE(0x0000, 0x09ff) AM_ROM
diff --git a/src/mame/drivers/acefruit.c b/src/mame/drivers/acefruit.c
index 24cadd96fc3..0b7c06297b4 100644
--- a/src/mame/drivers/acefruit.c
+++ b/src/mame/drivers/acefruit.c
@@ -274,7 +274,7 @@ static PALETTE_INIT( acefruit )
palette_set_color( machine, 15, MAKE_RGB(0xff, 0x00, 0x00) );
}
-static ADDRESS_MAP_START( acefruit_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( acefruit_map, AS_PROGRAM, 8, acefruit_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x20ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE_MEMBER(acefruit_state, m_videoram)
@@ -296,7 +296,7 @@ static ADDRESS_MAP_START( acefruit_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( acefruit_io, AS_IO, 8 )
+static ADDRESS_MAP_START( acefruit_io, AS_IO, 8, acefruit_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_NOP /* ? */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/acommand.c b/src/mame/drivers/acommand.c
index 57715ee1e3e..74392b16fb2 100644
--- a/src/mame/drivers/acommand.c
+++ b/src/mame/drivers/acommand.c
@@ -450,7 +450,7 @@ static WRITE16_HANDLER(ac_unk2_w)
popmessage("UNK-2 enabled %04x",data);
}
-static ADDRESS_MAP_START( acommand_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( acommand_map, AS_PROGRAM, 16, acommand_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x082000, 0x082005) AM_WRITE(ac_bgscroll_w)
AM_RANGE(0x082100, 0x082105) AM_WRITE(ac_txscroll_w)
diff --git a/src/mame/drivers/actfancr.c b/src/mame/drivers/actfancr.c
index ffc53e99952..964399f624d 100644
--- a/src/mame/drivers/actfancr.c
+++ b/src/mame/drivers/actfancr.c
@@ -76,7 +76,7 @@ static WRITE8_HANDLER( actfancr_buffer_spriteram_w)
}
}
-static ADDRESS_MAP_START( actfan_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( actfan_map, AS_PROGRAM, 8, actfancr_state )
AM_RANGE(0x000000, 0x02ffff) AM_ROM
AM_RANGE(0x060000, 0x060007) AM_DEVWRITE("tilegen1", deco_bac06_pf_control0_8bit_w)
AM_RANGE(0x060010, 0x06001f) AM_DEVWRITE("tilegen1", deco_bac06_pf_control1_8bit_swap_w)
@@ -96,7 +96,7 @@ static ADDRESS_MAP_START( actfan_map, AS_PROGRAM, 8 )
AM_RANGE(0x1f0000, 0x1f3fff) AM_RAM AM_BASE_MEMBER(actfancr_state, m_main_ram) /* Main ram */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( triothep_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( triothep_map, AS_PROGRAM, 8, actfancr_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x040007) AM_DEVWRITE("tilegen2", deco_bac06_pf_control0_8bit_w)
AM_RANGE(0x040010, 0x04001f) AM_DEVWRITE("tilegen2", deco_bac06_pf_control1_8bit_swap_w)
@@ -118,7 +118,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( dec0_s_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dec0_s_map, AS_PROGRAM, 8, actfancr_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym2", ym3812_w)
diff --git a/src/mame/drivers/adp.c b/src/mame/drivers/adp.c
index ad73d7a8db9..36d65361d03 100644
--- a/src/mame/drivers/adp.c
+++ b/src/mame/drivers/adp.c
@@ -443,7 +443,7 @@ static READ8_DEVICE_HANDLER(t2_r)
return res;
}
-static ADDRESS_MAP_START( skattv_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( skattv_mem, AS_PROGRAM, 16, adp_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE_MODERN("h63484", h63484_device, status_r, address_w)
AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE_MODERN("h63484", h63484_device, data_r, data_w)
@@ -453,7 +453,7 @@ static ADDRESS_MAP_START( skattv_mem, AS_PROGRAM, 16 )
AM_RANGE(0xffc000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( quickjac_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( quickjac_mem, AS_PROGRAM, 16, adp_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
// AM_RANGE(0x400000, 0x40001f) ?
AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE_MODERN("h63484", h63484_device, status_r, address_w) // bad
@@ -463,7 +463,7 @@ static ADDRESS_MAP_START( quickjac_mem, AS_PROGRAM, 16 )
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( backgamn_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( backgamn_mem, AS_PROGRAM, 16, adp_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x100000, 0x10003f) AM_RAM
AM_RANGE(0x200000, 0x20003f) AM_RAM
@@ -508,7 +508,7 @@ static WRITE8_HANDLER( ramdac_io_w )
}
}
-static ADDRESS_MAP_START( funland_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( funland_mem, AS_PROGRAM, 16, adp_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE_MODERN("h63484", h63484_device, status_r, address_w)
AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE_MODERN("h63484", h63484_device, data_r, data_w)
@@ -519,7 +519,7 @@ static ADDRESS_MAP_START( funland_mem, AS_PROGRAM, 16 )
AM_RANGE(0xfc0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fstation_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( fstation_mem, AS_PROGRAM, 16, adp_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
//400000-40001f?
AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE_MODERN("h63484", h63484_device, status_r, address_w)
@@ -641,12 +641,12 @@ static READ8_HANDLER( h63484_rom_r )
return rom[offset];
}
-static ADDRESS_MAP_START( adp_h63484_map, AS_0, 8 )
+static ADDRESS_MAP_START( adp_h63484_map, AS_0, 8, adp_state )
AM_RANGE(0x00000, 0x7ffff) AM_DEVREADWRITE_MODERN("h63484",h63484_device, vram_r,vram_w)
AM_RANGE(0x80000, 0xbffff) AM_READ(h63484_rom_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fashiong_h63484_map, AS_0, 8 )
+static ADDRESS_MAP_START( fashiong_h63484_map, AS_0, 8, adp_state )
AM_RANGE(0x00000, 0x7ffff) AM_DEVREADWRITE_MODERN("h63484",h63484_device, vram_r,vram_w)
// AM_RANGE(0x40000, 0x7ffff) AM_ROM AM_REGION("gfx1", 0)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/aeroboto.c b/src/mame/drivers/aeroboto.c
index 01af7ae0986..3ca129cbe14 100644
--- a/src/mame/drivers/aeroboto.c
+++ b/src/mame/drivers/aeroboto.c
@@ -73,7 +73,7 @@ static WRITE8_HANDLER ( aeroboto_1a2_w )
state->m_disable_irq = 1;
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, aeroboto_state )
AM_RANGE(0x01a2, 0x01a2) AM_WRITE(aeroboto_1a2_w) // affects IRQ line (more protection?)
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_MEMBER(aeroboto_state, m_mainram) // main RAM
AM_RANGE(0x0800, 0x08ff) AM_RAM // tile color buffer; copied to 0x2000
@@ -96,7 +96,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM // main ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, aeroboto_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x9000, 0x9001) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x9002, 0x9002) AM_DEVREAD("ay1", ay8910_r)
diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c
index 7f1d4613bfd..fb4ae4db60b 100644
--- a/src/mame/drivers/aerofgt.c
+++ b/src/mame/drivers/aerofgt.c
@@ -140,7 +140,7 @@ static WRITE8_HANDLER( aerfboot_okim6295_banking_w )
memcpy(&oki[0x20000], &oki[((data & 0x3) * 0x20000) + 0x40000], 0x20000);
}
-static ADDRESS_MAP_START( pspikes_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pspikes_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* work RAM */
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_BASE_SIZE_MEMBER(aerofgt_state, m_spriteram1, m_spriteram1_size)
@@ -154,7 +154,7 @@ static ADDRESS_MAP_START( pspikes_map, AS_PROGRAM, 16 )
AM_RANGE(0xfff006, 0xfff007) AM_READWRITE(pending_command_r, sound_command_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pspikesb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pspikesb_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* work RAM */
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_BASE_SIZE_MEMBER(aerofgt_state, m_spriteram1, m_spriteram1_size)
@@ -171,7 +171,7 @@ static ADDRESS_MAP_START( pspikesb_map, AS_PROGRAM, 16 )
AM_RANGE(0xfff008, 0xfff009) AM_DEVWRITE("oki", pspikesb_oki_banking_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spikes91_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( spikes91_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* work RAM */
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_BASE_SIZE_MEMBER(aerofgt_state, m_spriteram1, m_spriteram1_size)
@@ -191,7 +191,7 @@ static ADDRESS_MAP_START( spikes91_map, AS_PROGRAM, 16 )
AM_RANGE(0xfff008, 0xfff009) AM_WRITE(spikes91_lookup_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pspikesc_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pspikesc_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* work RAM */
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_BASE_SIZE_MEMBER(aerofgt_state, m_spriteram1, m_spriteram1_size)
@@ -206,7 +206,7 @@ static ADDRESS_MAP_START( pspikesc_map, AS_PROGRAM, 16 )
AM_RANGE(0xfff006, 0xfff007) AM_DEVREADWRITE8_MODERN("oki", okim6295_device, read, write, 0x00ff)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( karatblz_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( karatblz_map, AS_PROGRAM, 16, aerofgt_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x081fff) AM_RAM_WRITE(aerofgt_bg1videoram_w) AM_BASE_MEMBER(aerofgt_state, m_bg1videoram)
@@ -227,7 +227,7 @@ static ADDRESS_MAP_START( karatblz_map, AS_PROGRAM, 16 )
AM_RANGE(0x0ff00e, 0x0ff00f) AM_WRITE(aerofgt_bg2scrolly_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spinlbrk_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( spinlbrk_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(aerofgt_bg1videoram_w) AM_BASE_MEMBER(aerofgt_state, m_bg1videoram)
AM_RANGE(0x082000, 0x082fff) AM_RAM_WRITE(aerofgt_bg2videoram_w) AM_BASE_MEMBER(aerofgt_state, m_bg2videoram)
@@ -241,7 +241,7 @@ static ADDRESS_MAP_START( spinlbrk_map, AS_PROGRAM, 16 )
AM_RANGE(0xfff006, 0xfff007) AM_WRITE(sound_command_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( turbofrc_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( turbofrc_map, AS_PROGRAM, 16, aerofgt_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x0c0000, 0x0cffff) AM_RAM /* work RAM */
@@ -263,7 +263,7 @@ static ADDRESS_MAP_START( turbofrc_map, AS_PROGRAM, 16 )
AM_RANGE(0x0ff00e, 0x0ff00f) AM_WRITE(turbofrc_sound_command_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aerofgtb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( aerofgtb_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x0c0000, 0x0cffff) AM_RAM /* work RAM */
AM_RANGE(0x0d0000, 0x0d1fff) AM_RAM_WRITE(aerofgt_bg1videoram_w) AM_BASE_MEMBER(aerofgt_state, m_bg1videoram)
@@ -283,7 +283,7 @@ static ADDRESS_MAP_START( aerofgtb_map, AS_PROGRAM, 16 )
AM_RANGE(0x0ff000, 0x0fffff) AM_RAM AM_BASE_MEMBER(aerofgt_state, m_rasterram) /* used only for the scroll registers */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aerofgt_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( aerofgt_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x1b0000, 0x1b07ff) AM_RAM AM_BASE_MEMBER(aerofgt_state, m_rasterram) /* used only for the scroll registers */
@@ -308,7 +308,7 @@ static ADDRESS_MAP_START( aerofgt_map, AS_PROGRAM, 16 )
AM_RANGE(0xffffc0, 0xffffc1) AM_WRITE(sound_command_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aerfboot_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( aerfboot_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x0c0000, 0x0cffff) AM_RAM /* work RAM */
AM_RANGE(0x0d0000, 0x0d1fff) AM_RAM_WRITE(aerofgt_bg1videoram_w) AM_BASE_MEMBER(aerofgt_state, m_bg1videoram)
@@ -337,7 +337,7 @@ static ADDRESS_MAP_START( aerfboot_map, AS_PROGRAM, 16 )
AM_RANGE(0x10c000, 0x117fff) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aerfboo2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( aerfboo2_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x0c0000, 0x0cffff) AM_RAM /* work RAM */
AM_RANGE(0x0d0000, 0x0d1fff) AM_RAM_WRITE(aerofgt_bg1videoram_w) AM_BASE_MEMBER(aerofgt_state, m_bg1videoram)
@@ -365,7 +365,7 @@ static ADDRESS_MAP_START( aerfboo2_map, AS_PROGRAM, 16 )
AM_RANGE(0x0ff000, 0x0fffff) AM_RAM AM_BASE_MEMBER(aerofgt_state, m_rasterram) /* used only for the scroll registers */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wbbc97_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( wbbc97_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM
AM_RANGE(0x500000, 0x50ffff) AM_RAM /* work RAM */
AM_RANGE(0x600000, 0x605fff) AM_RAM AM_BASE_SIZE_MEMBER(aerofgt_state, m_spriteram1, m_spriteram1_size)
@@ -381,20 +381,20 @@ static ADDRESS_MAP_START( wbbc97_map, AS_PROGRAM, 16 )
AM_RANGE(0xfff00e, 0xfff00f) AM_WRITE(wbbc97_bitmap_enable_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, aerofgt_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( turbofrc_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( turbofrc_sound_portmap, AS_IO, 8, aerofgt_state )
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, 0x1b) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aerofgt_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( aerofgt_sound_portmap, AS_IO, 8, aerofgt_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
AM_RANGE(0x04, 0x04) AM_WRITE(aerofgt_sh_bankswitch_w)
@@ -402,7 +402,7 @@ static ADDRESS_MAP_START( aerofgt_sound_portmap, AS_IO, 8 )
AM_RANGE(0x0c, 0x0c) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aerfboot_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( aerfboot_sound_map, AS_PROGRAM, 8, aerofgt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_WRITE(aerfboot_okim6295_banking_w)
@@ -410,7 +410,7 @@ static ADDRESS_MAP_START( aerfboot_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wbbc97_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wbbc97_sound_map, AS_PROGRAM, 8, aerofgt_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
diff --git a/src/mame/drivers/airbustr.c b/src/mame/drivers/airbustr.c
index 16afb9ec071..e154daa2a05 100644
--- a/src/mame/drivers/airbustr.c
+++ b/src/mame/drivers/airbustr.c
@@ -349,7 +349,7 @@ static WRITE8_HANDLER( airbustr_coin_counter_w )
}
/* Memory Maps */
-static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, airbustr_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_DEVREADWRITE("pandora", pandora_spriteram_r, pandora_spriteram_w)
@@ -358,14 +358,14 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( master_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( master_io_map, AS_IO, 8, airbustr_state )
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)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8, airbustr_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(airbustr_videoram2_w) AM_BASE_MEMBER(airbustr_state, m_videoram2)
@@ -378,7 +378,7 @@ static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( slave_io_map, AS_IO, 8, airbustr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(slave_bankswitch_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(soundcommand2_r, soundcommand_w)
@@ -391,13 +391,13 @@ static ADDRESS_MAP_START( slave_io_map, AS_IO, 8 )
AM_RANGE(0x38, 0x38) AM_WRITENOP // irq ack / irq mask
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, airbustr_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank3")
AM_RANGE(0xc000, 0xdfff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, airbustr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(sound_bankswitch_w)
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
diff --git a/src/mame/drivers/ajax.c b/src/mame/drivers/ajax.c
index 62216c4ab83..635eb53f2d0 100644
--- a/src/mame/drivers/ajax.c
+++ b/src/mame/drivers/ajax.c
@@ -25,7 +25,7 @@ static WRITE8_HANDLER( sound_bank_w );
/****************************************************************************/
-static ADDRESS_MAP_START( ajax_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ajax_main_map, AS_PROGRAM, 8, ajax_state )
AM_RANGE(0x0000, 0x01c0) AM_READWRITE(ajax_ls138_f10_r, ajax_ls138_f10_w) /* bankswitch + sound command + FIRQ command */
AM_RANGE(0x0800, 0x0807) AM_DEVREADWRITE("k051960", k051937_r, k051937_w) /* sprite control registers */
AM_RANGE(0x0c00, 0x0fff) AM_DEVREADWRITE("k051960", k051960_r, k051960_w) /* sprite RAM 2128SL at J7 */
@@ -36,7 +36,7 @@ static ADDRESS_MAP_START( ajax_main_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM N11 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ajax_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ajax_sub_map, AS_PROGRAM, 8, ajax_state )
AM_RANGE(0x0000, 0x07ff) AM_DEVREADWRITE("k051316", k051316_r, k051316_w) /* 051316 zoom/rotation layer */
AM_RANGE(0x0800, 0x080f) AM_DEVWRITE("k051316", k051316_ctrl_w) /* 051316 control registers */
AM_RANGE(0x1000, 0x17ff) AM_DEVREAD("k051316", k051316_rom_r) /* 051316 (ROM test) */
@@ -47,7 +47,7 @@ static ADDRESS_MAP_START( ajax_sub_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xffff) AM_ROM /* ROM I16 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ajax_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ajax_sound_map, AS_PROGRAM, 8, ajax_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM F6 */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM 2128SL at D16 */
AM_RANGE(0x9000, 0x9000) AM_WRITE(sound_bank_w) /* 007232 bankswitch */
diff --git a/src/mame/drivers/albazc.c b/src/mame/drivers/albazc.c
index 940c3ca904e..3cf875d9ed3 100644
--- a/src/mame/drivers/albazc.c
+++ b/src/mame/drivers/albazc.c
@@ -149,7 +149,7 @@ static WRITE8_HANDLER( albazc_vregs_w )
/* main cpu */
-static ADDRESS_MAP_START( hanaroku_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hanaroku_map, AS_PROGRAM, 8, albazc_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_MEMBER(albazc_state, m_spriteram1)
AM_RANGE(0x9000, 0x97ff) AM_RAM AM_BASE_MEMBER(albazc_state, m_spriteram2)
diff --git a/src/mame/drivers/albazg.c b/src/mame/drivers/albazg.c
index 7edeaa144c1..5ec1cf15eaa 100644
--- a/src/mame/drivers/albazg.c
+++ b/src/mame/drivers/albazg.c
@@ -227,7 +227,7 @@ static I8255A_INTERFACE( ppi8255_intf )
/***************************************************************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, albazg_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa7fc, 0xa7fc) AM_WRITE(prot_lock_w)
@@ -240,7 +240,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( port_map, AS_IO, 8, albazg_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
AM_RANGE(0x01, 0x01) AM_DEVWRITE_MODERN("crtc", mc6845_device, register_w)
diff --git a/src/mame/drivers/aleck64.c b/src/mame/drivers/aleck64.c
index 732c86faacb..76decfa3d83 100644
--- a/src/mame/drivers/aleck64.c
+++ b/src/mame/drivers/aleck64.c
@@ -275,7 +275,7 @@ static READ32_HANDLER( aleck_dips_r )
4MB @ 0xd0800000 - 0xd0bfffff doncdoon, hipai, kurufev, twrshaft, srmvs : unused
*/
-static ADDRESS_MAP_START( n64_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( n64_map, AS_PROGRAM, 32, n64_state )
AM_RANGE(0x00000000, 0x007fffff) AM_RAM /*AM_MIRROR(0xc0000000)*/ AM_BASE(&rdram) // RDRAM
AM_RANGE(0x03f00000, 0x03f00027) AM_DEVREADWRITE_MODERN("rcp", n64_periphs, rdram_reg_r, rdram_reg_w)
@@ -304,7 +304,7 @@ static ADDRESS_MAP_START( n64_map, AS_PROGRAM, 32 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rsp_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( rsp_map, AS_PROGRAM, 32, n64_state )
AM_RANGE(0x00000000, 0x00000fff) AM_RAM AM_SHARE("dmem")
AM_RANGE(0x00001000, 0x00001fff) AM_RAM AM_SHARE("imem")
AM_RANGE(0x04000000, 0x04000fff) AM_RAM AM_BASE(&rsp_dmem) AM_SHARE("dmem")
diff --git a/src/mame/drivers/alg.c b/src/mame/drivers/alg.c
index d54133bf06a..9c0774dc5f7 100644
--- a/src/mame/drivers/alg.c
+++ b/src/mame/drivers/alg.c
@@ -278,7 +278,7 @@ static WRITE8_DEVICE_HANDLER( alg_cia_1_porta_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map_r1, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map_r1, AS_PROGRAM, 16, alg_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_BASE_SIZE_MEMBER(alg_state, m_chip_ram, m_chip_ram_size)
AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w)
@@ -291,7 +291,7 @@ static ADDRESS_MAP_START( main_map_r1, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_map_r2, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map_r2, AS_PROGRAM, 16, alg_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_BASE_SIZE_MEMBER(alg_state, m_chip_ram, m_chip_ram_size)
AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w)
@@ -304,7 +304,7 @@ static ADDRESS_MAP_START( main_map_r2, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_map_picmatic, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map_picmatic, AS_PROGRAM, 16, alg_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_BASE_SIZE_MEMBER(alg_state, m_chip_ram, m_chip_ram_size)
AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w)
diff --git a/src/mame/drivers/aliens.c b/src/mame/drivers/aliens.c
index d5dd671c539..c68dedd9f41 100644
--- a/src/mame/drivers/aliens.c
+++ b/src/mame/drivers/aliens.c
@@ -122,7 +122,7 @@ static WRITE8_HANDLER( k052109_051960_w )
k051960_w(state->m_k051960, offset - 0x3c00, data);
}
-static ADDRESS_MAP_START( aliens_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( aliens_map, AS_PROGRAM, 8, aliens_state )
AM_RANGE(0x0000, 0x03ff) AM_READWRITE(bankedram_r, bankedram_w) AM_BASE_MEMBER(aliens_state, m_ram) /* palette + work RAM */
AM_RANGE(0x0400, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") /* banked ROM */
@@ -137,7 +137,7 @@ static ADDRESS_MAP_START( aliens_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM e24_j02.bin */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aliens_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( aliens_sound_map, AS_PROGRAM, 8, aliens_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM g04_b03.bin */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/alpha68k.c b/src/mame/drivers/alpha68k.c
index 03c49549793..303fe79ba74 100644
--- a/src/mame/drivers/alpha68k.c
+++ b/src/mame/drivers/alpha68k.c
@@ -665,7 +665,7 @@ static READ16_HANDLER( alpha_V_trigger_r )
/******************************************************************************/
-static ADDRESS_MAP_START( kyros_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( kyros_map, AS_PROGRAM, 16, alpha68k_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM // main program
AM_RANGE(0x020000, 0x020fff) AM_RAM AM_BASE_MEMBER(alpha68k_state, m_shared_ram) // work RAM
AM_RANGE(0x040000, 0x041fff) AM_RAM AM_BASE_MEMBER(alpha68k_state, m_spriteram) // sprite RAM
@@ -675,7 +675,7 @@ static ADDRESS_MAP_START( kyros_map, AS_PROGRAM, 16 )
AM_RANGE(0x0e0000, 0x0e0001) AM_READWRITE(kyros_dip_r, kyros_sound_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( alpha68k_I_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( alpha68k_I_map, AS_PROGRAM, 16, alpha68k_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // main program
AM_RANGE(0x080000, 0x083fff) AM_RAM // work RAM
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE_MEMBER(alpha68k_state, m_spriteram) // video RAM
@@ -686,7 +686,7 @@ static ADDRESS_MAP_START( alpha68k_I_map, AS_PROGRAM, 16 )
AM_RANGE(0x380000, 0x380001) AM_READ_PORT("IN2") AM_WRITE(paddlema_soundlatch_w) // LSB: sound latch write and RST38 trigger, joy3, joy4
ADDRESS_MAP_END
-static ADDRESS_MAP_START( alpha68k_II_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( alpha68k_II_map, AS_PROGRAM, 16, alpha68k_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x040fff) AM_RAM AM_BASE_MEMBER(alpha68k_state, m_shared_ram)
AM_RANGE(0x080000, 0x080001) AM_READ(control_1_r) /* Joysticks */
@@ -705,7 +705,7 @@ static ADDRESS_MAP_START( alpha68k_II_map, AS_PROGRAM, 16 )
AM_RANGE(0x800000, 0x83ffff) AM_ROMBANK("bank8")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( alpha68k_V_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( alpha68k_V_map, AS_PROGRAM, 16, alpha68k_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_RAM AM_BASE_MEMBER(alpha68k_state, m_shared_ram)
AM_RANGE(0x080000, 0x080001) AM_READWRITE(control_1_r, alpha68k_V_sound_w) /* Joysticks */
@@ -725,7 +725,7 @@ ADDRESS_MAP_END
static READ16_HANDLER(sound_cpu_r) { return 1; }
-static ADDRESS_MAP_START( tnextspc_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tnextspc_map, AS_PROGRAM, 16, alpha68k_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x070000, 0x073fff) AM_RAM
AM_RANGE(0x0a0000, 0x0a3fff) AM_RAM AM_BASE_MEMBER(alpha68k_state, m_spriteram)
@@ -750,13 +750,13 @@ static WRITE8_HANDLER( sound_bank_w )
memory_set_bank(space->machine(), "bank7", data);
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, alpha68k_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xc000, 0xffff) AM_ROMBANK("bank7")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kyros_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kyros_sound_map, AS_PROGRAM, 8, alpha68k_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
@@ -772,7 +772,7 @@ static ADDRESS_MAP_START( kyros_sound_map, AS_PROGRAM, 8 )
*/
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sstingry_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sstingry_sound_map, AS_PROGRAM, 8, alpha68k_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xc100, 0xc100) AM_READ(soundlatch_r)
@@ -781,12 +781,12 @@ static ADDRESS_MAP_START( sstingry_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xc106, 0xc10e) AM_WRITENOP // soundboard I/O's, ignored
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jongbou_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jongbou_sound_map, AS_PROGRAM, 8, alpha68k_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( alpha68k_I_s_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( alpha68k_I_s_map, AS_PROGRAM, 8, alpha68k_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xe000, 0xe000) AM_READWRITE(soundlatch_r, soundlatch_clear_w)
AM_RANGE(0xe800, 0xe800) AM_DEVREADWRITE("ymsnd", ym3812_status_port_r, ym3812_control_port_w)
@@ -796,13 +796,13 @@ static ADDRESS_MAP_START( alpha68k_I_s_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tnextspc_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tnextspc_sound_map, AS_PROGRAM, 8, alpha68k_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_READWRITE(soundlatch_r, soundlatch_clear_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, alpha68k_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(soundlatch_r, soundlatch_clear_w)
AM_RANGE(0x08, 0x08) AM_DEVWRITE("dac", dac_signed_w)
@@ -811,7 +811,7 @@ static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
AM_RANGE(0x0e, 0x0e) AM_WRITE(sound_bank_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kyros_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( kyros_sound_portmap, AS_IO, 8, alpha68k_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x11) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0x80, 0x80) AM_DEVWRITE("ym2", ym2203_write_port_w)
@@ -820,7 +820,7 @@ static ADDRESS_MAP_START( kyros_sound_portmap, AS_IO, 8 )
AM_RANGE(0x91, 0x91) AM_DEVWRITE("ym3", ym2203_control_port_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jongbou_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( jongbou_sound_portmap, AS_IO, 8, alpha68k_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVWRITE("aysnd", ay8910_address_w)
AM_RANGE(0x01, 0x01) AM_DEVREADWRITE("aysnd", ay8910_r, ay8910_data_w)
@@ -828,7 +828,7 @@ static ADDRESS_MAP_START( jongbou_sound_portmap, AS_IO, 8 )
AM_RANGE(0x06, 0x06) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tnextspc_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( tnextspc_sound_portmap, AS_IO, 8, alpha68k_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("ymsnd", ym3812_status_port_r, ym3812_control_port_w)
AM_RANGE(0x20, 0x20) AM_DEVWRITE("ymsnd", ym3812_write_port_w)
@@ -1964,7 +1964,7 @@ static MACHINE_START( alpha68k_II )
}
-static ADDRESS_MAP_START( i8748_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( i8748_portmap, AS_IO, 8, alpha68k_state )
// AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_READ(saiyugoub1_mcu_command_r)
// AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_DEVWRITE("adpcm", saiyugoub1_m5205_clk_w) /* Drives the clock on the m5205 at 1/8 of this frequency */
// AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(saiyugoub1_m5205_irq_r)
diff --git a/src/mame/drivers/amaticmg.c b/src/mame/drivers/amaticmg.c
index 13cdf71207a..e0388eded05 100644
--- a/src/mame/drivers/amaticmg.c
+++ b/src/mame/drivers/amaticmg.c
@@ -463,7 +463,7 @@ static PALETTE_INIT( amaticmg3 )
* Memory Map Information *
************************************/
-static ADDRESS_MAP_START( amaticmg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( amaticmg_map, AS_PROGRAM, 8, amaticmg_state )
AM_RANGE(0x00000, 0x3ffff) AM_ROM
// AM_RANGE(0x0000, 0x0000) AM_RAM // AM_SHARE("nvram")
// AM_RANGE(0x0000, 0x0000) AM_DEVWRITE("crtc", mc6845_address_w)
@@ -472,7 +472,7 @@ static ADDRESS_MAP_START( amaticmg_map, AS_PROGRAM, 8 )
// AM_RANGE(0x0000, 0x0000) AM_RAM_WRITE(amaticmg_colorram_w) AM_BASE(&amaticmg_colorram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( amaticmg_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( amaticmg_portmap, AS_IO, 8, amaticmg_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
// AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w)
diff --git a/src/mame/drivers/ambush.c b/src/mame/drivers/ambush.c
index cce890305e4..12b1475023a 100644
--- a/src/mame/drivers/ambush.c
+++ b/src/mame/drivers/ambush.c
@@ -63,7 +63,7 @@ static WRITE8_HANDLER( flip_screen_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, ambush_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ(watchdog_reset_r)
@@ -79,7 +79,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xcc07, 0xcc07) AM_WRITE(ambush_coin_counter_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, AS_IO, 8, ambush_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("ay1", ay8910_r, ay8910_address_w)
AM_RANGE(0x01, 0x01) AM_DEVWRITE("ay1", ay8910_data_w)
diff --git a/src/mame/drivers/ampoker2.c b/src/mame/drivers/ampoker2.c
index 4a9919102ed..642f2a4f556 100644
--- a/src/mame/drivers/ampoker2.c
+++ b/src/mame/drivers/ampoker2.c
@@ -602,13 +602,13 @@ static WRITE8_HANDLER( ampoker2_watchdog_reset_w )
* Memory map information *
*************************/
-static ADDRESS_MAP_START( ampoker2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ampoker2_map, AS_PROGRAM, 8, ampoker2_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(ampoker2_videoram_w) AM_BASE_MEMBER(ampoker2_state, m_videoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ampoker2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( ampoker2_io_map, AS_IO, 8, ampoker2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x0f) AM_WRITENOP /* inexistent in the real hardware */
AM_RANGE(0x10, 0x10) AM_READ_PORT("IN0")
diff --git a/src/mame/drivers/amspdwy.c b/src/mame/drivers/amspdwy.c
index 53b0b5076cf..4b73ee28f5e 100644
--- a/src/mame/drivers/amspdwy.c
+++ b/src/mame/drivers/amspdwy.c
@@ -74,7 +74,7 @@ static WRITE8_HANDLER( amspdwy_sound_w )
device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
-static ADDRESS_MAP_START( amspdwy_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( amspdwy_map, AS_PROGRAM, 8, amspdwy_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0x801f) AM_WRITE(amspdwy_paletteram_w) AM_BASE_GENERIC(paletteram)// Palette
AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM_WRITE(amspdwy_videoram_w) AM_BASE_MEMBER(amspdwy_state, m_videoram) // Layer, mirrored?
@@ -98,7 +98,7 @@ static READ8_HANDLER( amspdwy_port_r )
return tracks[offset];
}
-static ADDRESS_MAP_START( amspdwy_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( amspdwy_portmap, AS_IO, 8, amspdwy_state )
AM_RANGE(0x0000, 0x7fff) AM_READ(amspdwy_port_r)
ADDRESS_MAP_END
@@ -112,7 +112,7 @@ ADDRESS_MAP_END
***************************************************************************/
-static ADDRESS_MAP_START( amspdwy_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( amspdwy_sound_map, AS_PROGRAM, 8, amspdwy_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
// AM_RANGE(0x8000, 0x8000) AM_WRITENOP // ? Written with 0 at the start
AM_RANGE(0x9000, 0x9000) AM_READ(soundlatch_r) // From Main CPU
diff --git a/src/mame/drivers/angelkds.c b/src/mame/drivers/angelkds.c
index 835617c1770..76552717ffb 100644
--- a/src/mame/drivers/angelkds.c
+++ b/src/mame/drivers/angelkds.c
@@ -192,7 +192,7 @@ contain a level.
*/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, angelkds_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_RAM
@@ -210,7 +210,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xf005, 0xf005) AM_WRITE(angelkds_layer_ctrl_write)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, AS_IO, 8, angelkds_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP // 00 on start-up, not again
AM_RANGE(0x42, 0x42) AM_WRITE(angelkds_cpu_bank_write)
@@ -226,7 +226,7 @@ ADDRESS_MAP_END
/* sub cpu */
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, angelkds_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xaaa9, 0xaaa9) AM_READNOP
@@ -234,7 +234,7 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
AM_RANGE(0xaaac, 0xaaac) AM_READNOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sub_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sub_portmap, AS_IO, 8, angelkds_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
AM_RANGE(0x40, 0x41) AM_DEVREADWRITE("ym2", ym2203_r, ym2203_w)
diff --git a/src/mame/drivers/appoooh.c b/src/mame/drivers/appoooh.c
index 2b278cf0b9e..6a3a13d8cf3 100644
--- a/src/mame/drivers/appoooh.c
+++ b/src/mame/drivers/appoooh.c
@@ -213,7 +213,7 @@ static WRITE8_HANDLER( appoooh_adpcm_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, appoooh_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xdfff) AM_ROMBANK("bank1")
@@ -229,7 +229,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, AS_IO, 8, appoooh_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") AM_DEVWRITE("sn1", sn76496_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("P2") AM_DEVWRITE("sn2", sn76496_w)
diff --git a/src/mame/drivers/aquarium.c b/src/mame/drivers/aquarium.c
index 975d09b0153..59a8b4921e6 100644
--- a/src/mame/drivers/aquarium.c
+++ b/src/mame/drivers/aquarium.c
@@ -106,7 +106,7 @@ static WRITE8_HANDLER( aquarium_oki_w )
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, aquarium_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0xc00000, 0xc00fff) AM_RAM_WRITE(aquarium_mid_videoram_w) AM_BASE_MEMBER(aquarium_state, m_mid_videoram)
AM_RANGE(0xc01000, 0xc01fff) AM_RAM_WRITE(aquarium_bak_videoram_w) AM_BASE_MEMBER(aquarium_state, m_bak_videoram)
@@ -124,13 +124,13 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( snd_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( snd_map, AS_PROGRAM, 8, aquarium_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( snd_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( snd_portmap, AS_IO, 8, aquarium_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(aquarium_oki_r, aquarium_oki_w)
diff --git a/src/mame/drivers/arabian.c b/src/mame/drivers/arabian.c
index a2fc7cb4a0c..57fb6bcb204 100644
--- a/src/mame/drivers/arabian.c
+++ b/src/mame/drivers/arabian.c
@@ -182,7 +182,7 @@ static WRITE8_HANDLER( mcu_port_p_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, arabian_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_WRITE(arabian_videoram_w)
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x01ff) AM_READ_PORT("IN0")
@@ -199,7 +199,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( main_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( main_io_map, AS_IO, 8, arabian_state )
AM_RANGE(0xc800, 0xc800) AM_MIRROR(0x01ff) AM_DEVWRITE("aysnd", ay8910_address_w)
AM_RANGE(0xca00, 0xca00) AM_MIRROR(0x01ff) AM_DEVWRITE("aysnd", ay8910_data_w)
ADDRESS_MAP_END
@@ -212,7 +212,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, arabian_state )
AM_RANGE(MB88_PORTK, MB88_PORTK ) AM_READ(mcu_portk_r)
AM_RANGE(MB88_PORTO, MB88_PORTO ) AM_WRITE(mcu_port_o_w)
AM_RANGE(MB88_PORTP, MB88_PORTP ) AM_WRITE(mcu_port_p_w)
diff --git a/src/mame/drivers/arcadecl.c b/src/mame/drivers/arcadecl.c
index 67121e8845f..1d825506514 100644
--- a/src/mame/drivers/arcadecl.c
+++ b/src/mame/drivers/arcadecl.c
@@ -152,7 +152,7 @@ static WRITE16_HANDLER( latch_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, arcadecl_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_BASE_MEMBER(arcadecl_state, m_bitmap)
AM_RANGE(0x3c0000, 0x3c07ff) AM_RAM_WRITE(atarigen_expanded_666_paletteram_w) AM_BASE_GENERIC(paletteram)
diff --git a/src/mame/drivers/arcadia.c b/src/mame/drivers/arcadia.c
index 728f8270c38..9854a7ecb30 100644
--- a/src/mame/drivers/arcadia.c
+++ b/src/mame/drivers/arcadia.c
@@ -192,7 +192,7 @@ static void arcadia_reset_coins(running_machine &machine)
*
*************************************/
-static ADDRESS_MAP_START( amiga_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( amiga_map, AS_PROGRAM, 16, arcadia_amiga_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_BASE_SIZE_MEMBER(arcadia_amiga_state, m_chip_ram, m_chip_ram_size)
AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w)
diff --git a/src/mame/drivers/argus.c b/src/mame/drivers/argus.c
index 5cd7ba3a246..64621c83d00 100644
--- a/src/mame/drivers/argus.c
+++ b/src/mame/drivers/argus.c
@@ -190,7 +190,7 @@ static WRITE8_HANDLER( argus_bankselect_w )
***************************************************************************/
-static ADDRESS_MAP_START( argus_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( argus_map, AS_PROGRAM, 8, argus_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_RAMBANK("bank1")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("SYSTEM")
@@ -214,7 +214,7 @@ static ADDRESS_MAP_START( argus_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( valtric_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( valtric_map, AS_PROGRAM, 8, argus_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_RAMBANK("bank1")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("SYSTEM")
@@ -238,7 +238,7 @@ static ADDRESS_MAP_START( valtric_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( butasan_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( butasan_map, AS_PROGRAM, 8, argus_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_RAMBANK("bank1")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("SYSTEM")
@@ -265,26 +265,26 @@ static ADDRESS_MAP_START( butasan_map, AS_PROGRAM, 8 )
AM_RANGE(0xf680, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map_a, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map_a, AS_PROGRAM, 8, argus_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map_b, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map_b, AS_PROGRAM, 8, argus_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
#if 0
-static ADDRESS_MAP_START( sound_portmap_1, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap_1, AS_IO, 8, argus_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
ADDRESS_MAP_END
#endif
-static ADDRESS_MAP_START( sound_portmap_2, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap_2, AS_IO, 8, argus_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("ym2", ym2203_r, ym2203_w)
diff --git a/src/mame/drivers/aristmk4.c b/src/mame/drivers/aristmk4.c
index e11c87d56b6..f120197655e 100644
--- a/src/mame/drivers/aristmk4.c
+++ b/src/mame/drivers/aristmk4.c
@@ -870,7 +870,7 @@ ADDRESS MAP - SLOT GAMES
******************************************************************************/
-static ADDRESS_MAP_START( aristmk4_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( aristmk4_map, AS_PROGRAM, 8, aristmk4_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_MEMBER(aristmk4_state, m_mkiv_vram) // video ram - chips U49 / U50
AM_RANGE(0x0800, 0x17ff) AM_RAM
AM_RANGE(0x1800, 0x1800) AM_DEVREADWRITE_MODERN("crtc", mc6845_device, status_r, address_w)
@@ -914,7 +914,7 @@ The graphics rom is mapped from 0x4000 - 0x4fff
The U87 personality rom is not required, therefore game rom code mapping is from 0x8000-0xffff
*/
-static ADDRESS_MAP_START( aristmk4_poker_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( aristmk4_poker_map, AS_PROGRAM, 8, aristmk4_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_MEMBER(aristmk4_state, m_mkiv_vram) // video ram - chips U49 / U50
AM_RANGE(0x0800, 0x17ff) AM_RAM
AM_RANGE(0x1800, 0x1800) AM_DEVREADWRITE_MODERN("crtc", mc6845_device, status_r, address_w)
diff --git a/src/mame/drivers/aristmk5.c b/src/mame/drivers/aristmk5.c
index 26ba7c710cc..1eb9afc0bd6 100644
--- a/src/mame/drivers/aristmk5.c
+++ b/src/mame/drivers/aristmk5.c
@@ -291,7 +291,7 @@ static WRITE32_HANDLER( sram_banksel_w )
}
/* U.S games have no dram emulator enabled */
-static ADDRESS_MAP_START( aristmk5_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( aristmk5_map, AS_PROGRAM, 32, aristmk5_state )
AM_RANGE(0x00000000, 0x01ffffff) AM_READWRITE(archimedes_memc_logical_r, archimedes_memc_logical_w)
AM_RANGE(0x02000000, 0x02ffffff) AM_RAM AM_BASE(&archimedes_memc_physmem) /* physical RAM - 16 MB for now, should be 512k for the A310 */
@@ -317,7 +317,7 @@ static ADDRESS_MAP_START( aristmk5_map, AS_PROGRAM, 32 )
ADDRESS_MAP_END
/* with dram emulator enabled */
-static ADDRESS_MAP_START( aristmk5_drame_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( aristmk5_drame_map, AS_PROGRAM, 32, aristmk5_state )
AM_RANGE(0x00000000, 0x01ffffff) AM_READWRITE(aristmk5_drame_memc_logical_r, archimedes_memc_logical_w)
AM_RANGE(0x02000000, 0x02ffffff) AM_RAM AM_BASE(&archimedes_memc_physmem) /* physical RAM - 16 MB for now, should be 512k for the A310 */
diff --git a/src/mame/drivers/aristmk6.c b/src/mame/drivers/aristmk6.c
index f3b72584b74..0ecd2a94150 100644
--- a/src/mame/drivers/aristmk6.c
+++ b/src/mame/drivers/aristmk6.c
@@ -114,13 +114,13 @@ static READ64_HANDLER( test_r )
return -1;
}
-static ADDRESS_MAP_START( aristmk6_map, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( aristmk6_map, AS_PROGRAM, 64, aristmk6_state )
AM_RANGE(0x00000000, 0x003fffff) AM_ROM AM_REGION("maincpu", 0)
AM_RANGE(0x0c000000, 0x0cffffff) AM_RAM // work ram
AM_RANGE(0x13800000, 0x13800007) AM_READ(test_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aristmk6_port, AS_IO, 64 )
+static ADDRESS_MAP_START( aristmk6_port, AS_IO, 64, aristmk6_state )
ADDRESS_MAP_END
diff --git a/src/mame/drivers/arkanoid.c b/src/mame/drivers/arkanoid.c
index bca1ceb08bf..b3ad78055b5 100644
--- a/src/mame/drivers/arkanoid.c
+++ b/src/mame/drivers/arkanoid.c
@@ -554,7 +554,7 @@ DIP locations verified for:
/* Memory Maps */
-static ADDRESS_MAP_START( arkanoid_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( arkanoid_map, AS_PROGRAM, 8, arkanoid_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd001) AM_DEVWRITE("aysnd", ay8910_address_data_w)
@@ -569,7 +569,7 @@ static ADDRESS_MAP_START( arkanoid_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_READNOP /* fixes instant death in final level */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bootleg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bootleg_map, AS_PROGRAM, 8, arkanoid_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd000) AM_DEVWRITE("aysnd", ay8910_address_w)
@@ -584,7 +584,7 @@ static ADDRESS_MAP_START( bootleg_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_READNOP /* fixes instant death in final level */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hexa_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hexa_map, AS_PROGRAM, 8, arkanoid_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc7ff) AM_RAM
@@ -595,7 +595,7 @@ static ADDRESS_MAP_START( hexa_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(arkanoid_videoram_w) AM_BASE_SIZE_MEMBER(arkanoid_state, m_videoram, m_videoram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( brixian_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( brixian_map, AS_PROGRAM, 8, arkanoid_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd000) AM_DEVWRITE("aysnd", ay8910_address_w)
@@ -614,7 +614,7 @@ static ADDRESS_MAP_START( brixian_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, arkanoid_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(arkanoid_68705_port_a_r, arkanoid_68705_port_a_w)
AM_RANGE(0x0001, 0x0001) AM_READ_PORT("MUX")
diff --git a/src/mame/drivers/armedf.c b/src/mame/drivers/armedf.c
index e13caa663d3..a2746632b81 100644
--- a/src/mame/drivers/armedf.c
+++ b/src/mame/drivers/armedf.c
@@ -391,7 +391,7 @@ static WRITE16_HANDLER( irq_lv2_ack_w )
*
*************************************/
-static ADDRESS_MAP_START( terraf_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( terraf_map, AS_PROGRAM, 16, armedf_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x0603ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x060400, 0x063fff) AM_RAM
@@ -413,7 +413,7 @@ static ADDRESS_MAP_START( terraf_map, AS_PROGRAM, 16 )
AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(irq_lv1_ack_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kozure_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( kozure_map, AS_PROGRAM, 16, armedf_state )
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x061000, 0x063fff) AM_RAM
// AM_RANGE(0x07c000, 0x07c001) AM_WRITE(kozure_io_w)
@@ -422,7 +422,7 @@ static ADDRESS_MAP_START( kozure_map, AS_PROGRAM, 16 )
AM_IMPORT_FROM( terraf_map )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cclimbr2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cclimbr2_map, AS_PROGRAM, 16, armedf_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x061000, 0x063fff) AM_RAM
@@ -444,7 +444,7 @@ static ADDRESS_MAP_START( cclimbr2_map, AS_PROGRAM, 16 )
AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(irq_lv2_ack_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( legion_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( legion_map, AS_PROGRAM, 16, armedf_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x061000, 0x063fff) AM_RAM
@@ -477,7 +477,7 @@ static WRITE8_HANDLER( legiono_fg_scroll_w )
state->m_fg_scrolly = (state->m_legion_cmd[0x00] & 0xff) | ((state->m_legion_cmd[0x01] & 0x3) << 8);
}
-static ADDRESS_MAP_START( legiono_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( legiono_map, AS_PROGRAM, 16, armedf_state )
AM_RANGE(0x040000, 0x04003f) AM_WRITE8(legiono_fg_scroll_w,0x00ff)
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram")
@@ -500,7 +500,7 @@ static ADDRESS_MAP_START( legiono_map, AS_PROGRAM, 16 )
AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(irq_lv2_ack_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( armedf_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( armedf_map, AS_PROGRAM, 16, armedf_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x061000, 0x065fff) AM_RAM
@@ -677,7 +677,7 @@ static READ16_HANDLER(sharedram_r)
return state->m_sharedram[offset];
}
-static ADDRESS_MAP_START( bigfghtr_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bigfghtr_map, AS_PROGRAM, 16, armedf_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x0805ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x080600, 0x083fff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE_MEMBER(bigfghtr_state, m_sharedram)
@@ -703,12 +703,12 @@ static ADDRESS_MAP_START( bigfghtr_map, AS_PROGRAM, 16 )
AM_RANGE(0x400000, 0x400001) AM_READ(latch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, armedf_state )
AM_RANGE(0x0000, 0xf7ff) AM_ROM
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cclimbr2_soundmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cclimbr2_soundmap, AS_PROGRAM, 8, armedf_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xffff) AM_RAM
ADDRESS_MAP_END
@@ -751,20 +751,20 @@ static WRITE8_HANDLER( fg_scroll_msb_w )
}
-static ADDRESS_MAP_START( terrafb_extraz80_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( terrafb_extraz80_map, AS_PROGRAM, 8, armedf_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x5fff) AM_READWRITE(blitter_txram_r,blitter_txram_w)
AM_RANGE(0x8000, 0x87ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( terrafb_extraz80_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( terrafb_extraz80_portmap, AS_IO, 8, armedf_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00,0x00) AM_WRITE(fg_scrollx_w)
AM_RANGE(0x01,0x01) AM_WRITE(fg_scrolly_w)
AM_RANGE(0x02,0x02) AM_WRITE(fg_scroll_msb_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, armedf_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x0, 0x1) AM_DEVWRITE("ymsnd", ym3812_w)
AM_RANGE(0x2, 0x2) AM_DEVWRITE("dac1", dac_signed_w)
diff --git a/src/mame/drivers/artmagic.c b/src/mame/drivers/artmagic.c
index 42dd5a306f8..7f0e3e27310 100644
--- a/src/mame/drivers/artmagic.c
+++ b/src/mame/drivers/artmagic.c
@@ -424,7 +424,7 @@ static WRITE16_HANDLER( protection_bit_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, artmagic_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x220000, 0x23ffff) AM_RAM
AM_RANGE(0x240000, 0x240fff) AM_RAM AM_SHARE("nvram")
@@ -441,7 +441,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( stonebal_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( stonebal_map, AS_PROGRAM, 16, artmagic_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x27ffff) AM_RAM
AM_RANGE(0x280000, 0x280fff) AM_RAM AM_SHARE("nvram")
@@ -464,7 +464,7 @@ static READ16_HANDLER(unk_r)
return space->machine().rand();
}
-static ADDRESS_MAP_START( shtstar_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( shtstar_map, AS_PROGRAM, 16, artmagic_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x27ffff) AM_RAM
AM_RANGE(0x280000, 0x280fff) AM_RAM AM_SHARE("nvram")
@@ -506,7 +506,7 @@ static const tms34010_config tms_config =
};
-static ADDRESS_MAP_START( tms_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tms_map, AS_PROGRAM, 16, artmagic_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_BASE_MEMBER(artmagic_state, m_vram0)
AM_RANGE(0x00400000, 0x005fffff) AM_RAM AM_BASE_MEMBER(artmagic_state, m_vram1)
AM_RANGE(0x00800000, 0x0080007f) AM_READWRITE(artmagic_blitter_r, artmagic_blitter_w)
@@ -516,7 +516,7 @@ static ADDRESS_MAP_START( tms_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( stonebal_tms_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( stonebal_tms_map, AS_PROGRAM, 16, artmagic_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_BASE_MEMBER(artmagic_state, m_vram0)
AM_RANGE(0x00400000, 0x005fffff) AM_RAM AM_BASE_MEMBER(artmagic_state, m_vram1)
AM_RANGE(0x00800000, 0x0080007f) AM_READWRITE(artmagic_blitter_r, artmagic_blitter_w)
@@ -533,16 +533,16 @@ ADDRESS_MAP_END
*************************************/
/* see adp.c */
-static ADDRESS_MAP_START( shtstar_subcpu_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( shtstar_subcpu_map, AS_PROGRAM, 16, artmagic_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0xffc000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shtstar_guncpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( shtstar_guncpu_map, AS_PROGRAM, 8, artmagic_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shtstar_guncpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( shtstar_guncpu_io_map, AS_IO, 8, artmagic_state )
AM_RANGE(0xc000, 0xcfff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ashnojoe.c b/src/mame/drivers/ashnojoe.c
index abbef9e774c..e7428824c66 100644
--- a/src/mame/drivers/ashnojoe.c
+++ b/src/mame/drivers/ashnojoe.c
@@ -96,7 +96,7 @@ static WRITE16_HANDLER( ashnojoe_soundlatch_w )
}
}
-static ADDRESS_MAP_START( ashnojoe_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ashnojoe_map, AS_PROGRAM, 16, ashnojoe_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x040000, 0x041fff) AM_RAM_WRITE(ashnojoe_tileram3_w) AM_BASE_MEMBER(ashnojoe_state, m_tileram_3)
AM_RANGE(0x042000, 0x043fff) AM_RAM_WRITE(ashnojoe_tileram4_w) AM_BASE_MEMBER(ashnojoe_state, m_tileram_4)
@@ -138,13 +138,13 @@ static READ8_HANDLER( sound_latch_status_r )
return state->m_soundlatch_status;
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, ashnojoe_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank4")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, ashnojoe_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0x02, 0x02) AM_WRITE(adpcm_w)
diff --git a/src/mame/drivers/asterix.c b/src/mame/drivers/asterix.c
index 8834a9fd374..a72fcaeaf94 100644
--- a/src/mame/drivers/asterix.c
+++ b/src/mame/drivers/asterix.c
@@ -174,7 +174,7 @@ static WRITE16_HANDLER( protection_w )
}
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, asterix_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x107fff) AM_RAM
AM_RANGE(0x180000, 0x1807ff) AM_DEVREADWRITE("k053244", k053245_word_r, k053245_word_w)
@@ -197,7 +197,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0x440000, 0x44003f) AM_DEVWRITE("k056832", k056832_word_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, asterix_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf801, 0xf801) AM_DEVREADWRITE("ymsnd", ym2151_status_port_r, ym2151_data_port_w)
diff --git a/src/mame/drivers/asteroid.c b/src/mame/drivers/asteroid.c
index 7b8036e3a9e..2144e2bd3a1 100644
--- a/src/mame/drivers/asteroid.c
+++ b/src/mame/drivers/asteroid.c
@@ -234,7 +234,7 @@ static WRITE8_HANDLER( llander_led_w )
*
*************************************/
-static ADDRESS_MAP_START( asteroid_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( asteroid_map, AS_PROGRAM, 8, asteroid_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x02ff) AM_RAMBANK("bank1") AM_BASE_MEMBER(asteroid_state, m_ram1)
@@ -255,7 +255,7 @@ static ADDRESS_MAP_START( asteroid_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( astdelux_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( astdelux_map, AS_PROGRAM, 8, asteroid_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x02ff) AM_RAMBANK("bank1") AM_BASE_MEMBER(asteroid_state, m_ram1)
@@ -281,7 +281,7 @@ static ADDRESS_MAP_START( astdelux_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( llander_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( llander_map, AS_PROGRAM, 8, asteroid_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x1f00)
AM_RANGE(0x2000, 0x2000) AM_READ_PORT("IN0")
diff --git a/src/mame/drivers/astinvad.c b/src/mame/drivers/astinvad.c
index d078b7b9921..8fe392a4a07 100644
--- a/src/mame/drivers/astinvad.c
+++ b/src/mame/drivers/astinvad.c
@@ -394,7 +394,7 @@ static WRITE8_HANDLER( spaceint_sound2_w )
*
*************************************/
-static ADDRESS_MAP_START( kamikaze_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kamikaze_map, AS_PROGRAM, 8, astinvad_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x1bff) AM_ROM
AM_RANGE(0x1c00, 0x1fff) AM_RAM
@@ -402,20 +402,20 @@ static ADDRESS_MAP_START( kamikaze_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spaceint_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spaceint_map, AS_PROGRAM, 8, astinvad_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x4000, 0x5fff) AM_RAM_WRITE(spaceint_videoram_w) AM_BASE_SIZE_MEMBER(astinvad_state, m_videoram, m_videoram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kamikaze_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( kamikaze_portmap, AS_IO, 8, astinvad_state )
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, AS_IO, 8 )
+static ADDRESS_MAP_START( spaceint_portmap, AS_IO, 8, astinvad_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/astrafr.c b/src/mame/drivers/astrafr.c
index 135ee37757e..c539e039ba7 100644
--- a/src/mame/drivers/astrafr.c
+++ b/src/mame/drivers/astrafr.c
@@ -23,19 +23,19 @@ public:
};
-static ADDRESS_MAP_START( astrafr_master_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( astrafr_master_map, AS_PROGRAM, 32, astrafr_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM // as_partyd set
ADDRESS_MAP_END
// probably identical, afaik they're linekd units..
-static ADDRESS_MAP_START( astrafr_slave_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( astrafr_slave_map, AS_PROGRAM, 32, astrafr_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM // as_partyd set
ADDRESS_MAP_END
-static ADDRESS_MAP_START( astra_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( astra_map, AS_PROGRAM, 32, astrafr_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM // as_partyd set
ADDRESS_MAP_END
diff --git a/src/mame/drivers/astrocde.c b/src/mame/drivers/astrocde.c
index a6b33d4cf1d..04349d2e501 100644
--- a/src/mame/drivers/astrocde.c
+++ b/src/mame/drivers/astrocde.c
@@ -592,7 +592,7 @@ static WRITE8_HANDLER( tenpindx_lights_w )
*
*************************************/
-static ADDRESS_MAP_START( seawolf2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( seawolf2_map, AS_PROGRAM, 8, astrocde_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x0000, 0x3fff) AM_WRITE(astrocade_funcgen_w)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_MEMBER(astrocde_state, m_videoram)
@@ -600,14 +600,14 @@ static ADDRESS_MAP_START( seawolf2_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ebases_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ebases_map, AS_PROGRAM, 8, astrocde_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x0000, 0x3fff) AM_WRITE(astrocade_funcgen_w)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_MEMBER(astrocde_state, m_videoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spacezap_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spacezap_map, AS_PROGRAM, 8, astrocde_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x0000, 0x3fff) AM_WRITE(astrocade_funcgen_w)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_MEMBER(astrocde_state, m_videoram)
@@ -616,7 +616,7 @@ static ADDRESS_MAP_START( spacezap_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wow_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wow_map, AS_PROGRAM, 8, astrocde_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x0000, 0x3fff) AM_WRITE(astrocade_funcgen_w)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_MEMBER(astrocde_state, m_videoram)
@@ -626,7 +626,7 @@ static ADDRESS_MAP_START( wow_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( robby_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( robby_map, AS_PROGRAM, 8, astrocde_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x0000, 0x3fff) AM_WRITE(astrocade_funcgen_w)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_MEMBER(astrocde_state, m_videoram)
@@ -637,7 +637,7 @@ static ADDRESS_MAP_START( robby_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( profpac_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( profpac_map, AS_PROGRAM, 8, astrocde_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x0000, 0x3fff) AM_WRITE(astrocade_funcgen_w)
AM_RANGE(0x4000, 0x7fff) AM_READWRITE(profpac_videoram_r, profpac_videoram_w)
@@ -649,7 +649,7 @@ static ADDRESS_MAP_START( profpac_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( demndrgn_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( demndrgn_map, AS_PROGRAM, 8, astrocde_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x0000, 0x3fff) AM_WRITE(astrocade_funcgen_w)
AM_RANGE(0x4000, 0x7fff) AM_READWRITE(profpac_videoram_r, profpac_videoram_w)
@@ -660,7 +660,7 @@ static ADDRESS_MAP_START( demndrgn_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tenpin_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tenpin_sub_map, AS_PROGRAM, 8, astrocde_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
@@ -674,19 +674,19 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( port_map, AS_IO, 8, astrocde_state )
AM_RANGE(0x0000, 0x0019) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_READWRITE(astrocade_data_chip_register_r, astrocade_data_chip_register_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( port_map_mono_pattern, AS_IO, 8 )
+static ADDRESS_MAP_START( port_map_mono_pattern, AS_IO, 8, astrocde_state )
AM_RANGE(0x0000, 0x0019) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_READWRITE(astrocade_data_chip_register_r, astrocade_data_chip_register_w)
AM_RANGE(0x0078, 0x007e) AM_MIRROR(0xff00) AM_WRITE(astrocade_pattern_board_w)
AM_RANGE(0xa55b, 0xa55b) AM_WRITE(protected_ram_enable_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( port_map_stereo_pattern, AS_IO, 8 )
+static ADDRESS_MAP_START( port_map_stereo_pattern, AS_IO, 8, astrocde_state )
AM_RANGE(0x0000, 0x0019) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_READWRITE(astrocade_data_chip_register_r, astrocade_data_chip_register_w)
AM_RANGE(0x0050, 0x0058) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_DEVWRITE("astrocade2", astrocade_sound_w)
AM_RANGE(0x0078, 0x007e) AM_MIRROR(0xff00) AM_WRITE(astrocade_pattern_board_w)
@@ -694,7 +694,7 @@ static ADDRESS_MAP_START( port_map_stereo_pattern, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( port_map_16col_pattern, AS_IO, 8 )
+static ADDRESS_MAP_START( port_map_16col_pattern, AS_IO, 8, astrocde_state )
AM_RANGE(0x0000, 0x0019) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_READWRITE(astrocade_data_chip_register_r, astrocade_data_chip_register_w)
AM_RANGE(0x0050, 0x0058) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_DEVWRITE("astrocade2", astrocade_sound_w)
AM_RANGE(0x0078, 0x007e) AM_MIRROR(0xff00) AM_WRITE(astrocade_pattern_board_w)
@@ -706,7 +706,7 @@ static ADDRESS_MAP_START( port_map_16col_pattern, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( port_map_16col_pattern_nosound, AS_IO, 8 )
+static ADDRESS_MAP_START( port_map_16col_pattern_nosound, AS_IO, 8, astrocde_state )
AM_RANGE(0x0000, 0x0019) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_READWRITE(astrocade_data_chip_register_r, astrocade_data_chip_register_w)
AM_RANGE(0x0078, 0x007e) AM_MIRROR(0xff00) AM_WRITE(astrocade_pattern_board_w)
AM_RANGE(0x00bf, 0x00bf) AM_MIRROR(0xff00) AM_WRITE(profpac_page_select_w)
@@ -717,7 +717,7 @@ static ADDRESS_MAP_START( port_map_16col_pattern_nosound, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tenpin_sub_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( tenpin_sub_io_map, AS_IO, 8, astrocde_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x90, 0x93) AM_DEVREADWRITE("ctc", z80ctc_r, z80ctc_w)
AM_RANGE(0x97, 0x97) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/astrocorp.c b/src/mame/drivers/astrocorp.c
index 775faf92736..3dc9df1e01a 100644
--- a/src/mame/drivers/astrocorp.c
+++ b/src/mame/drivers/astrocorp.c
@@ -282,7 +282,7 @@ static WRITE16_HANDLER( astrocorp_palette_w )
);
}
-static ADDRESS_MAP_START( showhand_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( showhand_map, AS_PROGRAM, 16, astrocorp_state )
AM_RANGE( 0x000000, 0x01ffff ) AM_ROM
AM_RANGE( 0x050000, 0x050fff ) AM_RAM AM_BASE_SIZE_MEMBER(astrocorp_state, m_spriteram, m_spriteram_size)
AM_RANGE( 0x052000, 0x052001 ) AM_WRITE(astrocorp_draw_sprites_w)
@@ -297,7 +297,7 @@ static ADDRESS_MAP_START( showhand_map, AS_PROGRAM, 16 )
AM_RANGE( 0x0d0000, 0x0d0001 ) AM_READ(astrocorp_unk_r) AM_DEVWRITE8_MODERN("oki", okim6295_device, write, 0xff00)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( showhanc_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( showhanc_map, AS_PROGRAM, 16, astrocorp_state )
AM_RANGE( 0x000000, 0x01ffff ) AM_ROM
AM_RANGE( 0x060000, 0x0601ff ) AM_RAM_WRITE(astrocorp_palette_w) AM_BASE_MEMBER(astrocorp_state, m_paletteram)
AM_RANGE( 0x070000, 0x070001 ) AM_DEVWRITE("oki", astrocorp_sound_bank_w)
@@ -312,7 +312,7 @@ static ADDRESS_MAP_START( showhanc_map, AS_PROGRAM, 16 )
AM_RANGE( 0x0e0000, 0x0e0001 ) AM_READ(astrocorp_unk_r) AM_DEVWRITE8_MODERN("oki", okim6295_device, write, 0xff00)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( skilldrp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( skilldrp_map, AS_PROGRAM, 16, astrocorp_state )
AM_RANGE( 0x000000, 0x03ffff ) AM_ROM
AM_RANGE( 0x200000, 0x200fff ) AM_RAM AM_BASE_SIZE_MEMBER(astrocorp_state, m_spriteram, m_spriteram_size)
AM_RANGE( 0x202000, 0x202001 ) AM_WRITE(astrocorp_draw_sprites_w)
@@ -327,7 +327,7 @@ static ADDRESS_MAP_START( skilldrp_map, AS_PROGRAM, 16 )
AM_RANGE( 0x600000, 0x600001 ) AM_DEVREADWRITE8_MODERN("oki", okim6295_device, read, write, 0x00ff)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( speeddrp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( speeddrp_map, AS_PROGRAM, 16, astrocorp_state )
AM_RANGE( 0x000000, 0x01ffff ) AM_ROM
AM_RANGE( 0x280000, 0x283fff ) AM_RAM AM_SHARE("nvram") // battery
AM_RANGE( 0x380000, 0x380fff ) AM_RAM AM_BASE_SIZE_MEMBER(astrocorp_state, m_spriteram, m_spriteram_size)
diff --git a/src/mame/drivers/astrof.c b/src/mame/drivers/astrof.c
index 55e505bb8ab..3e6a4b083f2 100644
--- a/src/mame/drivers/astrof.c
+++ b/src/mame/drivers/astrof.c
@@ -584,7 +584,7 @@ static MACHINE_RESET( abattle )
*
*************************************/
-static ADDRESS_MAP_START( astrof_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( astrof_map, AS_PROGRAM, 8, astrof_state )
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x1c00) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_NOP
AM_RANGE(0x4000, 0x5fff) AM_RAM_WRITE(astrof_videoram_w) AM_BASE_SIZE_MEMBER(astrof_state, m_videoram, m_videoram_size)
@@ -603,7 +603,7 @@ static ADDRESS_MAP_START( astrof_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spfghmk2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spfghmk2_map, AS_PROGRAM, 8, astrof_state )
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x1c00) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_NOP
AM_RANGE(0x4000, 0x5fff) AM_RAM_WRITE(astrof_videoram_w) AM_BASE_SIZE_MEMBER(astrof_state, m_videoram, m_videoram_size)
@@ -622,7 +622,7 @@ static ADDRESS_MAP_START( spfghmk2_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tomahawk_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tomahawk_map, AS_PROGRAM, 8, astrof_state )
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x1c00) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_NOP
AM_RANGE(0x4000, 0x5fff) AM_RAM_WRITE(tomahawk_videoram_w) AM_BASE_SIZE_MEMBER(astrof_state, m_videoram, m_videoram_size)
diff --git a/src/mame/drivers/asuka.c b/src/mame/drivers/asuka.c
index 9e5eb17630d..58020d9876b 100644
--- a/src/mame/drivers/asuka.c
+++ b/src/mame/drivers/asuka.c
@@ -311,7 +311,7 @@ static WRITE16_HANDLER( cadash_share_w )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( bonzeadv_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bonzeadv_map, AS_PROGRAM, 16, asuka_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x0fffff) AM_ROM
AM_RANGE(0x10c000, 0x10ffff) AM_RAM
@@ -331,7 +331,7 @@ static ADDRESS_MAP_START( bonzeadv_map, AS_PROGRAM, 16 )
AM_RANGE(0xd00000, 0xd03fff) AM_DEVREADWRITE("pc090oj", pc090oj_word_r, pc090oj_word_w) /* sprite ram */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( asuka_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( asuka_map, AS_PROGRAM, 16, asuka_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x1076f0, 0x1076f1) AM_READNOP /* Mofflott init does dummy reads here */
@@ -346,7 +346,7 @@ static ADDRESS_MAP_START( asuka_map, AS_PROGRAM, 16 )
AM_RANGE(0xd00000, 0xd03fff) AM_DEVREADWRITE("pc090oj", pc090oj_word_r, pc090oj_word_w) /* sprite ram */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cadash_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cadash_map, AS_PROGRAM, 16, asuka_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080003) AM_WRITE(asuka_spritectrl_w)
AM_RANGE(0x0c0000, 0x0c0001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_port_w, 0x00ff)
@@ -360,7 +360,7 @@ static ADDRESS_MAP_START( cadash_map, AS_PROGRAM, 16 )
AM_RANGE(0xc20000, 0xc2000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( eto_map, AS_PROGRAM, 16 ) /* N.B. tc100scn mirror overlaps spriteram */
+static ADDRESS_MAP_START( eto_map, AS_PROGRAM, 16 /* N.B. tc100scn mirror overlaps spriteram */, asuka_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10000f) AM_DEVREADWRITE("tc0110pcr", tc0110pcr_word_r, tc0110pcr_step1_word_w)
AM_RANGE(0x200000, 0x203fff) AM_RAM
@@ -378,7 +378,7 @@ ADDRESS_MAP_END
/***************************************************************************/
-static ADDRESS_MAP_START( bonzeadv_z80_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bonzeadv_z80_map, AS_PROGRAM, 8, asuka_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_RAM
@@ -392,7 +392,7 @@ static ADDRESS_MAP_START( bonzeadv_z80_map, AS_PROGRAM, 8 )
AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8, asuka_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x8fff) AM_RAM
@@ -406,7 +406,7 @@ static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* no MSM5205 */
-static ADDRESS_MAP_START( cadash_z80_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cadash_z80_map, AS_PROGRAM, 8, asuka_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x8fff) AM_RAM
@@ -431,12 +431,12 @@ communicates with m68k S with its own shared ram. In short:
m68k M -> z180 M <-> z180 S <- m68k S
*/
-static ADDRESS_MAP_START( cadash_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cadash_sub_map, AS_PROGRAM, 8, asuka_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE(&cadash_shared_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cadash_sub_io, AS_IO, 8 )
+static ADDRESS_MAP_START( cadash_sub_io, AS_IO, 8, asuka_state )
AM_RANGE(0x00, 0x3f) AM_RAM // z180 internal I/O regs
ADDRESS_MAP_END
diff --git a/src/mame/drivers/atarifb.c b/src/mame/drivers/atarifb.c
index d45670f5cdc..ef04333d161 100644
--- a/src/mame/drivers/atarifb.c
+++ b/src/mame/drivers/atarifb.c
@@ -146,7 +146,7 @@ static PALETTE_INIT( atarifb )
*
*************************************/
-static ADDRESS_MAP_START( atarifb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( atarifb_map, AS_PROGRAM, 8, atarifb_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x025f) AM_RAM_WRITE(atarifb_alpha1_videoram_w) AM_BASE_MEMBER(atarifb_state, m_alphap1_videoram)
@@ -166,7 +166,7 @@ static ADDRESS_MAP_START( atarifb_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( atarifb4_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( atarifb4_map, AS_PROGRAM, 8, atarifb_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x025f) AM_RAM_WRITE(atarifb_alpha1_videoram_w) AM_BASE_MEMBER(atarifb_state, m_alphap1_videoram)
@@ -187,7 +187,7 @@ static ADDRESS_MAP_START( atarifb4_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( abaseb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( abaseb_map, AS_PROGRAM, 8, atarifb_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x025f) AM_RAM_WRITE(atarifb_alpha1_videoram_w) AM_BASE_MEMBER(atarifb_state, m_alphap1_videoram)
@@ -207,7 +207,7 @@ static ADDRESS_MAP_START( abaseb_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( soccer_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( soccer_map, AS_PROGRAM, 8, atarifb_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x025f) AM_RAM_WRITE(atarifb_alpha1_videoram_w) AM_BASE_MEMBER(atarifb_state, m_alphap1_videoram)
diff --git a/src/mame/drivers/atarig1.c b/src/mame/drivers/atarig1.c
index f7f42032be5..1363ee1250a 100644
--- a/src/mame/drivers/atarig1.c
+++ b/src/mame/drivers/atarig1.c
@@ -210,7 +210,7 @@ static void pitfightb_cheap_slapstic_init(running_machine &machine)
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarig1_state )
AM_RANGE(0x000000, 0x037fff) AM_ROM
AM_RANGE(0x038000, 0x03ffff) AM_ROM /* pitfight slapstic goes here */
AM_RANGE(0x040000, 0x077fff) AM_ROM
diff --git a/src/mame/drivers/atarig42.c b/src/mame/drivers/atarig42.c
index 8635bfe212c..c2b189c3a68 100644
--- a/src/mame/drivers/atarig42.c
+++ b/src/mame/drivers/atarig42.c
@@ -348,7 +348,7 @@ static WRITE16_HANDLER( guardians_sloop_data_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarig42_state )
AM_RANGE(0x000000, 0x080001) AM_ROM
AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("IN0")
AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/atarigt.c b/src/mame/drivers/atarigt.c
index 9aa2cecd85c..55ede01a76a 100644
--- a/src/mame/drivers/atarigt.c
+++ b/src/mame/drivers/atarigt.c
@@ -603,7 +603,7 @@ static WRITE32_HANDLER( colorram_protection_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, atarigt_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0xc00000, 0xc00003) AM_READWRITE(sound_data_r, sound_data_w)
AM_RANGE(0xd00014, 0xd00017) AM_READ(analog_port0_r)
diff --git a/src/mame/drivers/atarigx2.c b/src/mame/drivers/atarigx2.c
index 7a6635d641d..c3a63a33e68 100644
--- a/src/mame/drivers/atarigx2.c
+++ b/src/mame/drivers/atarigx2.c
@@ -1149,7 +1149,7 @@ static READ32_HANDLER( atarigx2_protection_r )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, atarigx2_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0xc80000, 0xc80fff) AM_RAM
diff --git a/src/mame/drivers/atarisy1.c b/src/mame/drivers/atarisy1.c
index 3fabbc04c43..ac435aeba07 100644
--- a/src/mame/drivers/atarisy1.c
+++ b/src/mame/drivers/atarisy1.c
@@ -468,7 +468,7 @@ static WRITE8_HANDLER( led_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarisy1_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x087fff) AM_ROM /* slapstic maps here */
AM_RANGE(0x2e0000, 0x2e0001) AM_READ(atarisy1_int3state_r)
@@ -502,7 +502,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, atarisy1_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x100f) AM_DEVREADWRITE_MODERN("via6522_0", via6522_device, read, write)
AM_RANGE(0x1800, 0x1801) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/atarisy2.c b/src/mame/drivers/atarisy2.c
index 675fb9aa342..0b2ff81635c 100644
--- a/src/mame/drivers/atarisy2.c
+++ b/src/mame/drivers/atarisy2.c
@@ -799,7 +799,7 @@ static WRITE8_HANDLER( coincount_w )
*************************************/
/* full memory map derived from schematics */
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarisy2_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x11ff) AM_MIRROR(0x0200) AM_RAM_WRITE(atarisy2_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x1400, 0x1403) AM_MIRROR(0x007c) AM_READWRITE(adc_r, bankselect_w) AM_BASE_MEMBER(atarisy2_state, m_bankselect)
@@ -830,7 +830,7 @@ ADDRESS_MAP_END
*************************************/
/* full memory map derived from schematics */
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, atarisy2_state )
AM_RANGE(0x0000, 0x0fff) AM_MIRROR(0x2000) AM_RAM
AM_RANGE(0x1000, 0x17ff) AM_MIRROR(0x2000) AM_RAM AM_SHARE("eeprom")
AM_RANGE(0x1800, 0x180f) AM_MIRROR(0x2780) AM_DEVREADWRITE("pokey1", pokey_r, pokey_w)
diff --git a/src/mame/drivers/atarisy4.c b/src/mame/drivers/atarisy4.c
index 535867f3633..5c2201a32e4 100644
--- a/src/mame/drivers/atarisy4.c
+++ b/src/mame/drivers/atarisy4.c
@@ -623,7 +623,7 @@ static WRITE16_HANDLER( dsp1_bank_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarisy4_state )
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_BASE_MEMBER(atarisy4_state, m_m68k_ram)
AM_RANGE(0x010000, 0x01ffff) AM_RAM
AM_RANGE(0x580000, 0x580001) AM_READ_PORT("JOYSTICK")
@@ -644,13 +644,13 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( dsp0_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dsp0_map, AS_PROGRAM, 16, atarisy4_state )
ADDRESS_MAP_GLOBAL_MASK(0xfff)
AM_RANGE(0x0000, 0x07ff) AM_RAMBANK("dsp0_bank0")
AM_RANGE(0x0800, 0x0fff) AM_RAMBANK("dsp0_bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dsp0_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( dsp0_io_map, AS_IO, 16, atarisy4_state )
AM_RANGE(0x00, 0x01) AM_WRITE(dsp0_bank_w)
AM_RANGE(TMS32010_BIO, TMS32010_BIO) AM_READ(dsp0_bio_r)
ADDRESS_MAP_END
@@ -662,13 +662,13 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( dsp1_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dsp1_map, AS_PROGRAM, 16, atarisy4_state )
ADDRESS_MAP_GLOBAL_MASK(0xfff)
AM_RANGE(0x0000, 0x07ff) AM_RAMBANK("dsp1_bank0")
AM_RANGE(0x0800, 0x0fff) AM_RAMBANK("dsp1_bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dsp1_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( dsp1_io_map, AS_IO, 16, atarisy4_state )
AM_RANGE(0x00, 0x01) AM_WRITE(dsp1_bank_w)
AM_RANGE(TMS32010_BIO, TMS32010_BIO) AM_READ(dsp1_bio_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ataxx.c b/src/mame/drivers/ataxx.c
index 8f9c25b78e0..4a8cd674ebf 100644
--- a/src/mame/drivers/ataxx.c
+++ b/src/mame/drivers/ataxx.c
@@ -45,7 +45,7 @@
*
*************************************/
-static ADDRESS_MAP_START( master_map_program, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( master_map_program, AS_PROGRAM, 8, leland_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xdfff) AM_ROMBANK("bank2") AM_WRITE(ataxx_battery_ram_w) AM_SHARE("battery")
@@ -54,7 +54,7 @@ static ADDRESS_MAP_START( master_map_program, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( master_map_io, AS_IO, 8 )
+static ADDRESS_MAP_START( master_map_io, AS_IO, 8, leland_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x04) AM_DEVREAD("custom", leland_80186_response_r)
AM_RANGE(0x05, 0x05) AM_DEVWRITE("custom", leland_80186_command_hi_w)
@@ -74,7 +74,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( slave_map_program, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slave_map_program, AS_PROGRAM, 8, leland_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x9fff) AM_ROMBANK("bank3")
AM_RANGE(0xa000, 0xdfff) AM_ROM
@@ -85,7 +85,7 @@ static ADDRESS_MAP_START( slave_map_program, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_map_io, AS_IO, 8 )
+static ADDRESS_MAP_START( slave_map_io, AS_IO, 8, leland_state )
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/atetris.c b/src/mame/drivers/atetris.c
index cf9f391128e..6c2a0972cc4 100644
--- a/src/mame/drivers/atetris.c
+++ b/src/mame/drivers/atetris.c
@@ -201,7 +201,7 @@ static WRITE8_HANDLER( nvram_enable_w )
*************************************/
/* full address map derived from schematics */
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, atetris_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(atetris_videoram_w) AM_BASE_MEMBER(atetris_state, m_videoram)
AM_RANGE(0x2000, 0x20ff) AM_MIRROR(0x0300) AM_RAM_WRITE(paletteram_RRRGGGBB_w) AM_BASE_GENERIC(paletteram)
@@ -218,7 +218,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( atetrisb2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( atetrisb2_map, AS_PROGRAM, 8, atetris_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(atetris_videoram_w) AM_BASE_MEMBER(atetris_state, m_videoram)
AM_RANGE(0x2000, 0x20ff) AM_RAM_WRITE(paletteram_RRRGGGBB_w) AM_BASE_GENERIC(paletteram)
diff --git a/src/mame/drivers/attckufo.c b/src/mame/drivers/attckufo.c
index 8f5d82ab5e8..f26daf79bfc 100644
--- a/src/mame/drivers/attckufo.c
+++ b/src/mame/drivers/attckufo.c
@@ -117,7 +117,7 @@ static WRITE8_HANDLER(attckufo_io_w)
*/
}
-static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8, attckufo_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_BASE_MEMBER(attckufo_state, m_mainram)
AM_RANGE(0x1000, 0x100f) AM_DEVREADWRITE("mos6560", mos6560_port_r, mos6560_port_w)
diff --git a/src/mame/drivers/atvtrack.c b/src/mame/drivers/atvtrack.c
index 1edd2a6dc43..cffc366312b 100644
--- a/src/mame/drivers/atvtrack.c
+++ b/src/mame/drivers/atvtrack.c
@@ -341,7 +341,7 @@ static MACHINE_RESET(atvtrack)
exec->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
-static ADDRESS_MAP_START( atvtrack_main_map, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( atvtrack_main_map, AS_PROGRAM, 64, atvtrack_state )
AM_RANGE(0x00000000, 0x000003ff) AM_RAM AM_SHARE("sharedmem")
AM_RANGE(0x00020000, 0x00020007) AM_READWRITE(area1_r, area1_w)
AM_RANGE(0x14000000, 0x14000007) AM_READWRITE(area2_r, area2_w) // data
@@ -350,16 +350,16 @@ static ADDRESS_MAP_START( atvtrack_main_map, AS_PROGRAM, 64 )
AM_RANGE(0x0c000000, 0x0cffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( atvtrack_main_port, AS_IO, 64 )
+static ADDRESS_MAP_START( atvtrack_main_port, AS_IO, 64, atvtrack_state )
AM_RANGE(0x00, 0x1f) AM_READWRITE(ioport_r, ioport_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( atvtrack_sub_map, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( atvtrack_sub_map, AS_PROGRAM, 64, atvtrack_state )
AM_RANGE(0x00000000, 0x000003ff) AM_RAM AM_SHARE("sharedmem")
AM_RANGE(0x0c000000, 0x0cffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( atvtrack_sub_port, AS_IO, 64 )
+static ADDRESS_MAP_START( atvtrack_sub_port, AS_IO, 64, atvtrack_state )
/*AM_RANGE(0x00, 0x1f) AM_READWRITE(ioport_r, ioport_w) */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/avalnche.c b/src/mame/drivers/avalnche.c
index 9f8b129104c..8fca167e6d3 100644
--- a/src/mame/drivers/avalnche.c
+++ b/src/mame/drivers/avalnche.c
@@ -110,7 +110,7 @@ static WRITE8_HANDLER( avalance_start_lamp_w )
set_led_status(space->machine(), 2, data & 1);
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, avalnche_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_SIZE_MEMBER(avalnche_state, m_videoram, m_videoram_size)
AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x0ffc) AM_READ_PORT("IN0")
@@ -128,7 +128,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0x6000, 0x7fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( catch_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( catch_map, AS_PROGRAM, 8, avalnche_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_SIZE_MEMBER(avalnche_state, m_videoram, m_videoram_size)
AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x0ffc) AM_READ_PORT("IN0")
diff --git a/src/mame/drivers/aztarac.c b/src/mame/drivers/aztarac.c
index c0c7ab2acbc..aca8ef54252 100644
--- a/src/mame/drivers/aztarac.c
+++ b/src/mame/drivers/aztarac.c
@@ -76,7 +76,7 @@ static READ16_HANDLER( joystick_r )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, aztarac_state )
AM_RANGE(0x000000, 0x00bfff) AM_ROM
AM_RANGE(0x022000, 0x0220ff) AM_READ(nvram_r) AM_WRITEONLY AM_SHARE("nvram")
AM_RANGE(0x027000, 0x027001) AM_READ(joystick_r)
@@ -97,7 +97,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, aztarac_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8800) AM_READ(aztarac_snd_command_r)
diff --git a/src/mame/drivers/backfire.c b/src/mame/drivers/backfire.c
index db2af0328cc..e07de7f4799 100644
--- a/src/mame/drivers/backfire.c
+++ b/src/mame/drivers/backfire.c
@@ -260,7 +260,7 @@ static WRITE32_HANDLER( backfire_spriteram2_w )
-static ADDRESS_MAP_START( backfire_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( backfire_map, AS_PROGRAM, 32, backfire_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10001f) AM_DEVREADWRITE("tilegen1", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x110000, 0x111fff) AM_DEVREADWRITE("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
diff --git a/src/mame/drivers/badlands.c b/src/mame/drivers/badlands.c
index 42893cd506e..b39bcfe9bd3 100644
--- a/src/mame/drivers/badlands.c
+++ b/src/mame/drivers/badlands.c
@@ -382,7 +382,7 @@ static WRITE8_HANDLER( audio_io_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, badlands_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0xfc0000, 0xfc1fff) AM_READWRITE(sound_busy_r, atarigen_sound_reset_w)
AM_RANGE(0xfd0000, 0xfd1fff) AM_READWRITE(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
@@ -411,7 +411,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, badlands_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x2800, 0x2bff) AM_READWRITE(audio_io_r, audio_io_w)
@@ -638,7 +638,7 @@ static READ16_HANDLER( badlandsb_unk_r )
return 0xffff;
}
-static ADDRESS_MAP_START( bootleg_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bootleg_map, AS_PROGRAM, 16, badlands_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
diff --git a/src/mame/drivers/bagman.c b/src/mame/drivers/bagman.c
index fa302010ae9..5b8b2189669 100644
--- a/src/mame/drivers/bagman.c
+++ b/src/mame/drivers/bagman.c
@@ -109,7 +109,7 @@ static WRITE8_HANDLER( irq_mask_w )
state->m_irq_mask = data & 1;
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bagman_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x67ff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(bagman_videoram_w) AM_BASE_MEMBER(bagman_state, m_videoram)
@@ -138,7 +138,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( pickin_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pickin_map, AS_PROGRAM, 8, bagman_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x7000, 0x77ff) AM_RAM
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(bagman_videoram_w) AM_BASE_MEMBER(bagman_state, m_videoram)
@@ -163,7 +163,7 @@ static ADDRESS_MAP_START( pickin_map, AS_PROGRAM, 8 )
AM_RANGE(0xb800, 0xb800) AM_DEVREADWRITE("ay2", ay8910_r, ay8910_data_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, AS_IO, 8, bagman_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x09) AM_DEVWRITE("aysnd", ay8910_address_data_w)
AM_RANGE(0x0c, 0x0c) AM_DEVREAD("aysnd", ay8910_r)
diff --git a/src/mame/drivers/balsente.c b/src/mame/drivers/balsente.c
index 2b310cf4fb9..f5462fa389e 100644
--- a/src/mame/drivers/balsente.c
+++ b/src/mame/drivers/balsente.c
@@ -242,7 +242,7 @@ DIP locations verified for:
*
*************************************/
-static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8, balsente_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_MEMBER(balsente_state, m_spriteram)
AM_RANGE(0x0800, 0x7fff) AM_RAM_WRITE(balsente_videoram_w) AM_BASE_MEMBER(balsente_state, m_videoram)
AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(balsente_paletteram_w) AM_BASE_GENERIC(paletteram)
@@ -272,7 +272,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, balsente_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x5fff) AM_RAM
AM_RANGE(0x6000, 0x7fff) AM_WRITE(balsente_m6850_sound_w)
@@ -280,7 +280,7 @@ static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( cpu2_io_map, AS_IO, 8, balsente_state )
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)
@@ -299,7 +299,7 @@ ADDRESS_MAP_END
*************************************/
/* CPU 1 read addresses */
-static ADDRESS_MAP_START( shrike68k_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( shrike68k_map, AS_PROGRAM, 16, balsente_state )
AM_RANGE(0x000000, 0x003fff) AM_ROM
AM_RANGE(0x010000, 0x01001f) AM_RAM AM_BASE_MEMBER(balsente_state, m_shrike_io)
AM_RANGE(0x018000, 0x018fff) AM_RAM AM_BASE_MEMBER(balsente_state, m_shrike_shared)
diff --git a/src/mame/drivers/bankp.c b/src/mame/drivers/bankp.c
index 9eae5b5a142..032a95660fb 100644
--- a/src/mame/drivers/bankp.c
+++ b/src/mame/drivers/bankp.c
@@ -103,7 +103,7 @@
*
*************************************/
-static ADDRESS_MAP_START( bankp_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bankp_map, AS_PROGRAM, 8, bankp_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xefff) AM_RAM
AM_RANGE(0xf000, 0xf3ff) AM_RAM_WRITE(bankp_videoram_w) AM_BASE_MEMBER(bankp_state, m_videoram)
@@ -112,7 +112,7 @@ static ADDRESS_MAP_START( bankp_map, AS_PROGRAM, 8 )
AM_RANGE(0xfc00, 0xffff) AM_RAM_WRITE(bankp_colorram2_w) AM_BASE_MEMBER(bankp_state, m_colorram2)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bankp_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( bankp_io_map, AS_IO, 8, bankp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_DEVWRITE("sn1", sn76496_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_DEVWRITE("sn2", sn76496_w)
diff --git a/src/mame/drivers/baraduke.c b/src/mame/drivers/baraduke.c
index 912c3db6e24..664c8ccf3c3 100644
--- a/src/mame/drivers/baraduke.c
+++ b/src/mame/drivers/baraduke.c
@@ -162,7 +162,7 @@ static WRITE8_HANDLER( baraduke_irq_ack_w )
-static ADDRESS_MAP_START( baraduke_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( baraduke_map, AS_PROGRAM, 8, baraduke_state )
AM_RANGE(0x0000, 0x1fff) AM_READWRITE(baraduke_spriteram_r,baraduke_spriteram_w) AM_BASE_MEMBER(baraduke_state, m_spriteram) /* Sprite RAM */
AM_RANGE(0x2000, 0x3fff) AM_READWRITE(baraduke_videoram_r,baraduke_videoram_w) AM_BASE_MEMBER(baraduke_state, m_videoram) /* Video RAM */
AM_RANGE(0x4000, 0x43ff) AM_DEVREADWRITE("namco", namcos1_cus30_r,namcos1_cus30_w) /* PSG device, shared RAM */
@@ -181,7 +181,7 @@ static READ8_HANDLER( soundkludge_r )
return ((state->m_counter++) >> 4) & 0xff;
}
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, baraduke_state )
AM_RANGE(0x0000, 0x001f) AM_READWRITE(m6801_io_r,m6801_io_w)/* internal registers */
AM_RANGE(0x0080, 0x00ff) AM_RAM /* built in RAM */
AM_RANGE(0x1105, 0x1105) AM_READ(soundkludge_r) /* cures speech */
@@ -199,7 +199,7 @@ static READ8_HANDLER( readFF )
return 0xff;
}
-static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8, baraduke_state )
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ(inputport_r) /* input ports read */
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_WRITE(inputport_select_w) /* input port select */
AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ(readFF) /* leds won't work otherwise */
diff --git a/src/mame/drivers/bartop52.c b/src/mame/drivers/bartop52.c
index e7826c2847f..400043a5779 100644
--- a/src/mame/drivers/bartop52.c
+++ b/src/mame/drivers/bartop52.c
@@ -32,7 +32,7 @@ public:
};
-static ADDRESS_MAP_START(a5200_mem, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(a5200_mem, AS_PROGRAM, 8, bartop52_state )
AM_RANGE(0x0000, 0x3fff) AM_RAM
AM_RANGE(0x4000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc0ff) AM_READWRITE(atari_gtia_r, atari_gtia_w)
diff --git a/src/mame/drivers/batman.c b/src/mame/drivers/batman.c
index fe88e17f373..21c6daba76e 100644
--- a/src/mame/drivers/batman.c
+++ b/src/mame/drivers/batman.c
@@ -129,7 +129,7 @@ static WRITE16_HANDLER( latch_w )
/* full map verified from schematics and GALs */
/* addresses in the 1xxxxx region map to /WAIT */
/* addresses in the 2xxxxx region map to /WAIT2 */
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, batman_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x3fffff)
AM_RANGE(0x000000, 0x0bffff) AM_ROM
diff --git a/src/mame/drivers/battlane.c b/src/mame/drivers/battlane.c
index 80c83e76bd2..084aa6913fe 100644
--- a/src/mame/drivers/battlane.c
+++ b/src/mame/drivers/battlane.c
@@ -98,7 +98,7 @@ static INTERRUPT_GEN( battlane_cpu1_interrupt )
*
*************************************/
-static ADDRESS_MAP_START( battlane_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( battlane_map, AS_PROGRAM, 8, battlane_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x1000, 0x17ff) AM_RAM_WRITE(battlane_tileram_w) AM_SHARE("share2") AM_BASE_MEMBER(battlane_state, m_tileram)
AM_RANGE(0x1800, 0x18ff) AM_RAM_WRITE(battlane_spriteram_w) AM_SHARE("share3") AM_BASE_MEMBER(battlane_state, m_spriteram)
diff --git a/src/mame/drivers/battlera.c b/src/mame/drivers/battlera.c
index 8a082ddfc80..b557a33af6b 100644
--- a/src/mame/drivers/battlera.c
+++ b/src/mame/drivers/battlera.c
@@ -65,7 +65,7 @@ static READ8_HANDLER( control_data_r )
/******************************************************************************/
-static ADDRESS_MAP_START( battlera_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( battlera_map, AS_PROGRAM, 8, battlera_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_READWRITE(HuC6270_debug_r, HuC6270_debug_w) /* Cheat to edit vram data */
AM_RANGE(0x1e0800, 0x1e0801) AM_WRITE(battlera_sound_w)
@@ -77,7 +77,7 @@ static ADDRESS_MAP_START( battlera_map, AS_PROGRAM, 8 )
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(h6280_irq_status_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( battlera_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( battlera_portmap, AS_IO, 8, battlera_state )
AM_RANGE(0x00, 0x01) AM_WRITE(HuC6270_register_w)
AM_RANGE(0x02, 0x03) AM_WRITE(HuC6270_data_w)
ADDRESS_MAP_END
@@ -108,7 +108,7 @@ static WRITE8_DEVICE_HANDLER( battlera_adpcm_reset_w )
msm5205_reset_w(device, 0);
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, battlera_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x040000, 0x040001) AM_DEVWRITE("ymsnd", ym2203_w)
AM_RANGE(0x080000, 0x080001) AM_WRITE(battlera_adpcm_data_w)
diff --git a/src/mame/drivers/battlex.c b/src/mame/drivers/battlex.c
index f147e2576b9..befdf867ed8 100644
--- a/src/mame/drivers/battlex.c
+++ b/src/mame/drivers/battlex.c
@@ -75,7 +75,7 @@ static CUSTOM_INPUT( battlex_in0_b4_r )
*
*************************************/
-static ADDRESS_MAP_START( battlex_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( battlex_map, AS_PROGRAM, 8, battlex_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(battlex_videoram_w) AM_BASE_MEMBER(battlex_state, m_videoram)
AM_RANGE(0x9000, 0x91ff) AM_RAM AM_BASE_MEMBER(battlex_state, m_spriteram)
@@ -84,7 +84,7 @@ static ADDRESS_MAP_START( battlex_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, battlex_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW1")
AM_RANGE(0x01, 0x01) AM_READ_PORT("SYSTEM")
diff --git a/src/mame/drivers/battlnts.c b/src/mame/drivers/battlnts.c
index 589a8e0a6c4..73c74f551be 100644
--- a/src/mame/drivers/battlnts.c
+++ b/src/mame/drivers/battlnts.c
@@ -57,7 +57,7 @@ static WRITE8_HANDLER( battlnts_bankswitch_w )
*
*************************************/
-static ADDRESS_MAP_START( battlnts_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( battlnts_map, AS_PROGRAM, 8, battlnts_state )
AM_RANGE(0x0000, 0x1fff) AM_DEVREADWRITE("k007342", k007342_r, k007342_w) /* Color RAM + Video RAM */
AM_RANGE(0x2000, 0x21ff) AM_DEVREADWRITE("k007420", k007420_r, k007420_w) /* Sprite RAM */
AM_RANGE(0x2200, 0x23ff) AM_DEVREADWRITE("k007342", k007342_scroll_r, k007342_scroll_w) /* Scroll RAM */
@@ -77,7 +77,7 @@ static ADDRESS_MAP_START( battlnts_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM 777e02.bin */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( battlnts_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( battlnts_sound_map, AS_PROGRAM, 8, battlnts_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM 777c01.rom */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ym1", ym3812_r, ym3812_w) /* YM3812 (chip 1) */
diff --git a/src/mame/drivers/bbusters.c b/src/mame/drivers/bbusters.c
index f98295a3509..32d40a42a50 100644
--- a/src/mame/drivers/bbusters.c
+++ b/src/mame/drivers/bbusters.c
@@ -327,7 +327,7 @@ static READ16_HANDLER( mechatt_gun_r )
/*******************************************************************************/
-static ADDRESS_MAP_START( bbusters_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bbusters_map, AS_PROGRAM, 16, bbusters_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_RAM AM_BASE_MEMBER(bbusters_state, m_ram)
AM_RANGE(0x090000, 0x090fff) AM_RAM_WRITE(bbusters_video_w) AM_BASE_MEMBER(bbusters_state, m_videoram)
@@ -357,7 +357,7 @@ ADDRESS_MAP_END
/*******************************************************************************/
-static ADDRESS_MAP_START( mechatt_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mechatt_map, AS_PROGRAM, 16, bbusters_state )
AM_RANGE(0x000000, 0x06ffff) AM_ROM
AM_RANGE(0x070000, 0x07ffff) AM_RAM AM_BASE_MEMBER(bbusters_state, m_ram)
AM_RANGE(0x090000, 0x090fff) AM_RAM_WRITE(bbusters_video_w) AM_BASE_MEMBER(bbusters_state, m_videoram)
@@ -378,19 +378,19 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, bbusters_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_READWRITE(soundlatch_r, sound_status_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, bbusters_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
AM_RANGE(0xc0, 0xc1) AM_WRITENOP /* -> Main CPU */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sounda_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sounda_portmap, AS_IO, 8, bbusters_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2608_r, ym2608_w)
AM_RANGE(0xc0, 0xc1) AM_WRITENOP /* -> Main CPU */
diff --git a/src/mame/drivers/beaminv.c b/src/mame/drivers/beaminv.c
index 0c3f18eb970..9f121d49faa 100644
--- a/src/mame/drivers/beaminv.c
+++ b/src/mame/drivers/beaminv.c
@@ -231,7 +231,7 @@ static READ8_HANDLER( controller_r )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, beaminv_state )
AM_RANGE(0x0000, 0x17ff) AM_ROM
AM_RANGE(0x1800, 0x1fff) AM_RAM
AM_RANGE(0x2400, 0x2400) AM_MIRROR(0x03ff) AM_READ_PORT("DSW")
@@ -249,7 +249,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( main_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( main_io_map, AS_IO, 8, beaminv_state )
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/beezer.c b/src/mame/drivers/beezer.c
index 05471d056be..0af6989e9cc 100644
--- a/src/mame/drivers/beezer.c
+++ b/src/mame/drivers/beezer.c
@@ -15,14 +15,14 @@
#include "sound/dac.h"
#include "includes/beezer.h"
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, beezer_state )
AM_RANGE(0x0000, 0xbfff) AM_RAM AM_BASE_MEMBER(beezer_state, m_videoram)
AM_RANGE(0xc000, 0xcfff) AM_ROMBANK("bank1")
AM_RANGE(0xd000, 0xdfff) AM_ROM AM_WRITE(beezer_bankswitch_w) // ROM at G1, bankswitch
AM_RANGE(0xe000, 0xffff) AM_ROM // ROMS at G3, G5
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, beezer_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM // RAM at 0D
AM_RANGE(0x0800, 0x0fff) AM_RAM // optional RAM at 2D (can be rom here instead)
AM_RANGE(0x1000, 0x1007) AM_MIRROR(0x07f8) AM_DEVREADWRITE("custom", beezer_sh6840_r, beezer_sh6840_w)
diff --git a/src/mame/drivers/berzerk.c b/src/mame/drivers/berzerk.c
index ef8aecd3f41..a6ae3d8a774 100644
--- a/src/mame/drivers/berzerk.c
+++ b/src/mame/drivers/berzerk.c
@@ -584,7 +584,7 @@ static SOUND_RESET(berzerk)
*
*************************************/
-static ADDRESS_MAP_START( berzerk_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( berzerk_map, AS_PROGRAM, 8, berzerk_state )
AM_RANGE(0x0000, 0x07ff) AM_ROM
AM_RANGE(0x0800, 0x0bff) AM_MIRROR(0x0400) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x1000, 0x3fff) AM_ROM
@@ -595,7 +595,7 @@ static ADDRESS_MAP_START( berzerk_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( frenzy_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( frenzy_map, AS_PROGRAM, 8, berzerk_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x5fff) AM_RAM AM_BASE_MEMBER(berzerk_state, m_videoram) AM_SIZE_MEMBER(berzerk_state, m_videoram_size) AM_SHARE("share1")
AM_RANGE(0x6000, 0x7fff) AM_RAM_WRITE(magicram_w) AM_SHARE("share1")
@@ -612,7 +612,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( berzerk_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( berzerk_io_map, AS_IO, 8, berzerk_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x3f) AM_NOP
AM_RANGE(0x40, 0x47) AM_READWRITE(berzerk_audio_r, berzerk_audio_w)
diff --git a/src/mame/drivers/bestleag.c b/src/mame/drivers/bestleag.c
index 968747e9f22..3ba954c8775 100644
--- a/src/mame/drivers/bestleag.c
+++ b/src/mame/drivers/bestleag.c
@@ -227,7 +227,7 @@ static WRITE16_DEVICE_HANDLER( oki_bank_w )
/* Memory Map */
-static ADDRESS_MAP_START( bestleag_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bestleag_map, AS_PROGRAM, 16, bestleag_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x0d2000, 0x0d3fff) AM_NOP // left over from the original game (only read / written in memory test)
AM_RANGE(0x0e0000, 0x0e3fff) AM_RAM_WRITE(bestleag_bgram_w) AM_BASE_MEMBER(bestleag_state, m_bgram)
diff --git a/src/mame/drivers/bfcobra.c b/src/mame/drivers/bfcobra.c
index 314d2e8f3e9..970c04945ab 100644
--- a/src/mame/drivers/bfcobra.c
+++ b/src/mame/drivers/bfcobra.c
@@ -1325,14 +1325,14 @@ static MACHINE_RESET( bfcobra )
***************************************************************************/
-static ADDRESS_MAP_START( z80_prog_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( z80_prog_map, AS_PROGRAM, 8, bfcobra_state )
AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank4")
AM_RANGE(0x4000, 0x7fff) AM_RAMBANK("bank1")
AM_RANGE(0x8000, 0xbfff) AM_RAMBANK("bank2")
AM_RANGE(0xc000, 0xffff) AM_RAMBANK("bank3")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( z80_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( z80_io_map, AS_IO, 8, bfcobra_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x23) AM_READWRITE(chipset_r, chipset_w)
AM_RANGE(0x24, 0x24) AM_DEVWRITE_MODERN("acia6850_0", acia6850_device, control_write)
@@ -1459,7 +1459,7 @@ static WRITE8_DEVICE_HANDLER( upd_w )
upd7759_start_w(device, data & 0x40 ? 0 : 1);
}
-static ADDRESS_MAP_START( m6809_prog_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m6809_prog_map, AS_PROGRAM, 8, bfcobra_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x2000, 0x2000) AM_RAM // W 'B', 6F
AM_RANGE(0x2200, 0x2200) AM_RAM // W 'F'
diff --git a/src/mame/drivers/bfm_sc1.c b/src/mame/drivers/bfm_sc1.c
index 64276a74bd4..5ae00bfd0bf 100644
--- a/src/mame/drivers/bfm_sc1.c
+++ b/src/mame/drivers/bfm_sc1.c
@@ -666,7 +666,7 @@ static MACHINE_RESET( bfm_sc1 )
// scorpion1 board memory map ///////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
-static ADDRESS_MAP_START( sc1_base, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sc1_base, AS_PROGRAM, 8, bfm_sc1_state )
AM_RANGE(0x0000, 0x1FFF) AM_RAM AM_SHARE("nvram") //8k RAM
AM_RANGE(0x2000, 0x21FF) AM_WRITE(reel34_w) // reel 2+3 latch
@@ -706,7 +706,7 @@ ADDRESS_MAP_END
// scorpion1 board + adder2 expansion memory map ////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
-static ADDRESS_MAP_START( sc1_adder2, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sc1_adder2, AS_PROGRAM, 8, bfm_sc1_state )
AM_IMPORT_FROM( sc1_base )
AM_RANGE(0x3E00, 0x3E00) AM_READWRITE(vid_uart_ctrl_r,vid_uart_ctrl_w) // video uart control reg read
@@ -718,7 +718,7 @@ ADDRESS_MAP_END
// scorpion1 board + upd7759 soundcard memory map ///////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
-static ADDRESS_MAP_START( sc1_viper, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sc1_viper, AS_PROGRAM, 8, bfm_sc1_state )
AM_IMPORT_FROM( sc1_base )
AM_RANGE(0x3404, 0x3404) AM_READ(dipcoin_r ) // coin input on gamecard
diff --git a/src/mame/drivers/bfm_sc2.c b/src/mame/drivers/bfm_sc2.c
index 77bbe9f0773..fdb0317c237 100644
--- a/src/mame/drivers/bfm_sc2.c
+++ b/src/mame/drivers/bfm_sc2.c
@@ -1421,7 +1421,7 @@ static READ8_HANDLER( direct_input_r )
-static ADDRESS_MAP_START( sc2_basemap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sc2_basemap, AS_PROGRAM, 8, bfm_sc2_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram") //8k
AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_r)
AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_w)
@@ -1472,7 +1472,7 @@ ADDRESS_MAP_END
// memory map for scorpion2 board video addon /////////////////////////////
-static ADDRESS_MAP_START( memmap_vid, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( memmap_vid, AS_PROGRAM, 8, bfm_sc2_state )
AM_IMPORT_FROM( sc2_basemap )
AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_hop_r) // vfd status register
diff --git a/src/mame/drivers/bfm_sc4.c b/src/mame/drivers/bfm_sc4.c
index 7c61c625f2d..d36bfc71969 100644
--- a/src/mame/drivers/bfm_sc4.c
+++ b/src/mame/drivers/bfm_sc4.c
@@ -174,11 +174,11 @@ static WRITE16_HANDLER( sc4_mem_w )
}
}
-static ADDRESS_MAP_START( sc4_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sc4_map, AS_PROGRAM, 16, sc4_adder4_state )
AM_RANGE(0x000000000, 0xffffffff) AM_READWRITE(sc4_mem_r, sc4_mem_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sc4_adder4_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( sc4_adder4_map, AS_PROGRAM, 32, sc4_adder4_state )
AM_RANGE(0x000000, 0x2fffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/bfm_swp.c b/src/mame/drivers/bfm_swp.c
index dc173babe84..a583d932f21 100644
--- a/src/mame/drivers/bfm_swp.c
+++ b/src/mame/drivers/bfm_swp.c
@@ -138,7 +138,7 @@ public:
-static ADDRESS_MAP_START( bfm_swp_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( bfm_swp_map, AS_PROGRAM, 32, bfm_swp_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0xb00000, 0xb03fff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/bfmsys83.c b/src/mame/drivers/bfmsys83.c
index 25900902d13..52aee43428f 100644
--- a/src/mame/drivers/bfmsys83.c
+++ b/src/mame/drivers/bfmsys83.c
@@ -17,7 +17,7 @@ public:
-static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, bfmsys83_state )
AM_RANGE(0x4000, 0xffff) AM_ROM // 32K ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/bfmsys85.c b/src/mame/drivers/bfmsys85.c
index 65dee6196ab..a586deae44e 100644
--- a/src/mame/drivers/bfmsys85.c
+++ b/src/mame/drivers/bfmsys85.c
@@ -384,7 +384,7 @@ static MACHINE_START( bfm_sys85 )
// memory map for bellfruit system85 board ////////////////////////////////
-static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, bfmsys85_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram") //8k RAM
AM_RANGE(0x2000, 0x21FF) AM_WRITE(reel34_w) // reel 3+4 latch
diff --git a/src/mame/drivers/big10.c b/src/mame/drivers/big10.c
index 07eb4ed0b10..d0464580f31 100644
--- a/src/mame/drivers/big10.c
+++ b/src/mame/drivers/big10.c
@@ -132,13 +132,13 @@ static READ8_HANDLER( mux_r )
* Memory Map *
**************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, big10_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_io, AS_IO, 8 )
+static ADDRESS_MAP_START( main_io, AS_IO, 8, big10_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(mux_r) /* present in test mode */
AM_RANGE(0x02, 0x02) AM_READ_PORT("SYSTEM") /* coins and service */
diff --git a/src/mame/drivers/bigevglf.c b/src/mame/drivers/bigevglf.c
index 2fd6435bc49..1e5f360fa6f 100644
--- a/src/mame/drivers/bigevglf.c
+++ b/src/mame/drivers/bigevglf.c
@@ -306,7 +306,7 @@ INPUT_PORTS_END
/*****************************************************************************/
/* Main CPU */
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bigevglf_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xd7ff) AM_ROMBANK("bank1")
@@ -317,7 +317,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xf840, 0xf8ff) AM_RAM AM_BASE_MEMBER(bigevglf_state, m_spriteram2) /* spriteram (x,y,offset in spriteram1,palette) */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bigevglf_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( bigevglf_portmap, AS_IO, 8, bigevglf_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP /* video ram enable ???*/
AM_RANGE(0x01, 0x01) AM_WRITE(bigevglf_gfxcontrol_w) /* plane select */
@@ -332,7 +332,7 @@ ADDRESS_MAP_END
/*********************************************************************************/
/* Sub CPU */
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, bigevglf_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x8000, 0x83ff) AM_RAM AM_SHARE("share1") /* shared with main CPU */
@@ -352,7 +352,7 @@ static READ8_HANDLER( sub_cpu_mcu_coin_port_r )
return bigevglf_mcu_status_r(space, 0) | (input_port_read(space->machine(), "PORT04") & 3) | state->m_mcu_coin_bit5; /* bit 0 and bit 1 - coin inputs */
}
-static ADDRESS_MAP_START( bigevglf_sub_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( bigevglf_sub_portmap, AS_IO, 8, bigevglf_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("PORT00")
AM_RANGE(0x01, 0x01) AM_READNOP
@@ -378,7 +378,7 @@ ADDRESS_MAP_END
/*********************************************************************************/
/* Sound CPU */
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, bigevglf_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc801) AM_DEVWRITE("aysnd", ay8910_address_data_w)
@@ -396,7 +396,7 @@ ADDRESS_MAP_END
/*********************************************************************************/
/* MCU */
-static ADDRESS_MAP_START( m68705_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m68705_map, AS_PROGRAM, 8, bigevglf_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(bigevglf_68705_port_a_r, bigevglf_68705_port_a_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(bigevglf_68705_port_b_r, bigevglf_68705_port_b_w)
diff --git a/src/mame/drivers/bigstrkb.c b/src/mame/drivers/bigstrkb.c
index c2e4bc601fd..ea5ecf01476 100644
--- a/src/mame/drivers/bigstrkb.c
+++ b/src/mame/drivers/bigstrkb.c
@@ -34,7 +34,7 @@ lev 7 : 0x7c : 0000 05be - xxx
/* some regions might be too large */
-static ADDRESS_MAP_START( bigstrkb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bigstrkb_map, AS_PROGRAM, 16, bigstrkb_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
// AM_RANGE(0x0c0000, 0x0cffff) AM_READWRITE(megasys1_vregs_C_r, megasys1_vregs_C_w) AM_BASE(&megasys1_vregs)
diff --git a/src/mame/drivers/bingoc.c b/src/mame/drivers/bingoc.c
index 00493a74bfa..fa3f93c6062 100644
--- a/src/mame/drivers/bingoc.c
+++ b/src/mame/drivers/bingoc.c
@@ -104,7 +104,7 @@ static WRITE8_DEVICE_HANDLER( bingoc_play_w )
// printf("%02x\n",data);
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, bingoc_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10007f) AM_READ(bingoc_rand_r) //comms? lamps?
AM_RANGE(0x180000, 0x18007f) AM_READ(bingoc_rand_r) //comms? lamps?
@@ -114,12 +114,12 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0xff8000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, bingoc_state )
AM_RANGE(0x0000, 0x4fff) AM_ROM
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io, AS_IO, 8, bingoc_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x40, 0x40) AM_DEVWRITE("upd", bingoc_play_w)
diff --git a/src/mame/drivers/bingor.c b/src/mame/drivers/bingor.c
index d057e403fef..d97ee15f8cd 100644
--- a/src/mame/drivers/bingor.c
+++ b/src/mame/drivers/bingor.c
@@ -506,7 +506,7 @@ static READ16_HANDLER( test_r )
}
#endif
-static ADDRESS_MAP_START( bingor_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bingor_map, AS_PROGRAM, 16, bingor_state )
AM_RANGE(0x00000, 0x0ffff) AM_RAM
AM_RANGE(0x90000, 0x9ffff) AM_ROM AM_REGION("gfx", 0)
AM_RANGE(0xa0300, 0xa031f) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBIIII_word_w) AM_BASE_GENERIC(paletteram) //wrong
@@ -514,7 +514,7 @@ static ADDRESS_MAP_START( bingor_map, AS_PROGRAM, 16 )
AM_RANGE(0xe0000, 0xfffff) AM_ROM AM_REGION("boot_prg",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bingor_io, AS_IO, 16 )
+static ADDRESS_MAP_START( bingor_io, AS_IO, 16, bingor_state )
// AM_RANGE(0x0000, 0x00ff) AM_READ( test_r )
AM_RANGE(0x0100, 0x0101) AM_DEVWRITE8("saa", saa1099_data_w, 0x00ff)
AM_RANGE(0x0102, 0x0103) AM_DEVWRITE8("saa", saa1099_control_w, 0x00ff)
@@ -526,7 +526,7 @@ static READ8_HANDLER( test8_r )
return space->machine().rand();
}
-static ADDRESS_MAP_START( pic_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( pic_io_map, AS_IO, 8, bingor_state )
AM_RANGE(0x02, 0x02) AM_READ(test8_r)
AM_RANGE(0x10, 0x10) AM_READNOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/bionicc.c b/src/mame/drivers/bionicc.c
index 45d2273a67e..731f25cc61f 100644
--- a/src/mame/drivers/bionicc.c
+++ b/src/mame/drivers/bionicc.c
@@ -146,7 +146,7 @@ static TIMER_DEVICE_CALLBACK( bionicc_scanline )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, bionicc_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0xfe0000, 0xfe07ff) AM_RAM /* RAM? */
AM_RANGE(0xfe0800, 0xfe0cff) AM_RAM AM_SHARE("spriteram")
@@ -166,7 +166,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, bionicc_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/bishi.c b/src/mame/drivers/bishi.c
index 8d0952bb7a4..f39e87ea481 100644
--- a/src/mame/drivers/bishi.c
+++ b/src/mame/drivers/bishi.c
@@ -145,7 +145,7 @@ static READ16_HANDLER( bishi_K056832_rom_r )
return k056832_bishi_rom_word_r(state->m_k056832, ouroffs, mem_mask);
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, bishi_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x400000, 0x407fff) AM_RAM // Work RAM
AM_RANGE(0x800000, 0x800001) AM_READWRITE(control_r, control_w)
diff --git a/src/mame/drivers/bking.c b/src/mame/drivers/bking.c
index 074651e9a74..0a24f0fab3d 100644
--- a/src/mame/drivers/bking.c
+++ b/src/mame/drivers/bking.c
@@ -82,13 +82,13 @@ static READ8_HANDLER( bking3_ext_check_r )
return 0x31; //no "bad rom.", no "bad ext."
}
-static ADDRESS_MAP_START( bking_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bking_map, AS_PROGRAM, 8, bking_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(bking_playfield_w) AM_BASE_MEMBER(bking_state, m_playfield_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bking_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( bking_io_map, AS_IO, 8, bking_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(bking_xld1_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_WRITE(bking_yld1_w)
@@ -107,7 +107,7 @@ static ADDRESS_MAP_START( bking_io_map, AS_IO, 8 )
AM_RANGE(0x07, 0x1f) AM_READ(bking_pos_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bking3_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( bking3_io_map, AS_IO, 8, bking_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(bking_xld1_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_WRITE(bking_yld1_w)
@@ -131,7 +131,7 @@ static ADDRESS_MAP_START( bking3_io_map, AS_IO, 8 )
AM_RANGE(0x8f, 0x8f) AM_WRITE(bking3_addr_l_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bking_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bking_audio_map, AS_PROGRAM, 8, bking_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x2fff) AM_ROM //only bking3
AM_RANGE(0x4000, 0x43ff) AM_RAM
diff --git a/src/mame/drivers/blackt96.c b/src/mame/drivers/blackt96.c
index 66b2fb232b2..d73e3d3e771 100644
--- a/src/mame/drivers/blackt96.c
+++ b/src/mame/drivers/blackt96.c
@@ -168,7 +168,7 @@ static WRITE16_HANDLER( blackt96_80000_w )
}
-static ADDRESS_MAP_START( blackt96_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( blackt96_map, AS_PROGRAM, 16, blackt96_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("P1_P2") AM_WRITE(blackt96_80000_w)
AM_RANGE(0x0c0000, 0x0c0001) AM_READ_PORT("IN1") AM_WRITE(blackt96_c0000_w) // COIN INPUT
@@ -473,7 +473,7 @@ static WRITE8_HANDLER( blackt96_soundio_port02_w )
}
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, blackt96_state )
AM_RANGE(0x00, 0x00) AM_WRITE( blackt96_soundio_port00_w )
AM_RANGE(0x01, 0x01) AM_READWRITE( blackt96_soundio_port01_r, blackt96_soundio_port01_w )
AM_RANGE(0x02, 0x02) AM_READWRITE( blackt96_soundio_port02_r, blackt96_soundio_port02_w )
diff --git a/src/mame/drivers/bladestl.c b/src/mame/drivers/bladestl.c
index 070ea79f25f..82870421fcb 100644
--- a/src/mame/drivers/bladestl.c
+++ b/src/mame/drivers/bladestl.c
@@ -121,7 +121,7 @@ static WRITE8_DEVICE_HANDLER( bladestl_speech_ctrl_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bladestl_state )
AM_RANGE(0x0000, 0x1fff) AM_DEVREADWRITE("k007342", k007342_r, k007342_w) /* Color RAM + Video RAM */
AM_RANGE(0x2000, 0x21ff) AM_DEVREADWRITE("k007420", k007420_r, k007420_w) /* Sprite RAM */
AM_RANGE(0x2200, 0x23ff) AM_DEVREADWRITE("k007342", k007342_scroll_r, k007342_scroll_w) /* Scroll RAM */
@@ -143,7 +143,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, bladestl_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x1000, 0x1001) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w) /* YM2203 */
AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("upd", bladestl_speech_ctrl_w) /* UPD7759 */
diff --git a/src/mame/drivers/blitz.c b/src/mame/drivers/blitz.c
index 5a21af10cba..5fcae09e29d 100644
--- a/src/mame/drivers/blitz.c
+++ b/src/mame/drivers/blitz.c
@@ -469,7 +469,7 @@ static WRITE8_DEVICE_HANDLER( sound_w )
* Memory Map Information *
*********************************************/
-static ADDRESS_MAP_START( megadpkr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( megadpkr_map, AS_PROGRAM, 8, blitz_state )
// ADDRESS_MAP_GLOBAL_MASK(0x7fff) // seems that hardware is playing with A14 & A15 CPU lines...
AM_RANGE(0x0000, 0x07ff) AM_RAM //AM_SHARE("nvram") /* battery backed RAM */
@@ -590,7 +590,7 @@ ADDRESS_MAP_END
/*
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, blitz_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0080, 0x07ff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/blitz68k.c b/src/mame/drivers/blitz68k.c
index fc73b1d2a3a..be7628ad54b 100644
--- a/src/mame/drivers/blitz68k.c
+++ b/src/mame/drivers/blitz68k.c
@@ -478,7 +478,7 @@ static WRITE16_HANDLER( sound_write_w )
}
#endif
-static ADDRESS_MAP_START( ilpag_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ilpag_map, AS_PROGRAM, 16, blitz68k_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x1fffff) AM_ROM AM_REGION("blitter", 0)
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("nvram")
@@ -505,7 +505,7 @@ static ADDRESS_MAP_START( ilpag_map, AS_PROGRAM, 16 )
// AM_RANGE(0xc00300, 0xc00301) AM_WRITE(irq_callback_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( steaser_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( steaser_map, AS_PROGRAM, 16, blitz68k_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x1fffff) AM_ROM AM_REGION("blitter", 0)
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("nvram")
@@ -575,7 +575,7 @@ static WRITE8_HANDLER( bankrob_mcu2_w )
logerror("%s: mcu2 written with %02x\n", space->machine().describe_context(), data);
}
-static ADDRESS_MAP_START( bankrob_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bankrob_map, AS_PROGRAM, 16, blitz68k_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
@@ -660,7 +660,7 @@ static WRITE8_HANDLER( bankroba_mcu2_w )
logerror("%s: mcu2 written with %02x\n", space->machine().describe_context(), data);
}
-static ADDRESS_MAP_START( bankroba_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bankroba_map, AS_PROGRAM, 16, blitz68k_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
@@ -805,7 +805,7 @@ static WRITE16_HANDLER( cjffruit_mcu_w )
logerror("%s: mcu written with %02x\n", space->machine().describe_context(),data >> 8);
}
-static ADDRESS_MAP_START( cjffruit_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cjffruit_map, AS_PROGRAM, 16, blitz68k_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x400000, 0x41ffff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x480000, 0x4807ff) AM_RAM
@@ -907,7 +907,7 @@ static WRITE16_HANDLER( deucesw2_leds3_w )
}
}
-static ADDRESS_MAP_START( deucesw2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( deucesw2_map, AS_PROGRAM, 16, blitz68k_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x400000, 0x41ffff) AM_RAM
@@ -981,7 +981,7 @@ static WRITE8_HANDLER( dualgame_mcu2_w )
logerror("%s: mcu2 written with %02x\n", space->machine().describe_context(), data);
}
-static ADDRESS_MAP_START( dualgame_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dualgame_map, AS_PROGRAM, 16, blitz68k_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
@@ -1085,7 +1085,7 @@ static READ16_HANDLER( hermit_track_r )
((0xf - ((input_port_read(space->machine(), "TRACK_X") + 0x7) & 0xf)) << 8) ;
}
-static ADDRESS_MAP_START( hermit_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hermit_map, AS_PROGRAM, 16, blitz68k_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
AM_RANGE(0x400000, 0x41ffff) AM_RAM
@@ -1159,7 +1159,7 @@ static WRITE8_HANDLER( maxidbl_mcu2_w )
logerror("%s: mcu2 written with %02x\n", space->machine().describe_context(), data);
}
-static ADDRESS_MAP_START( maxidbl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( maxidbl_map, AS_PROGRAM, 16, blitz68k_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
@@ -1596,7 +1596,7 @@ const mc6845_interface mc6845_intf_irq5 =
crtc_addr /* update address callback */
};
-static ADDRESS_MAP_START( ramdac_map, AS_0, 8 )
+static ADDRESS_MAP_START( ramdac_map, AS_0, 8, blitz68k_state )
AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE_MODERN("ramdac",ramdac_device,ramdac_pal_r,ramdac_rgb666_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/blktiger.c b/src/mame/drivers/blktiger.c
index 2aeb19f8f34..8d9f07a7238 100644
--- a/src/mame/drivers/blktiger.c
+++ b/src/mame/drivers/blktiger.c
@@ -71,7 +71,7 @@ static WRITE8_HANDLER( blktiger_coinlockout_w )
}
-static ADDRESS_MAP_START( blktiger_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( blktiger_map, AS_PROGRAM, 8, blktiger_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_READWRITE(blktiger_bgvideoram_r, blktiger_bgvideoram_w)
@@ -82,7 +82,7 @@ static ADDRESS_MAP_START( blktiger_map, AS_PROGRAM, 8 )
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_SHARE("spriteram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( blktiger_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( blktiger_io_map, AS_IO, 8, blktiger_state )
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)
@@ -99,7 +99,7 @@ static ADDRESS_MAP_START( blktiger_io_map, AS_IO, 8 )
AM_RANGE(0x0e, 0x0e) AM_WRITE(blktiger_screen_layout_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( blktigerbl_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( blktigerbl_io_map, AS_IO, 8, blktiger_state )
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)
@@ -116,7 +116,7 @@ static ADDRESS_MAP_START( blktigerbl_io_map, AS_IO, 8 )
AM_RANGE(0x0e, 0x0e) AM_WRITE(blktiger_screen_layout_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( blktiger_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( blktiger_sound_map, AS_PROGRAM, 8, blktiger_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc800) AM_READ(soundlatch_r)
@@ -124,11 +124,11 @@ static ADDRESS_MAP_START( blktiger_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe002, 0xe003) AM_DEVREADWRITE("ym2", ym2203_r, ym2203_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( blktiger_mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( blktiger_mcu_map, AS_PROGRAM, 8, blktiger_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( blktiger_mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( blktiger_mcu_io_map, AS_IO, 8, blktiger_state )
AM_RANGE(MCS51_PORT_P0,MCS51_PORT_P0) AM_READWRITE(blktiger_from_main_r,blktiger_to_main_w)
AM_RANGE(MCS51_PORT_P1,MCS51_PORT_P3) AM_WRITENOP /* other ports unknown */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/blmbycar.c b/src/mame/drivers/blmbycar.c
index f08ae0e2118..a729742f724 100644
--- a/src/mame/drivers/blmbycar.c
+++ b/src/mame/drivers/blmbycar.c
@@ -101,7 +101,7 @@ static READ16_HANDLER( blmbycar_opt_wheel_r )
***************************************************************************/
-static ADDRESS_MAP_START( blmbycar_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( blmbycar_map, AS_PROGRAM, 16, blmbycar_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0xfec000, 0xfeffff) AM_RAM
AM_RANGE(0x100000, 0x103fff) AM_WRITEONLY // ???
@@ -136,7 +136,7 @@ static READ16_HANDLER( waterball_unk_r )
return state->m_retvalue;
}
-static ADDRESS_MAP_START( watrball_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( watrball_map, AS_PROGRAM, 16, blmbycar_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0xfec000, 0xfeffff) AM_RAM
AM_RANGE(0x100000, 0x103fff) AM_WRITEONLY // ???
diff --git a/src/mame/drivers/blockade.c b/src/mame/drivers/blockade.c
index de1a1b3f68d..c2548ca699e 100644
--- a/src/mame/drivers/blockade.c
+++ b/src/mame/drivers/blockade.c
@@ -120,13 +120,13 @@ static WRITE8_HANDLER( blockade_coin_latch_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, blockade_state )
AM_RANGE(0x0000, 0x07ff) AM_ROM AM_MIRROR(0x6000)
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(blockade_videoram_w) AM_BASE_MEMBER(blockade_state, m_videoram) AM_MIRROR(0x6c00)
AM_RANGE(0x9000, 0x90ff) AM_RAM AM_MIRROR(0x6f00)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( main_io_map, AS_IO, 8, blockade_state )
AM_RANGE(0x01, 0x01) AM_READWRITE(blockade_input_port_0_r, blockade_coin_latch_w)
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_DEVWRITE("discrete", blockade_sound_freq_w)
diff --git a/src/mame/drivers/blockhl.c b/src/mame/drivers/blockhl.c
index 9066cd45104..4ac4ecbd265 100644
--- a/src/mame/drivers/blockhl.c
+++ b/src/mame/drivers/blockhl.c
@@ -96,7 +96,7 @@ static WRITE8_HANDLER( k052109_051960_w )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, blockhl_state )
AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w)
AM_RANGE(0x1f88, 0x1f88) AM_WRITE(blockhl_sh_irqtrigger_w)
AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE(watchdog_reset_w)
@@ -112,7 +112,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, blockhl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/blockout.c b/src/mame/drivers/blockout.c
index 6af402f2e03..96e6e1fb1c6 100644
--- a/src/mame/drivers/blockout.c
+++ b/src/mame/drivers/blockout.c
@@ -105,7 +105,7 @@ static WRITE16_HANDLER( blockout_irq5_ack_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, blockout_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("P1")
AM_RANGE(0x100002, 0x100003) AM_READ_PORT("P2")
@@ -125,7 +125,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0x280200, 0x2805ff) AM_RAM_WRITE(blockout_paletteram_w) AM_BASE_MEMBER(blockout_state, m_paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( agress_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( agress_map, AS_PROGRAM, 16, blockout_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("P1")
AM_RANGE(0x100002, 0x100003) AM_READ_PORT("P2")
@@ -145,7 +145,7 @@ static ADDRESS_MAP_START( agress_map, AS_PROGRAM, 16 )
AM_RANGE(0x280200, 0x2805ff) AM_RAM_WRITE(blockout_paletteram_w) AM_BASE_MEMBER(blockout_state, m_paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, blockout_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/bloodbro.c b/src/mame/drivers/bloodbro.c
index 6fa4f1e520e..6d42868b37e 100644
--- a/src/mame/drivers/bloodbro.c
+++ b/src/mame/drivers/bloodbro.c
@@ -115,7 +115,7 @@ DIP locations verified for:
/* Memory Maps */
-static ADDRESS_MAP_START( bloodbro_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bloodbro_map, AS_PROGRAM, 16, bloodbro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x08afff) AM_RAM
AM_RANGE(0x08b000, 0x08bfff) AM_RAM AM_BASE_SIZE_MEMBER(bloodbro_state, m_spriteram, m_spriteram_size)
@@ -137,7 +137,7 @@ static ADDRESS_MAP_START( bloodbro_map, AS_PROGRAM, 16 )
AM_RANGE(0x0e0004, 0x0e0005) AM_READ_PORT("IN1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( weststry_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( weststry_map, AS_PROGRAM, 16, bloodbro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x08afff) AM_RAM
AM_RANGE(0x08b000, 0x08bfff) AM_RAM AM_BASE_SIZE_MEMBER(bloodbro_state, m_spriteram, m_spriteram_size)
diff --git a/src/mame/drivers/blstroid.c b/src/mame/drivers/blstroid.c
index 6895c6f21ed..9916bbf8ae2 100644
--- a/src/mame/drivers/blstroid.c
+++ b/src/mame/drivers/blstroid.c
@@ -91,7 +91,7 @@ static READ16_HANDLER( inputs_r )
*************************************/
/* full map verified from schematics */
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, blstroid_state )
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)
diff --git a/src/mame/drivers/blueprnt.c b/src/mame/drivers/blueprnt.c
index 41a6744514c..0c1aab0b88e 100644
--- a/src/mame/drivers/blueprnt.c
+++ b/src/mame/drivers/blueprnt.c
@@ -88,7 +88,7 @@ static WRITE8_HANDLER( blueprnt_coin_counter_w )
*
*************************************/
-static ADDRESS_MAP_START( blueprnt_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( blueprnt_map, AS_PROGRAM, 8, blueprnt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // service mode checks for 8 chips = 64K
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(blueprnt_videoram_w) AM_MIRROR(0x400) AM_BASE_MEMBER(blueprnt_state, m_videoram)
@@ -102,7 +102,7 @@ static ADDRESS_MAP_START( blueprnt_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf3ff) AM_RAM_WRITE(blueprnt_colorram_w) AM_BASE_MEMBER(blueprnt_state, m_colorram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, blueprnt_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x2000, 0x2fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
diff --git a/src/mame/drivers/bmcbowl.c b/src/mame/drivers/bmcbowl.c
index b48a599a216..d812c2fc0ca 100644
--- a/src/mame/drivers/bmcbowl.c
+++ b/src/mame/drivers/bmcbowl.c
@@ -323,7 +323,7 @@ static NVRAM_HANDLER( bmcbowl )
}
-static ADDRESS_MAP_START( bmcbowl_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bmcbowl_mem, AS_PROGRAM, 16, bmcbowl_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x090000, 0x090001) AM_WRITE(bmc_RAMDAC_offset_w)
diff --git a/src/mame/drivers/bmcpokr.c b/src/mame/drivers/bmcpokr.c
index 7a322c78b86..fed4e1fd641 100644
--- a/src/mame/drivers/bmcpokr.c
+++ b/src/mame/drivers/bmcpokr.c
@@ -56,7 +56,7 @@ public:
-static ADDRESS_MAP_START( bmcpokr_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bmcpokr_mem, AS_PROGRAM, 16, bmcpokr_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/bnstars.c b/src/mame/drivers/bnstars.c
index c96624d6711..21d052d2fc8 100644
--- a/src/mame/drivers/bnstars.c
+++ b/src/mame/drivers/bnstars.c
@@ -1261,7 +1261,7 @@ static WRITE32_HANDLER( bnstars1_mahjong_select_w )
// printf("%08x\n",state->m_bnstars1_mahjong_select);
}
-static ADDRESS_MAP_START( bnstars_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( bnstars_map, AS_PROGRAM, 32, bnstars_state )
AM_RANGE(0x00000000, 0x001fffff) AM_ROM
AM_RANGE(0xfcc00004, 0xfcc00007) AM_READ( bnstars1_r )
@@ -1301,7 +1301,7 @@ static ADDRESS_MAP_START( bnstars_map, AS_PROGRAM, 32 )
ADDRESS_MAP_END
#if 0
-static ADDRESS_MAP_START( bnstars_z80_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bnstars_z80_map, AS_PROGRAM, 8, bnstars_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
ADDRESS_MAP_END
#endif
diff --git a/src/mame/drivers/bogeyman.c b/src/mame/drivers/bogeyman.c
index 9bcd5c67ee4..fe101094980 100644
--- a/src/mame/drivers/bogeyman.c
+++ b/src/mame/drivers/bogeyman.c
@@ -47,7 +47,7 @@ static WRITE8_HANDLER( bogeyman_8910_control_w )
/* Memory Map */
-static ADDRESS_MAP_START( bogeyman_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bogeyman_map, AS_PROGRAM, 8, bogeyman_state )
AM_RANGE(0x0000, 0x17ff) AM_RAM
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(bogeyman_videoram2_w) AM_BASE_MEMBER(bogeyman_state, m_videoram2)
AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(bogeyman_colorram2_w) AM_BASE_MEMBER(bogeyman_state, m_colorram2)
diff --git a/src/mame/drivers/bombjack.c b/src/mame/drivers/bombjack.c
index b11d475985b..1f64375db07 100644
--- a/src/mame/drivers/bombjack.c
+++ b/src/mame/drivers/bombjack.c
@@ -137,7 +137,7 @@ static WRITE8_HANDLER( irq_mask_w )
state->m_nmi_mask = data & 1;
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bombjack_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(bombjack_videoram_w) AM_BASE_MEMBER(bombjack_state, m_videoram)
@@ -158,13 +158,13 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xdfff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, bombjack_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ(bombjack_soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( audio_io_map, AS_IO, 8, bombjack_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x10, 0x11) AM_DEVWRITE("ay2", ay8910_address_data_w)
diff --git a/src/mame/drivers/boogwing.c b/src/mame/drivers/boogwing.c
index fcce6388f59..27bbbff7b09 100644
--- a/src/mame/drivers/boogwing.c
+++ b/src/mame/drivers/boogwing.c
@@ -90,7 +90,7 @@
#include "video/decocomn.h"
#include "video/decospr.h"
-static ADDRESS_MAP_START( boogwing_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( boogwing_map, AS_PROGRAM, 16, boogwing_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
@@ -128,7 +128,7 @@ static ADDRESS_MAP_START( boogwing_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, boogwing_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_NOP
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/bottom9.c b/src/mame/drivers/bottom9.c
index dfcdbd14cff..e698361c0e5 100644
--- a/src/mame/drivers/bottom9.c
+++ b/src/mame/drivers/bottom9.c
@@ -174,7 +174,7 @@ static WRITE8_HANDLER( sound_bank_w )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bottom9_state )
AM_RANGE(0x0000, 0x07ff) AM_READWRITE(bottom9_bankedram1_r, bottom9_bankedram1_w)
AM_RANGE(0x1f80, 0x1f80) AM_WRITE(bankswitch_w)
AM_RANGE(0x1f90, 0x1f90) AM_WRITE(bottom9_1f90_w)
@@ -194,7 +194,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, bottom9_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_WRITE(sound_bank_w)
diff --git a/src/mame/drivers/boxer.c b/src/mame/drivers/boxer.c
index 3ff470f1ffb..eb9097beac4 100644
--- a/src/mame/drivers/boxer.c
+++ b/src/mame/drivers/boxer.c
@@ -289,7 +289,7 @@ static WRITE8_HANDLER( boxer_led_w )
*
*************************************/
-static ADDRESS_MAP_START( boxer_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( boxer_map, AS_PROGRAM, 8, boxer_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x03ff) AM_RAM AM_BASE_MEMBER(boxer_state, m_tile_ram)
diff --git a/src/mame/drivers/brkthru.c b/src/mame/drivers/brkthru.c
index ea11201871b..a4659974cf9 100644
--- a/src/mame/drivers/brkthru.c
+++ b/src/mame/drivers/brkthru.c
@@ -115,7 +115,7 @@ static INPUT_CHANGED( coin_inserted )
*
*************************************/
-static ADDRESS_MAP_START( brkthru_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( brkthru_map, AS_PROGRAM, 8, brkthru_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM_WRITE(brkthru_fgram_w) AM_BASE_SIZE_MEMBER(brkthru_state, m_fg_videoram, m_fg_videoram_size)
AM_RANGE(0x0400, 0x0bff) AM_RAM
AM_RANGE(0x0c00, 0x0fff) AM_RAM_WRITE(brkthru_bgram_w) AM_BASE_SIZE_MEMBER(brkthru_state, m_videoram, m_videoram_size)
@@ -133,7 +133,7 @@ static ADDRESS_MAP_START( brkthru_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* same as brktrhu, but xor 0x1000 below 8k */
-static ADDRESS_MAP_START( darwin_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( darwin_map, AS_PROGRAM, 8, brkthru_state )
AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(brkthru_fgram_w) AM_BASE_SIZE_MEMBER(brkthru_state, m_fg_videoram, m_fg_videoram_size)
AM_RANGE(0x1400, 0x1bff) AM_RAM
AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(brkthru_bgram_w) AM_BASE_SIZE_MEMBER(brkthru_state, m_videoram, m_videoram_size)
@@ -151,7 +151,7 @@ static ADDRESS_MAP_START( darwin_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, brkthru_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("ym2", ym3526_w)
AM_RANGE(0x4000, 0x4000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/bsktball.c b/src/mame/drivers/bsktball.c
index 6fd207218eb..2b99e702db7 100644
--- a/src/mame/drivers/bsktball.c
+++ b/src/mame/drivers/bsktball.c
@@ -73,7 +73,7 @@ static PALETTE_INIT( bsktball )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bsktball_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM /* Zero Page RAM */
AM_RANGE(0x0800, 0x0800) AM_READ(bsktball_in0_r)
diff --git a/src/mame/drivers/btime.c b/src/mame/drivers/btime.c
index f0708e42b99..86bc8982983 100644
--- a/src/mame/drivers/btime.c
+++ b/src/mame/drivers/btime.c
@@ -355,7 +355,7 @@ static WRITE8_HANDLER( disco_w )
}
-static ADDRESS_MAP_START( btime_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( btime_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0xffff) AM_WRITE(btime_w) /* override the following entries to */
/* support ROM decryption */
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_MEMBER(btime_state, m_rambase)
@@ -372,7 +372,7 @@ static ADDRESS_MAP_START( btime_map, AS_PROGRAM, 8 )
AM_RANGE(0xb000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cookrace_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cookrace_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_BASE_MEMBER(btime_state, m_rambase)
AM_RANGE(0x0500, 0x3fff) AM_ROM
AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_BASE_SIZE_MEMBER(btime_state, m_videoram, m_videoram_size)
@@ -392,7 +392,7 @@ static ADDRESS_MAP_START( cookrace_map, AS_PROGRAM, 8 )
AM_RANGE(0xfff9, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tisland_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tisland_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0xffff) AM_WRITE(tisland_w) /* override the following entries to */
/* support ROM decryption */
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_MEMBER(btime_state, m_rambase)
@@ -410,7 +410,7 @@ static ADDRESS_MAP_START( tisland_map, AS_PROGRAM, 8 )
AM_RANGE(0x9000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( zoar_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( zoar_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0xffff) AM_WRITE(zoar_w) /* override the following entries to */
/* support ROM decryption */
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_MEMBER(btime_state, m_rambase)
@@ -430,7 +430,7 @@ static ADDRESS_MAP_START( zoar_map, AS_PROGRAM, 8 )
AM_RANGE(0xd000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lnc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lnc_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0xffff) AM_WRITE(lnc_w) /* override the following entries to */
/* support ROM decryption */
AM_RANGE(0x0000, 0x3bff) AM_RAM AM_BASE_MEMBER(btime_state, m_rambase)
@@ -447,7 +447,7 @@ static ADDRESS_MAP_START( lnc_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mmonkey_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mmonkey_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0xffff) AM_WRITE(mmonkey_w) /* override the following entries to */
/* support ROM decryption */
AM_RANGE(0x0000, 0x3bff) AM_RAM AM_BASE_MEMBER(btime_state, m_rambase)
@@ -464,7 +464,7 @@ static ADDRESS_MAP_START( mmonkey_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bnj_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bnj_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_MEMBER(btime_state, m_rambase)
AM_RANGE(0x1000, 0x1000) AM_READ_PORT("DSW1")
AM_RANGE(0x1001, 0x1001) AM_READ_PORT("DSW2") AM_WRITE(bnj_video_control_w)
@@ -482,7 +482,7 @@ static ADDRESS_MAP_START( bnj_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( disco_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( disco_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0xffff) AM_WRITE(disco_w) /* override the following entries to */
/* support ROM decryption */
AM_RANGE(0x0000, 0x04ff) AM_RAM AM_BASE_MEMBER(btime_state, m_rambase)
@@ -501,7 +501,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x1c00) AM_RAM AM_BASE_MEMBER(btime_state, m_audio_rambase)
AM_RANGE(0x2000, 0x3fff) AM_DEVWRITE("ay1", ay8910_data_w)
AM_RANGE(0x4000, 0x5fff) AM_DEVWRITE("ay1", ay8910_address_w)
@@ -512,7 +512,7 @@ static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_MIRROR(0x1000) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( disco_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( disco_audio_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x4000, 0x4fff) AM_DEVWRITE("ay1", ay8910_data_w)
AM_RANGE(0x5000, 0x5fff) AM_DEVWRITE("ay1", ay8910_address_w)
diff --git a/src/mame/drivers/bublbobl.c b/src/mame/drivers/bublbobl.c
index a6e29a0e27a..0648da2664d 100644
--- a/src/mame/drivers/bublbobl.c
+++ b/src/mame/drivers/bublbobl.c
@@ -284,7 +284,7 @@ TODO:
*
*************************************/
-static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, bublbobl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdcff) AM_RAM AM_BASE_SIZE_MEMBER(bublbobl_state, m_videoram, m_videoram_size)
@@ -298,12 +298,12 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8 )
AM_RANGE(0xfc00, 0xffff) AM_RAM AM_BASE_MEMBER(bublbobl_state, m_mcu_sharedram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8, bublbobl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, bublbobl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
@@ -314,7 +314,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_ROM // space for diagnostic ROM?
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, bublbobl_state )
AM_RANGE(0x0000, 0x0000) AM_READWRITE(bublbobl_mcu_ddr1_r, bublbobl_mcu_ddr1_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(bublbobl_mcu_ddr2_r, bublbobl_mcu_ddr2_w)
AM_RANGE(0x0002, 0x0002) AM_READWRITE(bublbobl_mcu_port1_r, bublbobl_mcu_port1_w)
@@ -328,7 +328,7 @@ static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
// The 68705 is from a bootleg, the original MCU is a 6801U4
-static ADDRESS_MAP_START( bootlegmcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bootlegmcu_map, AS_PROGRAM, 8, bublbobl_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x000, 0x000) AM_READWRITE(bublbobl_68705_port_a_r, bublbobl_68705_port_a_w)
AM_RANGE(0x001, 0x001) AM_READWRITE(bublbobl_68705_port_b_r, bublbobl_68705_port_b_w)
@@ -340,7 +340,7 @@ static ADDRESS_MAP_START( bootlegmcu_map, AS_PROGRAM, 8 )
AM_RANGE(0x080, 0x7ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bootleg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bootleg_map, AS_PROGRAM, 8, bublbobl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdcff) AM_RAM AM_BASE_SIZE_MEMBER(bublbobl_state, m_videoram, m_videoram_size)
@@ -364,7 +364,7 @@ static ADDRESS_MAP_START( bootleg_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tokio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tokio_map, AS_PROGRAM, 8, bublbobl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdcff) AM_RAM AM_BASE_SIZE_MEMBER(bublbobl_state, m_videoram, m_videoram_size)
@@ -384,12 +384,12 @@ static ADDRESS_MAP_START( tokio_map, AS_PROGRAM, 8 )
AM_RANGE(0xfe00, 0xfe00) AM_READ(tokio_mcu_r) AM_WRITENOP // ???
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tokio_slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tokio_slave_map, AS_PROGRAM, 8, bublbobl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x97ff) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tokio_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tokio_sound_map, AS_PROGRAM, 8, bublbobl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_READWRITE(soundlatch_r, bublbobl_sound_status_w)
diff --git a/src/mame/drivers/buggychl.c b/src/mame/drivers/buggychl.c
index 1b9364813c4..ac6b3d63175 100644
--- a/src/mame/drivers/buggychl.c
+++ b/src/mame/drivers/buggychl.c
@@ -131,7 +131,7 @@ static WRITE8_HANDLER( sound_enable_w )
-static ADDRESS_MAP_START( buggychl_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( buggychl_map, AS_PROGRAM, 8, buggychl_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM /* A22-04 (23) */
AM_RANGE(0x4000, 0x7fff) AM_ROM /* A22-05 (22) */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* 6116 SRAM (36) */
@@ -163,7 +163,7 @@ static ADDRESS_MAP_START( buggychl_map, AS_PROGRAM, 8 )
AM_RANGE(0xdc06, 0xdc06) AM_WRITE(buggychl_bg_scrollx_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, buggychl_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4801) AM_DEVWRITE("ay1", ay8910_address_data_w)
diff --git a/src/mame/drivers/buster.c b/src/mame/drivers/buster.c
index f32813b0892..c6f50d62154 100644
--- a/src/mame/drivers/buster.c
+++ b/src/mame/drivers/buster.c
@@ -56,7 +56,7 @@ static READ8_HANDLER( test_r )
}
#endif
-static ADDRESS_MAP_START( mainmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mainmap, AS_PROGRAM, 8, buster_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM// AM_BASE_MEMBER(buster_state, m_rom)
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("wram")
AM_RANGE(0x5000, 0x5fff) AM_RAM AM_BASE_MEMBER(buster_state, m_vram)
diff --git a/src/mame/drivers/bwidow.c b/src/mame/drivers/bwidow.c
index 2709f6efdf8..7943a0eda7a 100644
--- a/src/mame/drivers/bwidow.c
+++ b/src/mame/drivers/bwidow.c
@@ -362,7 +362,7 @@ static WRITE8_HANDLER( irq_ack_w )
*
*************************************/
-static ADDRESS_MAP_START( bwidow_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bwidow_map, AS_PROGRAM, 8, bwidow_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x2000, 0x27ff) AM_RAM AM_BASE(&avgdvg_vectorram) AM_SIZE(&avgdvg_vectorram_size) AM_REGION("maincpu", 0x2000)
AM_RANGE(0x2800, 0x5fff) AM_ROM
@@ -383,7 +383,7 @@ static ADDRESS_MAP_START( bwidow_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spacduel_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spacduel_map, AS_PROGRAM, 8, bwidow_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0800, 0x0800) AM_READ_PORT("IN0")
AM_RANGE(0x0900, 0x0907) AM_READ(spacduel_IN3_r) /* IN1 */
diff --git a/src/mame/drivers/bwing.c b/src/mame/drivers/bwing.c
index c32c786db7c..f0ae3c28ce9 100644
--- a/src/mame/drivers/bwing.c
+++ b/src/mame/drivers/bwing.c
@@ -152,7 +152,7 @@ static WRITE8_HANDLER( bwp2_ctrl_w )
// CPU Memory Maps
// Main CPU
-static ADDRESS_MAP_START( bwp1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bwp1_map, AS_PROGRAM, 8, bwing_state )
AM_RANGE(0x1b00, 0x1b07) AM_READ(bwp1_io_r)
AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(bwp12_sharedram1_w) AM_BASE_MEMBER(bwing_state, m_bwp1_sharedram1)
AM_RANGE(0x0800, 0x0fff) AM_RAM
@@ -168,7 +168,7 @@ ADDRESS_MAP_END
// Sub CPU
-static ADDRESS_MAP_START( bwp2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bwp2_map, AS_PROGRAM, 8, bwing_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(bwp12_sharedram1_w) AM_BASE_MEMBER(bwing_state, m_bwp2_sharedram1)
AM_RANGE(0x0800, 0x0fff) AM_RAM
AM_RANGE(0x1800, 0x1803) AM_WRITE(bwp2_ctrl_w)
@@ -177,7 +177,7 @@ ADDRESS_MAP_END
// Sound CPU
-static ADDRESS_MAP_START( bwp3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bwp3_map, AS_PROGRAM, 8, bwing_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x0200) AM_DEVWRITE("dac", dac_signed_w)
AM_RANGE(0x1000, 0x1000) AM_WRITE(bwp3_nmiack_w)
@@ -191,7 +191,7 @@ static ADDRESS_MAP_START( bwp3_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bwp3_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( bwp3_io_map, AS_IO, 8, bwing_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("VBLANK") AM_WRITE(bwp3_u8F_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/bzone.c b/src/mame/drivers/bzone.c
index ebd342d3d53..940b11b7eeb 100644
--- a/src/mame/drivers/bzone.c
+++ b/src/mame/drivers/bzone.c
@@ -296,7 +296,7 @@ static WRITE8_DEVICE_HANDLER( redbaron_joysound_w )
*
*************************************/
-static ADDRESS_MAP_START( bzone_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bzone_map, AS_PROGRAM, 8, bzone_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0800, 0x0800) AM_READ_PORT("IN0")
@@ -316,7 +316,7 @@ static ADDRESS_MAP_START( bzone_map, AS_PROGRAM, 8 )
AM_RANGE(0x3000, 0x7fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( redbaron_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( redbaron_map, AS_PROGRAM, 8, bzone_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0800, 0x0800) AM_READ_PORT("IN0")
diff --git a/src/mame/drivers/cabal.c b/src/mame/drivers/cabal.c
index 4a584b230bd..605c9e1c59d 100644
--- a/src/mame/drivers/cabal.c
+++ b/src/mame/drivers/cabal.c
@@ -119,7 +119,7 @@ static WRITE16_HANDLER( cabalbl_sound_irq_trigger_word_w )
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, cabal_state )
AM_RANGE(0x00000, 0x3ffff) AM_ROM
AM_RANGE(0x40000, 0x437ff) AM_RAM
AM_RANGE(0x43800, 0x43fff) AM_RAM AM_BASE_SIZE_MEMBER(cabal_state, m_spriteram, m_spriteram_size)
@@ -138,7 +138,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0xe8000, 0xe800d) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cabalbl_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cabalbl_main_map, AS_PROGRAM, 16, cabal_state )
AM_RANGE(0x00000, 0x3ffff) AM_ROM
AM_RANGE(0x40000, 0x437ff) AM_RAM
AM_RANGE(0x43800, 0x43fff) AM_RAM AM_BASE_SIZE_MEMBER(cabal_state, m_spriteram, m_spriteram_size)
@@ -182,7 +182,7 @@ static WRITE8_HANDLER( cabalbl_coin_w )
//data & 0x40? video enable?
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cabal_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4001, 0x4001) AM_WRITE(seibu_irq_clear_w)
@@ -201,7 +201,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cabalbl_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cabalbl_sound_map, AS_PROGRAM, 8, cabal_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x2fff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_WRITE(soundlatch3_w)
@@ -227,21 +227,21 @@ static WRITE8_DEVICE_HANDLER( cabalbl_adpcm_w )
msm5205_vclk_w(device,0);
}
-static ADDRESS_MAP_START( cabalbl_talk1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cabalbl_talk1_map, AS_PROGRAM, 8, cabal_state )
AM_RANGE(0x0000, 0xffff) AM_ROM AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cabalbl_talk1_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( cabalbl_talk1_portmap, AS_IO, 8, cabal_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch3_r)
AM_RANGE(0x01, 0x01) AM_DEVWRITE("msm1", cabalbl_adpcm_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cabalbl_talk2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cabalbl_talk2_map, AS_PROGRAM, 8, cabal_state )
AM_RANGE(0x0000, 0xffff) AM_ROM AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cabalbl_talk2_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( cabalbl_talk2_portmap, AS_IO, 8, cabal_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch4_r)
AM_RANGE(0x01, 0x01) AM_DEVWRITE("msm2", cabalbl_adpcm_w)
diff --git a/src/mame/drivers/cabaret.c b/src/mame/drivers/cabaret.c
index 45b72ddd797..8787ba9012f 100644
--- a/src/mame/drivers/cabaret.c
+++ b/src/mame/drivers/cabaret.c
@@ -153,12 +153,12 @@ static WRITE8_HANDLER( cabaret_nmi_and_coins_w )
-static ADDRESS_MAP_START( cabaret_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cabaret_map, AS_PROGRAM, 8, cabaret_state )
AM_RANGE( 0x00000, 0x0efff ) AM_ROM
AM_RANGE( 0x0f000, 0x0ffff ) AM_RAM AM_REGION("maincpu", 0xf000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cabaret_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( cabaret_portmap, AS_IO, 8, cabaret_state )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // Z180 internal regs
AM_RANGE( 0x0080, 0x0080 ) AM_READ_PORT( "BUTTONS2" )
diff --git a/src/mame/drivers/calchase.c b/src/mame/drivers/calchase.c
index 17f149679a1..16ac04005e2 100644
--- a/src/mame/drivers/calchase.c
+++ b/src/mame/drivers/calchase.c
@@ -527,7 +527,7 @@ static WRITE16_DEVICE_HANDLER( calchase_dac_w )
dac_data_16_w(device, ((data & 0xfff) << 4));
}
-static ADDRESS_MAP_START( calchase_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( calchase_map, AS_PROGRAM, 32, calchase_state )
AM_RANGE(0x00000000, 0x0009ffff) AM_RAM
AM_RANGE(0x000a0000, 0x000bffff) AM_RAM // VGA VRAM
AM_RANGE(0x000c0000, 0x000c7fff) AM_RAM AM_REGION("video_bios", 0)
@@ -562,7 +562,7 @@ static ADDRESS_MAP_START( calchase_map, AS_PROGRAM, 32 )
AM_RANGE(0xfffe0000, 0xffffffff) AM_ROM AM_REGION("bios", 0) /* System BIOS */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( calchase_io, AS_IO, 32)
+static ADDRESS_MAP_START( calchase_io, AS_IO, 32, calchase_state )
AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_r, i8237_w, 0xffffffff)
AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8("pit8254", pit8253_r, pit8253_w, 0xffffffff)
diff --git a/src/mame/drivers/calomega.c b/src/mame/drivers/calomega.c
index b5e8e2e9e38..de2ac1af629 100644
--- a/src/mame/drivers/calomega.c
+++ b/src/mame/drivers/calomega.c
@@ -835,7 +835,7 @@ static WRITE8_DEVICE_HANDLER( lamps_905_w )
* Memory map information *
*************************************************/
-static ADDRESS_MAP_START( sys903_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sys903_map, AS_PROGRAM, 8, calomega_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x0840, 0x0841) AM_DEVWRITE("ay8912", ay8910_address_data_w)
@@ -850,7 +850,7 @@ static ADDRESS_MAP_START( sys903_map, AS_PROGRAM, 8 )
AM_RANGE(0x1800, 0x3fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( s903mod_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( s903mod_map, AS_PROGRAM, 8, calomega_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x0840, 0x0841) AM_DEVWRITE("ay8912", ay8910_address_data_w)
@@ -863,7 +863,7 @@ static ADDRESS_MAP_START( s903mod_map, AS_PROGRAM, 8 )
AM_RANGE(0x1800, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sys905_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sys905_map, AS_PROGRAM, 8, calomega_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x1040, 0x1041) AM_DEVWRITE("ay8912", ay8910_address_data_w)
@@ -876,7 +876,7 @@ static ADDRESS_MAP_START( sys905_map, AS_PROGRAM, 8 )
AM_RANGE(0x2800, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sys906_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sys906_map, AS_PROGRAM, 8, calomega_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x280c, 0x280f) AM_DEVREADWRITE_MODERN("pia0", pia6821_device, read, write)
AM_RANGE(0x2824, 0x2827) AM_DEVREADWRITE_MODERN("pia1", pia6821_device, read, write)
diff --git a/src/mame/drivers/calorie.c b/src/mame/drivers/calorie.c
index da9c446e95f..69ed4d55c77 100644
--- a/src/mame/drivers/calorie.c
+++ b/src/mame/drivers/calorie.c
@@ -237,7 +237,7 @@ static WRITE8_HANDLER( bogus_w )
*
*************************************/
-static ADDRESS_MAP_START( calorie_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( calorie_map, AS_PROGRAM, 8, calorie_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
@@ -254,13 +254,13 @@ static ADDRESS_MAP_START( calorie_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( calorie_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( calorie_sound_map, AS_PROGRAM, 8, calorie_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xc000, 0xc000) AM_READ(calorie_soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( calorie_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( calorie_sound_io_map, AS_IO, 8, calorie_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x01, 0x01) AM_DEVREAD("ay1", ay8910_r)
diff --git a/src/mame/drivers/canyon.c b/src/mame/drivers/canyon.c
index ead69949f9a..f03f547e86b 100644
--- a/src/mame/drivers/canyon.c
+++ b/src/mame/drivers/canyon.c
@@ -105,7 +105,7 @@ static WRITE8_HANDLER( canyon_led_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, canyon_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x100) AM_RAM
AM_RANGE(0x0400, 0x0401) AM_DEVWRITE("discrete", canyon_motor_w)
diff --git a/src/mame/drivers/capbowl.c b/src/mame/drivers/capbowl.c
index 63fdc669270..09c353e4e3b 100644
--- a/src/mame/drivers/capbowl.c
+++ b/src/mame/drivers/capbowl.c
@@ -229,7 +229,7 @@ void capbowl_state::init_nvram(nvram_device &nvram, void *base, size_t size)
*
*************************************/
-static ADDRESS_MAP_START( capbowl_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( capbowl_map, AS_PROGRAM, 8, capbowl_state )
AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0x4000) AM_WRITEONLY AM_BASE_MEMBER(capbowl_state, m_rowaddress)
AM_RANGE(0x4800, 0x4800) AM_WRITE(capbowl_rom_select_w)
@@ -243,7 +243,7 @@ static ADDRESS_MAP_START( capbowl_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bowlrama_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bowlrama_map, AS_PROGRAM, 8, capbowl_state )
AM_RANGE(0x0000, 0x001f) AM_READWRITE(bowlrama_blitter_r, bowlrama_blitter_w)
AM_RANGE(0x4000, 0x4000) AM_WRITEONLY AM_BASE_MEMBER(capbowl_state, m_rowaddress)
AM_RANGE(0x5000, 0x57ff) AM_RAM AM_SHARE("nvram")
@@ -263,7 +263,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, capbowl_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x1000, 0x1001) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0x2000, 0x2000) AM_WRITENOP /* Not hooked up according to the schematics */
diff --git a/src/mame/drivers/cardline.c b/src/mame/drivers/cardline.c
index 627611187bb..6cd64c629cd 100644
--- a/src/mame/drivers/cardline.c
+++ b/src/mame/drivers/cardline.c
@@ -111,11 +111,11 @@ static WRITE8_HANDLER(lamps_w)
output_set_lamp_value(7,(data >> 7) & 1);
}
-static ADDRESS_MAP_START( mem_prg, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mem_prg, AS_PROGRAM, 8, cardline_state )
AM_RANGE(0x0000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mem_io, AS_IO, 8 )
+static ADDRESS_MAP_START( mem_io, AS_IO, 8, cardline_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2003, 0x2003) AM_READ_PORT("IN0")
AM_RANGE(0x2005, 0x2005) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/carjmbre.c b/src/mame/drivers/carjmbre.c
index e75ddc16762..61a4e2d60bd 100644
--- a/src/mame/drivers/carjmbre.c
+++ b/src/mame/drivers/carjmbre.c
@@ -58,7 +58,7 @@ static WRITE8_HANDLER( nmi_mask_w )
}
-static ADDRESS_MAP_START( carjmbre_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( carjmbre_map, AS_PROGRAM, 8, carjmbre_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
// AM_RANGE(0x8800, 0x8800) AM_READNOP // watchdog?
@@ -75,13 +75,13 @@ static ADDRESS_MAP_START( carjmbre_map, AS_PROGRAM, 8 )
AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW") AM_WRITE(soundlatch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( carjmbre_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( carjmbre_sound_map, AS_PROGRAM, 8, carjmbre_state )
AM_RANGE(0x0000, 0x0fff) AM_MIRROR(0x1000) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( carjmbre_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( carjmbre_sound_io_map, AS_IO, 8, carjmbre_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
AM_RANGE(0x10, 0x10) AM_WRITENOP //?? written on init/0xff sound command reset
diff --git a/src/mame/drivers/carpolo.c b/src/mame/drivers/carpolo.c
index f7865d5ca6d..7c3ac74eb0e 100644
--- a/src/mame/drivers/carpolo.c
+++ b/src/mame/drivers/carpolo.c
@@ -32,7 +32,7 @@
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, carpolo_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x3000, 0x30ff) AM_WRITEONLY AM_BASE_MEMBER(carpolo_state, m_alpharam)
AM_RANGE(0x4000, 0x400f) AM_WRITEONLY AM_BASE_MEMBER(carpolo_state, m_spriteram)
diff --git a/src/mame/drivers/carrera.c b/src/mame/drivers/carrera.c
index 7e61213ff65..c5d538f0c5c 100644
--- a/src/mame/drivers/carrera.c
+++ b/src/mame/drivers/carrera.c
@@ -62,7 +62,7 @@ public:
};
-static ADDRESS_MAP_START( carrera_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( carrera_map, AS_PROGRAM, 8, carrera_state )
AM_RANGE(0x0000, 0x4fff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM
AM_RANGE(0xe800, 0xe800) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
@@ -70,7 +70,7 @@ static ADDRESS_MAP_START( carrera_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_MEMBER(carrera_state, m_tileram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, carrera_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/caswin.c b/src/mame/drivers/caswin.c
index 9cbff7a9447..7bd7b48fd8e 100644
--- a/src/mame/drivers/caswin.c
+++ b/src/mame/drivers/caswin.c
@@ -149,7 +149,7 @@ static WRITE8_HANDLER( vvillage_lamps_w )
set_led_status(space->machine(), 4, data & 0x10);
}
-static ADDRESS_MAP_START( vvillage_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( vvillage_mem, AS_PROGRAM, 8, caswin_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_READ(vvillage_rng_r) //accessed by caswin only
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram")
@@ -157,7 +157,7 @@ static ADDRESS_MAP_START( vvillage_mem, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xfbff) AM_RAM_WRITE(sc0_attr_w) AM_BASE_MEMBER(caswin_state, m_sc0_attr)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( vvillage_io, AS_IO, 8 )
+static ADDRESS_MAP_START( vvillage_io, AS_IO, 8, caswin_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01,0x01) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x02,0x03) AM_DEVWRITE("aysnd", ay8910_data_address_w)
diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c
index 38dc25c36f8..29ce85e3df0 100644
--- a/src/mame/drivers/cave.c
+++ b/src/mame/drivers/cave.c
@@ -436,7 +436,7 @@ static const eeprom_interface eeprom_interface_93C46_pacslot =
Dangan Feveron
***************************************************************************/
-static ADDRESS_MAP_START( dfeveron_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dfeveron_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // RAM
AM_RANGE(0x300000, 0x300003) AM_DEVREADWRITE8("ymz", ymz280b_r, ymz280b_w, 0x00ff) // YMZ280
@@ -461,7 +461,7 @@ ADDRESS_MAP_END
Dodonpachi
***************************************************************************/
-static ADDRESS_MAP_START( ddonpach_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ddonpach_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // RAM
AM_RANGE(0x300000, 0x300003) AM_DEVREADWRITE8("ymz", ymz280b_r, ymz280b_w, 0x00ff) // YMZ280
@@ -512,7 +512,7 @@ WRITE16_HANDLER( donpachi_videoregs_w )
}
#endif
-static ADDRESS_MAP_START( donpachi_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( donpachi_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // RAM
AM_RANGE(0x200000, 0x207fff) AM_RAM_WRITE(cave_vram_1_w) AM_BASE_MEMBER(cave_state, m_vram[1]) // Layer 1
@@ -538,7 +538,7 @@ ADDRESS_MAP_END
Esprade
***************************************************************************/
-static ADDRESS_MAP_START( esprade_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( esprade_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // RAM
AM_RANGE(0x300000, 0x300003) AM_DEVREADWRITE8("ymz", ymz280b_r, ymz280b_w, 0x00ff) // YMZ280
@@ -563,7 +563,7 @@ ADDRESS_MAP_END
Gaia Crusaders
***************************************************************************/
-static ADDRESS_MAP_START( gaia_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gaia_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // RAM
AM_RANGE(0x300000, 0x300003) AM_DEVREADWRITE8("ymz", ymz280b_r, ymz280b_w, 0x00ff) // YMZ280
@@ -593,7 +593,7 @@ ADDRESS_MAP_END
Guwange
***************************************************************************/
-static ADDRESS_MAP_START( guwange_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( guwange_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
AM_RANGE(0x300000, 0x300007) AM_READ(cave_irq_cause_r) // IRQ Cause
@@ -620,7 +620,7 @@ ADDRESS_MAP_END
Hotdog Storm
***************************************************************************/
-static ADDRESS_MAP_START( hotdogst_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hotdogst_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x300000, 0x30ffff) AM_RAM // RAM
/**/AM_RANGE(0x408000, 0x408fff) AM_RAM AM_BASE_SIZE_MEMBER(cave_state, m_paletteram, m_paletteram_size) // Palette
@@ -713,7 +713,7 @@ static CUSTOM_INPUT( korokoro_hopper_r )
}
-static ADDRESS_MAP_START( korokoro_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( korokoro_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x107fff) AM_WRITE(cave_vram_0_w) AM_BASE_MEMBER(cave_state, m_vram[0]) // Layer 0
AM_RANGE(0x140000, 0x140005) AM_WRITEONLY AM_BASE_MEMBER(cave_state, m_vctrl[0]) // Layer 0 Control
@@ -731,7 +731,7 @@ static ADDRESS_MAP_START( korokoro_map, AS_PROGRAM, 16 )
AM_RANGE(0x300000, 0x30ffff) AM_RAM // RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( crusherm_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( crusherm_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x107fff) AM_WRITE(cave_vram_0_w) AM_BASE_MEMBER(cave_state, m_vram[0]) // Layer 0
AM_RANGE(0x140000, 0x140005) AM_WRITEONLY AM_BASE_MEMBER(cave_state, m_vctrl[0]) // Layer 0 Control
@@ -752,7 +752,7 @@ ADDRESS_MAP_END
Mazinger Z
***************************************************************************/
-static ADDRESS_MAP_START( mazinger_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mazinger_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // RAM
/**/AM_RANGE(0x200000, 0x207fff) AM_RAM AM_BASE_SIZE_MEMBER(cave_state, m_spriteram, m_spriteram_size) // Sprites
@@ -777,7 +777,7 @@ ADDRESS_MAP_END
Metamoqester
***************************************************************************/
-static ADDRESS_MAP_START( metmqstr_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( metmqstr_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x17ffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x27ffff) AM_ROM // ROM
@@ -837,7 +837,7 @@ static WRITE16_HANDLER( pwrinst2_vctrl_1_w ) { vctrl_w(space, offset, data, mem_
static WRITE16_HANDLER( pwrinst2_vctrl_2_w ) { vctrl_w(space, offset, data, mem_mask, 2); }
static WRITE16_HANDLER( pwrinst2_vctrl_3_w ) { vctrl_w(space, offset, data, mem_mask, 3); }
-static ADDRESS_MAP_START( pwrinst2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pwrinst2_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM // RAM
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("IN0") // Inputs
@@ -873,7 +873,7 @@ static READ16_HANDLER( sailormn_input0_r )
return input_port_read(space->machine(), "IN0");
}
-static ADDRESS_MAP_START( sailormn_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sailormn_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // RAM
AM_RANGE(0x110000, 0x110001) AM_RAM // (agallet)
@@ -950,7 +950,7 @@ static CUSTOM_INPUT( tjumpman_hopper_r )
return (state->m_hopper && !(field.machine().primary_screen->frame_number() % 10)) ? 0 : 1;
}
-static ADDRESS_MAP_START( tjumpman_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tjumpman_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_SHARE("nvram") // RAM
AM_RANGE(0x200000, 0x207fff) AM_RAM AM_BASE_SIZE_MEMBER(cave_state, m_spriteram, m_spriteram_size) // Sprites
@@ -991,7 +991,7 @@ static WRITE16_HANDLER( pacslot_leds_w )
// popmessage("led %04X", data);
}
-static ADDRESS_MAP_START( pacslot_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pacslot_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_SHARE("nvram") // RAM
AM_RANGE(0x200000, 0x207fff) AM_RAM AM_BASE_SIZE_MEMBER(cave_state, m_spriteram, m_spriteram_size) // Sprites
@@ -1014,7 +1014,7 @@ ADDRESS_MAP_END
Uo Poko
***************************************************************************/
-static ADDRESS_MAP_START( uopoko_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( uopoko_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // RAM
AM_RANGE(0x300000, 0x300003) AM_DEVREADWRITE8("ymz", ymz280b_r, ymz280b_w, 0x00ff) // YMZ280
@@ -1041,12 +1041,12 @@ ADDRESS_MAP_END
***************************************************************************/
-static ADDRESS_MAP_START( oki_map, AS_0, 8 )
+static ADDRESS_MAP_START( oki_map, AS_0, 8, cave_state )
AM_RANGE(0x00000, 0x1ffff) AM_ROMBANK("bank3")
AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("bank4")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( oki2_map, AS_0, 8 )
+static ADDRESS_MAP_START( oki2_map, AS_0, 8, cave_state )
AM_RANGE(0x00000, 0x1ffff) AM_ROMBANK("bank5")
AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("bank6")
ADDRESS_MAP_END
@@ -1072,13 +1072,13 @@ static WRITE8_HANDLER( hotdogst_okibank_w )
memory_set_bank(space->machine(), "bank4", bank2);
}
-static ADDRESS_MAP_START( hotdogst_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hotdogst_sound_map, AS_PROGRAM, 8, cave_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM // ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank2") // ROM (Banked)
AM_RANGE(0xe000, 0xffff) AM_RAM // RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hotdogst_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( hotdogst_sound_portmap, AS_IO, 8, cave_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(hotdogst_rombank_w) // ROM bank
AM_RANGE(0x30, 0x30) AM_READ(soundlatch_lo_r) // From Main CPU
@@ -1101,14 +1101,14 @@ static WRITE8_HANDLER( mazinger_rombank_w )
memory_set_bank(space->machine(), "bank2", data & 0x07);
}
-static ADDRESS_MAP_START( mazinger_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mazinger_sound_map, AS_PROGRAM, 8, cave_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM // ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank2") // ROM (Banked)
AM_RANGE(0xc000, 0xc7ff) AM_RAM // RAM
AM_RANGE(0xf800, 0xffff) AM_RAM // RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mazinger_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( mazinger_sound_portmap, AS_IO, 8, cave_state )
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
@@ -1148,13 +1148,13 @@ static WRITE8_HANDLER( metmqstr_okibank1_w )
memory_set_bank(space->machine(), "bank6", bank2);
}
-static ADDRESS_MAP_START( metmqstr_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( metmqstr_sound_map, AS_PROGRAM, 8, cave_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM // ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") // ROM (Banked)
AM_RANGE(0xe000, 0xffff) AM_RAM // RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( metmqstr_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( metmqstr_sound_portmap, AS_IO, 8, cave_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(metmqstr_rombank_w) // Rom Bank
AM_RANGE(0x20, 0x20) AM_READ(soundflags_r) // Communication
@@ -1180,13 +1180,13 @@ static WRITE8_HANDLER( pwrinst2_rombank_w )
memory_set_bank(space->machine(), "bank1", data & 0x07);
}
-static ADDRESS_MAP_START( pwrinst2_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pwrinst2_sound_map, AS_PROGRAM, 8, cave_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // ROM (Banked)
AM_RANGE(0xe000, 0xffff) AM_RAM // RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pwrinst2_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( pwrinst2_sound_portmap, AS_IO, 8, cave_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE_MODERN("oki1", okim6295_device, read, write) // M6295
AM_RANGE(0x08, 0x08) AM_DEVREADWRITE_MODERN("oki2", okim6295_device, read, write) //
@@ -1240,14 +1240,14 @@ static WRITE8_HANDLER( sailormn_okibank1_w )
memory_set_bank(space->machine(), "bank6", bank2);
}
-static ADDRESS_MAP_START( sailormn_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sailormn_sound_map, AS_PROGRAM, 8, cave_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM // ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") // ROM (Banked)
AM_RANGE(0xc000, 0xdfff) AM_READWRITE(mirror_ram_r, mirror_ram_w) AM_BASE_MEMBER(cave_state, m_mirror_ram) // RAM
AM_RANGE(0xe000, 0xffff) AM_READWRITE(mirror_ram_r, mirror_ram_w) // Mirrored RAM (agallet)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sailormn_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sailormn_sound_portmap, AS_IO, 8, cave_state )
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
diff --git a/src/mame/drivers/cb2001.c b/src/mame/drivers/cb2001.c
index 3b495cebf5f..f9812f56b4c 100644
--- a/src/mame/drivers/cb2001.c
+++ b/src/mame/drivers/cb2001.c
@@ -554,14 +554,14 @@ WRITE16_HANDLER( cb2001_bg_w )
}
-static ADDRESS_MAP_START( cb2001_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cb2001_map, AS_PROGRAM, 16, cb2001_state )
AM_RANGE(0x00000, 0x1ffff) AM_RAM
AM_RANGE(0x20000, 0x20fff) AM_RAM AM_BASE_MEMBER(cb2001_state, m_vram_fg)
AM_RANGE(0x21000, 0x21fff) AM_RAM_WRITE(&cb2001_bg_w) AM_BASE_MEMBER(cb2001_state, m_vram_bg)
AM_RANGE(0xc0000, 0xfffff) AM_ROM AM_REGION("boot_prg",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cb2001_io, AS_IO, 16 )
+static ADDRESS_MAP_START( cb2001_io, AS_IO, 16, cb2001_state )
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE8("ppi8255_0", ppi8255_r, ppi8255_w, 0xffff) /* Input Ports */
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE8("ppi8255_1", ppi8255_r, ppi8255_w, 0xffff) /* DIP switches */
AM_RANGE(0x20, 0x21) AM_DEVREAD8("aysnd", ay8910_r, 0xff00)
diff --git a/src/mame/drivers/cball.c b/src/mame/drivers/cball.c
index 3265d8bca47..aab23bb4426 100644
--- a/src/mame/drivers/cball.c
+++ b/src/mame/drivers/cball.c
@@ -124,7 +124,7 @@ static WRITE8_HANDLER( cball_wram_w )
-static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8, cball_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_READ(cball_wram_r) AM_MASK(0x7f)
diff --git a/src/mame/drivers/cbasebal.c b/src/mame/drivers/cbasebal.c
index 80781e43bb5..bd367f77c31 100644
--- a/src/mame/drivers/cbasebal.c
+++ b/src/mame/drivers/cbasebal.c
@@ -111,7 +111,7 @@ static const eeprom_interface cbasebal_eeprom_intf =
*
*************************************/
-static ADDRESS_MAP_START( cbasebal_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cbasebal_map, AS_PROGRAM, 8, cbasebal_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_READWRITE(bankedram_r, bankedram_w) AM_BASE_GENERIC(paletteram) /* palette + vram + scrollram */
@@ -119,7 +119,7 @@ static ADDRESS_MAP_START( cbasebal_map, AS_PROGRAM, 8 )
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_BASE_SIZE_MEMBER(cbasebal_state, m_spriteram, m_spriteram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cbasebal_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( cbasebal_portmap, AS_IO, 8, cbasebal_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(cbasebal_bankswitch_w)
AM_RANGE(0x01, 0x01) AM_WRITE_PORT("IO_01")
diff --git a/src/mame/drivers/cbuster.c b/src/mame/drivers/cbuster.c
index 10a7a32caaf..50caf5e5ce4 100644
--- a/src/mame/drivers/cbuster.c
+++ b/src/mame/drivers/cbuster.c
@@ -104,7 +104,7 @@ static READ16_HANDLER( twocrude_control_r )
/******************************************************************************/
-static ADDRESS_MAP_START( twocrude_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( twocrude_map, AS_PROGRAM, 16, cbuster_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM AM_BASE_MEMBER(cbuster_state, m_ram)
@@ -129,7 +129,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cbuster_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ym2", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/ccastles.c b/src/mame/drivers/ccastles.c
index b021db38401..08fb090d530 100644
--- a/src/mame/drivers/ccastles.c
+++ b/src/mame/drivers/ccastles.c
@@ -330,7 +330,7 @@ static WRITE8_HANDLER( nvram_w )
*************************************/
/* complete memory map derived from schematics */
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, ccastles_state )
AM_RANGE(0x0000, 0x0001) AM_WRITE(ccastles_bitmode_addr_w)
AM_RANGE(0x0002, 0x0002) AM_READWRITE(ccastles_bitmode_r, ccastles_bitmode_w)
AM_RANGE(0x0000, 0x7fff) AM_RAM_WRITE(ccastles_videoram_w) AM_BASE_MEMBER(ccastles_state, m_videoram)
diff --git a/src/mame/drivers/cchance.c b/src/mame/drivers/cchance.c
index cd8176fcbe8..245eb811b2f 100644
--- a/src/mame/drivers/cchance.c
+++ b/src/mame/drivers/cchance.c
@@ -73,7 +73,7 @@ static WRITE8_HANDLER( output_1_w )
state->m_bell_io = (data & 0x80)>>4;
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, cchance_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xafff) AM_RAM AM_DEVREADWRITE("spritegen", spritecodelow_r8, spritecodelow_w8)
diff --git a/src/mame/drivers/cchasm.c b/src/mame/drivers/cchasm.c
index 373fa37d27d..43370b50fb2 100644
--- a/src/mame/drivers/cchasm.c
+++ b/src/mame/drivers/cchasm.c
@@ -31,7 +31,7 @@
*
*************************************/
-static ADDRESS_MAP_START( memmap, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( memmap, AS_PROGRAM, 16, cchasm_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x040000, 0x04000f) AM_DEVREADWRITE8_MODERN("6840ptm", ptm6840_device, read, write, 0xff)
AM_RANGE(0x050000, 0x050001) AM_WRITE(cchasm_refresh_control_w)
@@ -47,7 +47,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_memmap, AS_PROGRAM, 8, cchasm_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x5000, 0x53ff) AM_RAM
@@ -62,7 +62,7 @@ static ADDRESS_MAP_START( sound_memmap, AS_PROGRAM, 8 )
AM_RANGE(0x7041, 0x7041) AM_NOP // TODO
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, cchasm_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ctc", z80ctc_r, z80ctc_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cclimber.c b/src/mame/drivers/cclimber.c
index 0827429c556..9e75fbc15a0 100644
--- a/src/mame/drivers/cclimber.c
+++ b/src/mame/drivers/cclimber.c
@@ -278,7 +278,7 @@ static WRITE8_HANDLER( nmi_mask_w )
/* Note that River Patrol reads/writes to a000-a4f0. This is a bug in the code.
The instruction at 0x0593 should say LD DE,$8000 */
-static ADDRESS_MAP_START( cclimber_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cclimber_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6bff) AM_RAM /* Crazy Kong only */
AM_RANGE(0x8000, 0x83ff) AM_RAM
@@ -301,7 +301,7 @@ static ADDRESS_MAP_START( cclimber_map, AS_PROGRAM, 8 )
AM_RANGE(0xb800, 0xb800) AM_READ_PORT("SYSTEM")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cannonb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cannonb_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x5045, 0x505f) AM_WRITENOP /* do not errorlog this */
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6bff) AM_RAM
@@ -324,7 +324,7 @@ static ADDRESS_MAP_START( cannonb_map, AS_PROGRAM, 8 )
AM_RANGE(0xb800, 0xb800) AM_READ_PORT("SYSTEM")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( swimmer_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( swimmer_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x88ff) AM_MIRROR(0x0100) AM_RAM AM_BASE_MEMBER(cclimber_state, m_bigsprite_videoram)
@@ -345,7 +345,7 @@ static ADDRESS_MAP_START( swimmer_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_ROM /* Guzzler only */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( yamato_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( yamato_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
AM_RANGE(0x7000, 0x7fff) AM_ROM
@@ -367,7 +367,7 @@ static ADDRESS_MAP_START( yamato_map, AS_PROGRAM, 8 )
AM_RANGE(0xba00, 0xba00) AM_READ_PORT("START") /* maybe a mirror of b800 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( toprollr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( toprollr_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x0000, 0x5fff) AM_ROMBANK("bank1")
AM_RANGE(0x6000, 0x6bff) AM_RAM
AM_RANGE(0x8800, 0x88ff) AM_RAM AM_BASE_MEMBER(cclimber_state, m_bigsprite_videoram)
@@ -389,39 +389,39 @@ static ADDRESS_MAP_START( toprollr_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cclimber_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( cclimber_portmap, AS_IO, 8, cclimber_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x09) AM_DEVWRITE("aysnd", ay8910_address_data_w)
AM_RANGE(0x0c, 0x0c) AM_DEVREAD("aysnd", ay8910_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( yamato_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( yamato_portmap, AS_IO, 8, cclimber_state )
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
-static ADDRESS_MAP_START( swimmer_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( swimmer_audio_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_r)
AM_RANGE(0x4000, 0x4001) AM_RAM /* ??? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( yamato_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( yamato_audio_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x0000, 0x07ff) AM_ROM
AM_RANGE(0x5000, 0x53ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( swimmer_audio_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( swimmer_audio_portmap, AS_IO, 8, cclimber_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_data_address_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("ay2", ay8910_data_address_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( yamato_audio_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( yamato_audio_portmap, AS_IO, 8, cclimber_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x02, 0x03) AM_DEVWRITE("ay2", ay8910_address_data_w)
diff --git a/src/mame/drivers/cd32.c b/src/mame/drivers/cd32.c
index bdf36ae1f9a..bc0ffd7a833 100644
--- a/src/mame/drivers/cd32.c
+++ b/src/mame/drivers/cd32.c
@@ -122,7 +122,7 @@ static WRITE8_DEVICE_HANDLER( cd32_cia_0_portb_w )
logerror("%s:CIA0_portb_w(%02x)\n", device->machine().describe_context(), data);
}
-static ADDRESS_MAP_START( cd32_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( cd32_map, AS_PROGRAM, 32, cd32_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x1fffff) AM_RAMBANK("bank1") AM_BASE_SIZE_MEMBER(cd32_state, m_chip_ram, m_chip_ram_size)
AM_RANGE(0x800000, 0x800003) AM_READ_PORT("DIPSW1")
diff --git a/src/mame/drivers/cdi.c b/src/mame/drivers/cdi.c
index a36ce69495d..d7dab93bd05 100644
--- a/src/mame/drivers/cdi.c
+++ b/src/mame/drivers/cdi.c
@@ -55,7 +55,7 @@ INLINE void verboselog(running_machine &machine, int n_level, const char *s_fmt,
* Memory maps *
*************************/
-static ADDRESS_MAP_START( cdimono1_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cdimono1_mem, AS_PROGRAM, 16, cdi_state )
AM_RANGE(0x00000000, 0x0007ffff) AM_RAM AM_BASE_MEMBER(cdi_state,m_planea)
AM_RANGE(0x00200000, 0x0027ffff) AM_RAM AM_BASE_MEMBER(cdi_state,m_planeb)
#if ENABLE_UART_PRINTING
diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c
index 920d8d18e14..24f731821d3 100644
--- a/src/mame/drivers/centiped.c
+++ b/src/mame/drivers/centiped.c
@@ -686,7 +686,7 @@ static READ8_DEVICE_HANDLER( caterplr_AY8910_r )
*
*************************************/
-static ADDRESS_MAP_START( centiped_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( centiped_map, AS_PROGRAM, 8, centiped_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_BASE_MEMBER(centiped_state, m_rambase)
AM_RANGE(0x0400, 0x07bf) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_MEMBER(centiped_state, m_videoram)
@@ -711,7 +711,7 @@ static ADDRESS_MAP_START( centiped_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( centipdb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( centipdb_map, AS_PROGRAM, 8, centiped_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x4000) AM_RAM
AM_RANGE(0x0400, 0x07bf) AM_MIRROR(0x4000) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_MEMBER(centiped_state, m_videoram)
@@ -745,7 +745,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( milliped_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( milliped_map, AS_PROGRAM, 8, centiped_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x040f) AM_DEVREADWRITE("pokey", pokey_r, pokey_w)
@@ -778,7 +778,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( warlords_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( warlords_map, AS_PROGRAM, 8, centiped_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x07bf) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_MEMBER(centiped_state, m_videoram)
@@ -803,7 +803,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( mazeinv_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mazeinv_map, AS_PROGRAM, 8, centiped_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x040f) AM_DEVREADWRITE("pokey", pokey_r, pokey_w)
@@ -837,7 +837,7 @@ ADDRESS_MAP_END
*
****************************************/
-static ADDRESS_MAP_START( bullsdrt_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bullsdrt_map, AS_PROGRAM, 8, centiped_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x6000) AM_READ_PORT("DSW1")
AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x6000) AM_READ(centiped_IN0_r)
@@ -860,7 +860,7 @@ static ADDRESS_MAP_START( bullsdrt_map, AS_PROGRAM, 8 )
AM_RANGE(0x6000, 0x6fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bullsdrt_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( bullsdrt_port_map, AS_IO, 8, centiped_state )
AM_RANGE(0x00, 0x00) AM_WRITE(bullsdrt_sprites_bank_w)
AM_RANGE(0x20, 0x3f) AM_WRITE(bullsdrt_tilesbank_w) AM_BASE_MEMBER(centiped_state, m_bullsdrt_tiles_bankram)
AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ(bullsdrt_data_port_r) AM_DEVWRITE("snsnd", sn76496_w)
diff --git a/src/mame/drivers/chaknpop.c b/src/mame/drivers/chaknpop.c
index 91e30988d9b..0b414ac51cb 100644
--- a/src/mame/drivers/chaknpop.c
+++ b/src/mame/drivers/chaknpop.c
@@ -140,7 +140,7 @@ static WRITE8_HANDLER ( coinlock_w )
***************************************************************************/
-static ADDRESS_MAP_START( chaknpop_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( chaknpop_map, AS_PROGRAM, 8, chaknpop_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_MEMBER(chaknpop_state, m_mcu_ram)
AM_RANGE(0x8800, 0x8800) AM_READWRITE(chaknpop_mcu_port_a_r, chaknpop_mcu_port_a_w)
diff --git a/src/mame/drivers/cham24.c b/src/mame/drivers/cham24.c
index 1ee6e68c445..f4977c72a07 100644
--- a/src/mame/drivers/cham24.c
+++ b/src/mame/drivers/cham24.c
@@ -221,7 +221,7 @@ static WRITE8_HANDLER( cham24_mapper_w )
}
}
-static ADDRESS_MAP_START( cham24_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cham24_map, AS_PROGRAM, 8, cham24_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM /* NES RAM */
AM_RANGE(0x2000, 0x3fff) AM_DEVREADWRITE_MODERN("ppu", ppu2c0x_device, read, write)
AM_RANGE(0x4000, 0x4013) AM_DEVREADWRITE("nes", nes_psg_r, nes_psg_w) /* PSG primary registers */
diff --git a/src/mame/drivers/champbas.c b/src/mame/drivers/champbas.c
index 19d8d5b284e..57c23cad1c2 100644
--- a/src/mame/drivers/champbas.c
+++ b/src/mame/drivers/champbas.c
@@ -217,7 +217,7 @@ static READ8_HANDLER( champbja_alt_protection_r )
*
*************************************/
-static ADDRESS_MAP_START( talbot_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( talbot_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_RAM AM_SHARE("share1") /* MCU shared RAM */
AM_RANGE(0x7000, 0x7001) AM_DEVWRITE("aysnd", ay8910_data_address_w)
@@ -244,7 +244,7 @@ static ADDRESS_MAP_START( talbot_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( champbas_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( champbas_main_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x7000, 0x7001) AM_DEVWRITE("aysnd", ay8910_data_address_w)
@@ -276,7 +276,7 @@ static ADDRESS_MAP_START( champbas_main_map, AS_PROGRAM, 8 )
AM_RANGE(0x6800, 0x68ff) AM_READ(champbja_alt_protection_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( exctsccrb_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( exctsccrb_main_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
// AM_RANGE(0x6000, 0x63ff) AM_RAM AM_SHARE("share1") // MCU not used (though it's present on the board)
AM_RANGE(0x7000, 0x7001) AM_DEVWRITE("aysnd", ay8910_data_address_w)
@@ -302,7 +302,7 @@ static ADDRESS_MAP_START( exctsccrb_main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( exctsccr_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( exctsccr_main_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x7c00, 0x7fff) AM_RAM
@@ -328,7 +328,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( champbas_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( champbas_sub_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x7fff) AM_READ(soundlatch_r)
AM_RANGE(0x8000, 0x9fff) AM_WRITENOP // 4-bit return code to main CPU (not used)
@@ -338,7 +338,7 @@ static ADDRESS_MAP_START( champbas_sub_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( exctsccr_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( exctsccr_sub_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0x0000, 0x8fff) AM_ROM
AM_RANGE(0xa000, 0xa7ff) AM_RAM
AM_RANGE(0xc008, 0xc008) AM_DEVWRITE("dac1", champbas_dac_w)
@@ -348,7 +348,7 @@ static ADDRESS_MAP_START( exctsccr_sub_map, AS_PROGRAM, 8 )
// AM_RANGE(0xc00f, 0xc00f) AM_WRITENOP /* ??? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( exctsccr_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( exctsccr_sound_io_map, AS_IO, 8, champbas_state )
ADDRESS_MAP_GLOBAL_MASK( 0x00ff )
AM_RANGE(0x82, 0x83) AM_DEVWRITE("ay1", ay8910_data_address_w)
AM_RANGE(0x86, 0x87) AM_DEVWRITE("ay2", ay8910_data_address_w)
@@ -357,7 +357,7 @@ static ADDRESS_MAP_START( exctsccr_sound_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE("share1") /* main CPU shared RAM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/champbwl.c b/src/mame/drivers/champbwl.c
index 375240cb3cb..9b67520b93d 100644
--- a/src/mame/drivers/champbwl.c
+++ b/src/mame/drivers/champbwl.c
@@ -195,7 +195,7 @@ static WRITE8_HANDLER( champbwl_misc_w )
memory_set_bank(space->machine(), "bank1", (data & 0x30) >> 4);
}
-static ADDRESS_MAP_START( champbwl_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( champbwl_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM AM_REGION("maincpu", 0x10000)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram")
@@ -234,7 +234,7 @@ static WRITE8_HANDLER( doraemon_outputs_w )
// popmessage("%02x", data);
}
-static ADDRESS_MAP_START( doraemon, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( doraemon, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram")
diff --git a/src/mame/drivers/chanbara.c b/src/mame/drivers/chanbara.c
index 95da28efcb4..1116ff8c2a1 100644
--- a/src/mame/drivers/chanbara.c
+++ b/src/mame/drivers/chanbara.c
@@ -207,7 +207,7 @@ static SCREEN_UPDATE_IND16( chanbara )
/***************************************************************************/
-static ADDRESS_MAP_START( chanbara_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( chanbara_map, AS_PROGRAM, 8, chanbara_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(chanbara_videoram_w) AM_BASE_MEMBER(chanbara_state, m_videoram)
AM_RANGE(0x0c00, 0x0fff) AM_RAM_WRITE(chanbara_colorram_w) AM_BASE_MEMBER(chanbara_state, m_colorram)
diff --git a/src/mame/drivers/changela.c b/src/mame/drivers/changela.c
index b36d49d8578..735573dac6a 100644
--- a/src/mame/drivers/changela.c
+++ b/src/mame/drivers/changela.c
@@ -103,7 +103,7 @@ static WRITE8_HANDLER( changela_68705_ddr_c_w )
}
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, changela_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(changela_68705_port_a_r, changela_68705_port_a_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(changela_68705_port_b_r, changela_68705_port_b_w)
@@ -218,7 +218,7 @@ static WRITE8_HANDLER( changela_coin_counter_w )
}
-static ADDRESS_MAP_START( changela_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( changela_map, AS_PROGRAM, 8, changela_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM AM_BASE_MEMBER(changela_state, m_spriteram) /* OBJ0 RAM */
AM_RANGE(0x9000, 0x97ff) AM_RAM AM_BASE_MEMBER(changela_state, m_videoram) /* OBJ1 RAM */
diff --git a/src/mame/drivers/cheekyms.c b/src/mame/drivers/cheekyms.c
index 911d7e43b8b..cc19066a6e5 100644
--- a/src/mame/drivers/cheekyms.c
+++ b/src/mame/drivers/cheekyms.c
@@ -22,13 +22,13 @@ static INPUT_CHANGED( coin_inserted )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, cheekyms_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x3000, 0x33ff) AM_RAM
AM_RANGE(0x3800, 0x3bff) AM_RAM AM_BASE_MEMBER(cheekyms_state, m_videoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, cheekyms_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW")
AM_RANGE(0x01, 0x01) AM_READ_PORT("INPUTS")
diff --git a/src/mame/drivers/chihiro.c b/src/mame/drivers/chihiro.c
index f408bdb7c2a..39e5bbecf1c 100644
--- a/src/mame/drivers/chihiro.c
+++ b/src/mame/drivers/chihiro.c
@@ -1110,14 +1110,14 @@ static WRITE32_HANDLER( smbus_w )
}
-static ADDRESS_MAP_START( xbox_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( xbox_map, AS_PROGRAM, 32, smbus_state )
AM_RANGE(0x00000000, 0x07ffffff) AM_RAM
AM_RANGE(0xfd000000, 0xfdffffff) AM_READWRITE(geforce_r, geforce_w)
AM_RANGE(0xfed00000, 0xfed003ff) AM_READWRITE(usbctrl_r, usbctrl_w)
AM_RANGE(0xff000000, 0xffffffff) AM_ROM AM_REGION("bios", 0) AM_MIRROR(0x00f80000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START(xbox_map_io, AS_IO, 32)
+static ADDRESS_MAP_START(xbox_map_io, AS_IO, 32, smbus_state )
AM_RANGE(0x0020, 0x0023) AM_DEVREADWRITE8("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
AM_RANGE(0x0040, 0x0043) AM_DEVREADWRITE8("pit8254", pit8253_r, pit8253_w, 0xffffffff)
AM_RANGE(0x00a0, 0x00a3) AM_DEVREADWRITE8("pic8259_2", pic8259_r, pic8259_w, 0xffffffff)
diff --git a/src/mame/drivers/chinagat.c b/src/mame/drivers/chinagat.c
index fa497fcc690..156f002efd9 100644
--- a/src/mame/drivers/chinagat.c
+++ b/src/mame/drivers/chinagat.c
@@ -305,7 +305,7 @@ static void saiyugoub1_m5205_irq_w( device_t *device )
state->m_adpcm_sound_irq = 1;
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, ddragon_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(ddragon_fgvideoram_w) AM_BASE_MEMBER(ddragon_state, m_fgvideoram)
AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(ddragon_bgvideoram_w) AM_BASE_MEMBER(ddragon_state, m_bgvideoram)
@@ -326,7 +326,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, ddragon_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x2000, 0x2000) AM_WRITE(chinagat_sub_bankswitch_w)
AM_RANGE(0x2800, 0x2800) AM_WRITEONLY /* Called on CPU start and after return from jump table */
@@ -336,7 +336,7 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, ddragon_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -344,7 +344,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xA000, 0xA000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ym2203c_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ym2203c_sound_map, AS_PROGRAM, 8, ddragon_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
// 8804 and/or 8805 make a gong sound when the coin goes in
@@ -362,7 +362,7 @@ static ADDRESS_MAP_START( ym2203c_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xA000, 0xA000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( saiyugoub1_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( saiyugoub1_sound_map, AS_PROGRAM, 8, ddragon_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -370,12 +370,12 @@ static ADDRESS_MAP_START( saiyugoub1_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xA000, 0xA000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( i8748_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( i8748_map, AS_PROGRAM, 8, ddragon_state )
AM_RANGE(0x0000, 0x03ff) AM_ROM
AM_RANGE(0x0400, 0x07ff) AM_ROM /* i8749 version */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( i8748_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( i8748_portmap, AS_IO, 8, ddragon_state )
AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_READ(saiyugoub1_mcu_command_r)
AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_DEVWRITE("adpcm", saiyugoub1_m5205_clk_w) /* Drives the clock on the m5205 at 1/8 of this frequency */
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(saiyugoub1_m5205_irq_r)
diff --git a/src/mame/drivers/chinsan.c b/src/mame/drivers/chinsan.c
index 7ecbb4c96a2..d97d89c4a16 100644
--- a/src/mame/drivers/chinsan.c
+++ b/src/mame/drivers/chinsan.c
@@ -237,14 +237,14 @@ static WRITE8_DEVICE_HANDLER( chin_adpcm_w )
*
*************************************/
-static ADDRESS_MAP_START( chinsan_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( chinsan_map, AS_PROGRAM, 8, chinsan_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_BASE_MEMBER(chinsan_state, m_video)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( chinsan_io, AS_IO, 8 )
+static ADDRESS_MAP_START( chinsan_io, AS_IO, 8, chinsan_state )
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)
diff --git a/src/mame/drivers/chqflag.c b/src/mame/drivers/chqflag.c
index a4032534651..8a7aa888a02 100644
--- a/src/mame/drivers/chqflag.c
+++ b/src/mame/drivers/chqflag.c
@@ -143,7 +143,7 @@ static WRITE8_HANDLER( chqflag_sh_irqtrigger_w )
/****************************************************************************/
-static ADDRESS_MAP_START( chqflag_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( chqflag_map, AS_PROGRAM, 8, chqflag_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM /* RAM */
AM_RANGE(0x1000, 0x17ff) AM_RAMBANK("bank1") /* banked RAM (RAM/051316 (chip 1)) */
AM_RANGE(0x1800, 0x1fff) AM_RAMBANK("bank2") /* palette + RAM */
@@ -185,7 +185,7 @@ static WRITE8_HANDLER( k007232_bankswitch_w )
k007232_set_bank(state->m_k007232_2, bank_A, bank_B);
}
-static ADDRESS_MAP_START( chqflag_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( chqflag_sound_map, AS_PROGRAM, 8, chqflag_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
AM_RANGE(0x9000, 0x9000) AM_WRITE(k007232_bankswitch_w) /* 007232 bankswitch */
diff --git a/src/mame/drivers/cinemat.c b/src/mame/drivers/cinemat.c
index 7ef49e9b092..571e486d087 100644
--- a/src/mame/drivers/cinemat.c
+++ b/src/mame/drivers/cinemat.c
@@ -290,38 +290,38 @@ static WRITE8_HANDLER( qb3_ram_bank_w )
*
*************************************/
-static ADDRESS_MAP_START( program_map_4k, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( program_map_4k, AS_PROGRAM, 8, cinemat_state )
ADDRESS_MAP_GLOBAL_MASK(0xfff)
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( program_map_8k, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( program_map_8k, AS_PROGRAM, 8, cinemat_state )
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("maincpu", 0x1000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( program_map_16k, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( program_map_16k, AS_PROGRAM, 8, cinemat_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x3fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( program_map_32k, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( program_map_32k, AS_PROGRAM, 8, cinemat_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x7fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( data_map, AS_DATA, 16, cinemat_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( data_map_qb3, AS_DATA, 16 )
+static ADDRESS_MAP_START( data_map_qb3, AS_DATA, 16, cinemat_state )
AM_RANGE(0x0000, 0x03ff) AM_RAMBANK("bank1") AM_BASE_MEMBER(cinemat_state, m_rambase)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, cinemat_state )
AM_RANGE(0x00, 0x0f) AM_READ(inputs_r)
AM_RANGE(0x10, 0x16) AM_READ(switches_r)
AM_RANGE(0x17, 0x17) AM_READ(coin_input_r)
diff --git a/src/mame/drivers/circus.c b/src/mame/drivers/circus.c
index f251f1b3923..f8565b57284 100644
--- a/src/mame/drivers/circus.c
+++ b/src/mame/drivers/circus.c
@@ -57,7 +57,7 @@ static READ8_HANDLER( circus_paddle_r )
return input_port_read(space->machine(), "PADDLE");
}
-static ADDRESS_MAP_START( circus_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( circus_map, AS_PROGRAM, 8, circus_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x2000) AM_WRITE(circus_clown_x_w)
diff --git a/src/mame/drivers/circusc.c b/src/mame/drivers/circusc.c
index d2be5a85e99..8d2d84b6c77 100644
--- a/src/mame/drivers/circusc.c
+++ b/src/mame/drivers/circusc.c
@@ -150,7 +150,7 @@ static WRITE8_HANDLER( irq_mask_w )
state->m_irq_mask = data & 1;
}
-static ADDRESS_MAP_START( circusc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( circusc_map, AS_PROGRAM, 8, circusc_state )
AM_RANGE(0x0000, 0x0000) AM_MIRROR(0x03f8) AM_WRITE(circusc_flipscreen_w) /* FLIP */
AM_RANGE(0x0001, 0x0001) AM_MIRROR(0x03f8) AM_WRITE(irq_mask_w) /* INTST */
// AM_RANGE(0x0002, 0x0002) AM_MIRROR(0x03f8) AM_WRITENOP /* MUT - not used /*
@@ -175,7 +175,7 @@ static ADDRESS_MAP_START( circusc_map, AS_PROGRAM, 8 )
AM_RANGE(0x6000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, circusc_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x1c00) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_READ(soundlatch_r) /* CS0 */
diff --git a/src/mame/drivers/cischeat.c b/src/mame/drivers/cischeat.c
index 6e2b6e58d2d..c22c3df6781 100644
--- a/src/mame/drivers/cischeat.c
+++ b/src/mame/drivers/cischeat.c
@@ -211,7 +211,7 @@ static WRITE16_HANDLER( bigrun_paletteram16_w )
if ( (offset >= 0x3600/2) && (offset <= 0x37ff/2) ) { palette_set_color(space->machine(), 0xe00 + offset - 0x3600/2, MAKE_RGB(r,g,b) ); return;}
}
-static ADDRESS_MAP_START( bigrun_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bigrun_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x080000, 0x083fff) AM_READWRITE(bigrun_vregs_r, bigrun_vregs_w) AM_BASE_MEMBER(cischeat_state, m_vregs) // Vregs
AM_RANGE(0x084000, 0x087fff) AM_RAM // Linking with other units
@@ -264,7 +264,7 @@ static WRITE16_HANDLER( cischeat_paletteram16_w )
if ( (offset >= 0x5000/2) && (offset <= 0x5fff/2) ) { palette_set_color(space->machine(), 0xe00 + offset - 0x5000/2, MAKE_RGB(r,g,b) ); return;}
}
-static ADDRESS_MAP_START( cischeat_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cischeat_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x080000, 0x087fff) AM_READWRITE(cischeat_vregs_r, cischeat_vregs_w) AM_BASE_MEMBER(cischeat_state, m_vregs) // Vregs
AM_RANGE(0x088000, 0x088fff) AM_RAM // Linking with other units
@@ -324,7 +324,7 @@ static WRITE16_HANDLER( f1gpstar_paletteram16_w )
098800-099000
0F8000-0F9000 */
-static ADDRESS_MAP_START( f1gpstar_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( f1gpstar_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x080000, 0x087fff) AM_READWRITE(f1gpstar_vregs_r, f1gpstar_vregs_w) AM_BASE_MEMBER(cischeat_state, m_vregs) // Vregs
AM_RANGE(0x088000, 0x088fff) AM_RAM // Linking with other units
@@ -350,7 +350,7 @@ ADDRESS_MAP_END
**************************************************************************/
// Same as f1gpstar, but vregs are slightly different:
-static ADDRESS_MAP_START( f1gpstr2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( f1gpstr2_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x080000, 0x087fff) AM_READWRITE(f1gpstr2_vregs_r, f1gpstr2_vregs_w) AM_BASE_MEMBER(cischeat_state, m_vregs) // Vregs (slightly different from f1gpstar)
AM_RANGE(0x088000, 0x088fff) AM_RAM // Linking with other units
@@ -493,7 +493,7 @@ static WRITE16_HANDLER( scudhamm_oki_bank_w )
}
}
-static ADDRESS_MAP_START( scudhamm_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( scudhamm_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x082000, 0x082fff) AM_RAM_WRITE(scudhamm_vregs_w) AM_BASE_MEMBER(cischeat_state, m_vregs) // Video Registers + RAM
AM_RANGE(0x0a0000, 0x0a3fff) AM_RAM_WRITE(cischeat_scrollram_0_w) AM_BASE_MEMBER(cischeat_state, m_scrollram[0]) // Scroll RAM 0
@@ -576,7 +576,7 @@ static WRITE16_HANDLER( armchmp2_leds_w )
}
}
-static ADDRESS_MAP_START( armchmp2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( armchmp2_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x082000, 0x082fff) AM_RAM_WRITE(scudhamm_vregs_w) AM_BASE_MEMBER(cischeat_state, m_vregs) // Video Registers + RAM
AM_RANGE(0x0a0000, 0x0a3fff) AM_RAM_WRITE(cischeat_scrollram_0_w) AM_BASE_MEMBER(cischeat_state, m_scrollram[0]) // Scroll RAM 0
@@ -605,14 +605,14 @@ ADDRESS_MAP_END
Big Run
**************************************************************************/
-static ADDRESS_MAP_START( bigrun_map2, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bigrun_map2, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x040000, 0x047fff) AM_RAM AM_SHARE("share1") // Shared RAM (with Main CPU)
AM_RANGE(0x080000, 0x0807ff) AM_RAM AM_BASE_MEMBER(cischeat_state, m_roadram[0]) // Road RAM
AM_RANGE(0x0c0000, 0x0c3fff) AM_RAM // RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bigrun_map3, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bigrun_map3, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x040000, 0x047fff) AM_RAM AM_SHARE("share2") // Shared RAM (with Main CPU)
AM_RANGE(0x080000, 0x0807ff) AM_RAM AM_BASE_MEMBER(cischeat_state, m_roadram[1]) // Road RAM
@@ -624,7 +624,7 @@ ADDRESS_MAP_END
Cisco Heat
**************************************************************************/
-static ADDRESS_MAP_START( cischeat_map2, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cischeat_map2, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x040000, 0x047fff) AM_RAM AM_SHARE("share1") // Shared RAM (with Main CPU)
AM_RANGE(0x080000, 0x0807ff) AM_RAM AM_BASE_MEMBER(cischeat_state, m_roadram[0]) // Road RAM
@@ -633,7 +633,7 @@ static ADDRESS_MAP_START( cischeat_map2, AS_PROGRAM, 16 )
AM_RANGE(0x200000, 0x23ffff) AM_ROM AM_REGION("cpu2",0x40000) // ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cischeat_map3, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cischeat_map3, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x040000, 0x047fff) AM_RAM AM_SHARE("share2") // Shared RAM (with Main CPU)
AM_RANGE(0x080000, 0x0807ff) AM_RAM AM_BASE_MEMBER(cischeat_state, m_roadram[1]) // Road RAM
@@ -648,7 +648,7 @@ ADDRESS_MAP_END
F1 GrandPrix Star
**************************************************************************/
-static ADDRESS_MAP_START( f1gpstar_map2, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( f1gpstar_map2, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x080000, 0x0807ff) AM_RAM AM_SHARE("share1") // Shared RAM (with Main CPU)
AM_RANGE(0x100000, 0x1007ff) AM_RAM AM_BASE_MEMBER(cischeat_state, m_roadram[0]) // Road RAM
@@ -656,7 +656,7 @@ static ADDRESS_MAP_START( f1gpstar_map2, AS_PROGRAM, 16 )
AM_RANGE(0x200000, 0x200001) AM_WRITENOP // watchdog
ADDRESS_MAP_END
-static ADDRESS_MAP_START( f1gpstar_map3, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( f1gpstar_map3, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x080000, 0x0807ff) AM_RAM AM_SHARE("share2") // Shared RAM (with Main CPU)
AM_RANGE(0x100000, 0x1007ff) AM_RAM AM_BASE_MEMBER(cischeat_state, m_roadram[1]) // Road RAM
@@ -691,7 +691,7 @@ static WRITE16_HANDLER( bigrun_soundbank_w )
}
}
-static ADDRESS_MAP_START( bigrun_sound_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bigrun_sound_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x040000, 0x040001) AM_READWRITE(soundlatch_word_r, bigrun_soundbank_w) // From Main CPU
AM_RANGE(0x060000, 0x060001) AM_WRITE(soundlatch2_word_w) // To Main CPU
@@ -712,7 +712,7 @@ static WRITE16_DEVICE_HANDLER( cischeat_soundbank_w )
if (ACCESSING_BITS_0_7) oki->set_bank_base(0x40000 * (data & 1) );
}
-static ADDRESS_MAP_START( cischeat_sound_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cischeat_sound_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x040002, 0x040003) AM_DEVWRITE("oki1", cischeat_soundbank_w) // Sample Banking
AM_RANGE(0x040004, 0x040005) AM_DEVWRITE("oki2", cischeat_soundbank_w) // Sample Banking
@@ -729,7 +729,7 @@ ADDRESS_MAP_END
F1 GrandPrix Star
**************************************************************************/
-static ADDRESS_MAP_START( f1gpstar_sound_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( f1gpstar_sound_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x040004, 0x040005) AM_DEVWRITE("oki1", cischeat_soundbank_w) // Sample Banking (cischeat: 40002)
AM_RANGE(0x040008, 0x040009) AM_DEVWRITE("oki2", cischeat_soundbank_w) // Sample Banking (cischeat: 40004)
@@ -745,7 +745,7 @@ ADDRESS_MAP_END
F1 GrandPrix Star II
**************************************************************************/
-static ADDRESS_MAP_START( f1gpstr2_sound_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( f1gpstr2_sound_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x040004, 0x040005) AM_DEVWRITE("oki1", cischeat_soundbank_w) // Sample Banking
AM_RANGE(0x040008, 0x040009) AM_DEVWRITE("oki2", cischeat_soundbank_w) // Sample Banking
@@ -777,7 +777,7 @@ static WRITE16_HANDLER( f1gpstr2_io_w )
COMBINE_DATA(&state->m_vregs[offset + 0x1000/2]);
}
-static ADDRESS_MAP_START( f1gpstr2_io_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( f1gpstr2_io_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x080000, 0x080fff) AM_READWRITE(f1gpstr2_io_r, f1gpstr2_io_w) //
AM_RANGE(0x100000, 0x100001) AM_WRITEONLY AM_BASE_MEMBER(cischeat_state, m_f1gpstr2_ioready) //
diff --git a/src/mame/drivers/citycon.c b/src/mame/drivers/citycon.c
index 6da057ae03c..c51fb186717 100644
--- a/src/mame/drivers/citycon.c
+++ b/src/mame/drivers/citycon.c
@@ -27,7 +27,7 @@ static READ8_HANDLER( citycon_irq_ack_r )
return 0;
}
-static ADDRESS_MAP_START( citycon_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( citycon_map, AS_PROGRAM, 8, citycon_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(citycon_videoram_w) AM_BASE_MEMBER(citycon_state, m_videoram)
AM_RANGE(0x2000, 0x20ff) AM_RAM_WRITE(citycon_linecolor_w) AM_BASE_MEMBER(citycon_state, m_linecolor)
@@ -42,7 +42,7 @@ static ADDRESS_MAP_START( citycon_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, citycon_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x4000, 0x4001) AM_DEVWRITE("aysnd", ay8910_address_data_w)
// AM_RANGE(0x4002, 0x4002) AM_DEVREAD("aysnd", ay8910_r) /* ?? */
diff --git a/src/mame/drivers/clayshoo.c b/src/mame/drivers/clayshoo.c
index d8add99acfb..6b5b271b963 100644
--- a/src/mame/drivers/clayshoo.c
+++ b/src/mame/drivers/clayshoo.c
@@ -216,7 +216,7 @@ static SCREEN_UPDATE_RGB32( clayshoo )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, clayshoo_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x4000, 0x47ff) AM_ROM
@@ -233,7 +233,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( main_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( main_io_map, AS_IO, 8, clayshoo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
diff --git a/src/mame/drivers/cliffhgr.c b/src/mame/drivers/cliffhgr.c
index 7e049ec59c1..5f57bdb2b4f 100644
--- a/src/mame/drivers/cliffhgr.c
+++ b/src/mame/drivers/cliffhgr.c
@@ -226,13 +226,13 @@ static MACHINE_RESET( cliffhgr )
/********************************************************/
-static ADDRESS_MAP_START( mainmem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mainmem, AS_PROGRAM, 8, cliffhgr_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM /* ROM */
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram") /* NVRAM */
AM_RANGE(0xe800, 0xefff) AM_RAM /* RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mainport, AS_IO, 8 )
+static ADDRESS_MAP_START( mainport, AS_IO, 8, cliffhgr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x44, 0x44) AM_DEVWRITE_MODERN("tms9928a", tms9928a_device, vram_write)
AM_RANGE(0x45, 0x45) AM_DEVREAD_MODERN("tms9928a", tms9928a_device, vram_read)
diff --git a/src/mame/drivers/cloak.c b/src/mame/drivers/cloak.c
index 231dc9df74a..1fab4daa294 100644
--- a/src/mame/drivers/cloak.c
+++ b/src/mame/drivers/cloak.c
@@ -164,7 +164,7 @@ static WRITE8_HANDLER( cloak_nvram_enable_w )
*
*************************************/
-static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, cloak_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(cloak_videoram_w) AM_BASE_MEMBER(cloak_state, m_videoram)
AM_RANGE(0x0800, 0x0fff) AM_RAM AM_SHARE("share1")
@@ -195,7 +195,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8, cloak_state )
AM_RANGE(0x0000, 0x0007) AM_RAM
AM_RANGE(0x0008, 0x000f) AM_READWRITE(graph_processor_r, graph_processor_w)
AM_RANGE(0x0010, 0x07ff) AM_RAM
diff --git a/src/mame/drivers/cloud9.c b/src/mame/drivers/cloud9.c
index 863be86e742..1a8444edf19 100644
--- a/src/mame/drivers/cloud9.c
+++ b/src/mame/drivers/cloud9.c
@@ -268,7 +268,7 @@ static WRITE8_HANDLER( nvram_store_w )
*
*************************************/
-static ADDRESS_MAP_START( cloud9_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cloud9_map, AS_PROGRAM, 8, cloud9_state )
AM_RANGE(0x0000, 0x0001) AM_WRITE(cloud9_bitmode_addr_w)
AM_RANGE(0x0002, 0x0002) AM_READWRITE(cloud9_bitmode_r, cloud9_bitmode_w)
AM_RANGE(0x0000, 0x4fff) AM_ROMBANK("bank1") AM_WRITE(cloud9_videoram_w)
diff --git a/src/mame/drivers/clshroad.c b/src/mame/drivers/clshroad.c
index 86475331d9f..0ec53ef702b 100644
--- a/src/mame/drivers/clshroad.c
+++ b/src/mame/drivers/clshroad.c
@@ -37,7 +37,7 @@ static READ8_HANDLER( clshroad_input_r )
}
-static ADDRESS_MAP_START( clshroad_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( clshroad_map, AS_PROGRAM, 8, clshroad_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x95ff) AM_RAM
AM_RANGE(0x9600, 0x97ff) AM_RAM AM_SHARE("share1")
@@ -51,7 +51,7 @@ static ADDRESS_MAP_START( clshroad_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(clshroad_vram_0_w) AM_BASE_MEMBER(clshroad_state, m_vram_0) // Layer 0
ADDRESS_MAP_END
-static ADDRESS_MAP_START( clshroad_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( clshroad_sound_map, AS_PROGRAM, 8, clshroad_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_DEVWRITE("custom", wiping_sound_w)
AM_RANGE(0x9600, 0x97ff) AM_RAM AM_SHARE("share1")
diff --git a/src/mame/drivers/cmmb.c b/src/mame/drivers/cmmb.c
index fd0959db04c..c8d0e8b18e3 100644
--- a/src/mame/drivers/cmmb.c
+++ b/src/mame/drivers/cmmb.c
@@ -167,7 +167,7 @@ static READ8_HANDLER( kludge_r )
}
/* overlap empty addresses */
-static ADDRESS_MAP_START( cmmb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cmmb_map, AS_PROGRAM, 8, cmmb_state )
ADDRESS_MAP_GLOBAL_MASK(0xffff)
AM_RANGE(0x0000, 0x01ff) AM_RAM /* zero page address */
// AM_RANGE(0x13c0, 0x13ff) AM_RAM //spriteram
diff --git a/src/mame/drivers/cninja.c b/src/mame/drivers/cninja.c
index 1614cd1dbbf..c958c6bcbd5 100644
--- a/src/mame/drivers/cninja.c
+++ b/src/mame/drivers/cninja.c
@@ -166,7 +166,7 @@ static WRITE16_HANDLER( cninja_pf34_control_w )
}
-static ADDRESS_MAP_START( cninja_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cninja_map, AS_PROGRAM, 16, cninja_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x140000, 0x14000f) AM_WRITE(cninja_pf12_control_w)
@@ -193,7 +193,7 @@ static ADDRESS_MAP_START( cninja_map, AS_PROGRAM, 16 )
AM_RANGE(0x308000, 0x308fff) AM_WRITENOP /* Bootleg only */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cninjabl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cninjabl_map, AS_PROGRAM, 16, cninja_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x138000, 0x1387ff) AM_RAM AM_SHARE("spriteram") /* bootleg sprite-ram (sprites rewritten here in new format) */
@@ -223,7 +223,7 @@ static ADDRESS_MAP_START( cninjabl_map, AS_PROGRAM, 16 )
AM_RANGE(0x1b4000, 0x1b4001) AM_DEVWRITE_MODERN("spriteram", buffered_spriteram16_device, write) /* DMA flag */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( edrandy_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( edrandy_map, AS_PROGRAM, 16, cninja_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x140000, 0x14000f) AM_WRITE(cninja_pf12_control_w)
@@ -251,7 +251,7 @@ static ADDRESS_MAP_START( edrandy_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( robocop2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( robocop2_map, AS_PROGRAM, 16, cninja_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x140000, 0x14000f) AM_WRITE(cninja_pf12_control_w)
@@ -278,7 +278,7 @@ static ADDRESS_MAP_START( robocop2_map, AS_PROGRAM, 16 )
AM_RANGE(0x1f8000, 0x1f8001) AM_READ_PORT("DSW3") /* Dipswitch #3 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mutantf_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mutantf_map, AS_PROGRAM, 16, cninja_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
@@ -307,7 +307,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cninja_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ym2", ym2151_r, ym2151_w)
@@ -319,7 +319,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(h6280_irq_status_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map_mutantf, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map_mutantf, AS_PROGRAM, 8, cninja_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_READNOP AM_WRITENOP
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -331,7 +331,7 @@ static ADDRESS_MAP_START( sound_map_mutantf, AS_PROGRAM, 8 )
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(h6280_irq_status_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( stoneage_s_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( stoneage_s_map, AS_PROGRAM, 8, cninja_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/cntsteer.c b/src/mame/drivers/cntsteer.c
index c5b43397506..5ee783f0275 100644
--- a/src/mame/drivers/cntsteer.c
+++ b/src/mame/drivers/cntsteer.c
@@ -524,7 +524,7 @@ static READ8_HANDLER( cntsteer_adx_r )
/***************************************************************************/
-static ADDRESS_MAP_START( gekitsui_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gekitsui_cpu1_map, AS_PROGRAM, 8, cntsteer_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x1000, 0x11ff) AM_RAM AM_BASE_MEMBER(cntsteer_state, m_spriteram)
AM_RANGE(0x1200, 0x1fff) AM_RAM
@@ -534,7 +534,7 @@ static ADDRESS_MAP_START( gekitsui_cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gekitsui_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gekitsui_cpu2_map, AS_PROGRAM, 8, cntsteer_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(cntsteer_background_w) AM_BASE_MEMBER(cntsteer_state, m_videoram2)
AM_RANGE(0x3000, 0x3000) AM_READ_PORT("DSW0")
@@ -547,7 +547,7 @@ static ADDRESS_MAP_START( gekitsui_cpu2_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cntsteer_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cntsteer_cpu1_map, AS_PROGRAM, 8, cntsteer_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x1000, 0x11ff) AM_RAM AM_BASE_MEMBER(cntsteer_state, m_spriteram)
AM_RANGE(0x2000, 0x23ff) AM_RAM_WRITE(cntsteer_foreground_vram_w) AM_BASE_MEMBER(cntsteer_state, m_videoram)
@@ -557,7 +557,7 @@ static ADDRESS_MAP_START( cntsteer_cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cntsteer_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cntsteer_cpu2_map, AS_PROGRAM, 8, cntsteer_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(cntsteer_background_w) AM_BASE_MEMBER(cntsteer_state, m_videoram2) AM_SHARE("share3")
AM_RANGE(0x2000, 0x2fff) AM_RAM_WRITE(cntsteer_background_w) AM_SHARE("share3")
@@ -588,7 +588,7 @@ static INTERRUPT_GEN ( sound_interrupt )
device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cntsteer_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
// AM_RANGE(0x1000, 0x1000) AM_WRITE(nmiack_w)
AM_RANGE(0x2000, 0x2000) AM_DEVWRITE("ay1", ay8910_data_w)
diff --git a/src/mame/drivers/coinmstr.c b/src/mame/drivers/coinmstr.c
index 18e8aca9864..16595b3c35a 100644
--- a/src/mame/drivers/coinmstr.c
+++ b/src/mame/drivers/coinmstr.c
@@ -198,7 +198,7 @@ static READ8_HANDLER( ff_r )
// Common memory map
-static ADDRESS_MAP_START( coinmstr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( coinmstr_map, AS_PROGRAM, 8, coinmstr_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(quizmstr_bg_w) AM_BASE_MEMBER(coinmstr_state, m_videoram)
@@ -209,7 +209,7 @@ ADDRESS_MAP_END
// Different I/O mappping for every game
-static ADDRESS_MAP_START( quizmstr_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( quizmstr_io_map, AS_IO, 8, coinmstr_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(question_r)
@@ -226,7 +226,7 @@ static ADDRESS_MAP_START( quizmstr_io_map, AS_IO, 8 )
AM_RANGE(0xc0, 0xc3) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( trailblz_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( trailblz_io_map, AS_IO, 8, coinmstr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(question_r)
AM_RANGE(0x00, 0x03) AM_WRITE(question_w)
@@ -240,7 +240,7 @@ static ADDRESS_MAP_START( trailblz_io_map, AS_IO, 8 )
AM_RANGE(0xc1, 0xc3) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( supnudg2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( supnudg2_io_map, AS_IO, 8, coinmstr_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(question_r)
@@ -262,7 +262,7 @@ static ADDRESS_MAP_START( supnudg2_io_map, AS_IO, 8 )
AM_RANGE(0xc0, 0xc3) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pokeroul_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( pokeroul_io_map, AS_IO, 8, coinmstr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
AM_RANGE(0x41, 0x41) AM_DEVWRITE_MODERN("crtc", mc6845_device, register_w)
diff --git a/src/mame/drivers/coinmvga.c b/src/mame/drivers/coinmvga.c
index 92231eecdb2..abec683b586 100644
--- a/src/mame/drivers/coinmvga.c
+++ b/src/mame/drivers/coinmvga.c
@@ -352,7 +352,7 @@ static READ16_HANDLER( test_r )
* Memory Map Information *
*************************/
-static ADDRESS_MAP_START( coinmvga_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( coinmvga_map, AS_PROGRAM, 16, coinmvga_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x0fffff) AM_ROM AM_REGION("maincpu", 0) //maybe not
@@ -373,7 +373,7 @@ static ADDRESS_MAP_START( coinmvga_map, AS_PROGRAM, 16 )
//0x800008 "arrow" w?
ADDRESS_MAP_END
-static ADDRESS_MAP_START( coinmvga_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( coinmvga_io_map, AS_IO, 8, coinmvga_state )
/* Digital I/O ports (ports 4-B are valid on 16-bit H8/3xx) */
// AM_RANGE(H8_PORT_4, H8_PORT_4)
// AM_RANGE(H8_PORT_5, H8_PORT_5)
diff --git a/src/mame/drivers/combatsc.c b/src/mame/drivers/combatsc.c
index 0afe31a7a96..d69bfad4c1b 100644
--- a/src/mame/drivers/combatsc.c
+++ b/src/mame/drivers/combatsc.c
@@ -383,7 +383,7 @@ static READ8_DEVICE_HANDLER ( combatsc_ym2203_r )
*
*************************************/
-static ADDRESS_MAP_START( combatsc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( combatsc_map, AS_PROGRAM, 8, combatsc_state )
AM_RANGE(0x0000, 0x0007) AM_WRITE(combatsc_pf_control_w)
AM_RANGE(0x0020, 0x005f) AM_READWRITE(combatsc_scrollram_r, combatsc_scrollram_w)
// AM_RANGE(0x0060, 0x00ff) AM_WRITEONLY /* RAM */
@@ -410,7 +410,7 @@ static ADDRESS_MAP_START( combatsc_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( combatscb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( combatscb_map, AS_PROGRAM, 8, combatsc_state )
AM_RANGE(0x0000, 0x04ff) AM_RAM
AM_RANGE(0x0500, 0x0500) AM_WRITE(combatscb_bankselect_w)
AM_RANGE(0x0600, 0x06ff) AM_RAM AM_BASE_MEMBER(combatsc_state, m_paletteram) /* palette */
@@ -420,7 +420,7 @@ static ADDRESS_MAP_START( combatscb_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( combatsc_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( combatsc_sound_map, AS_PROGRAM, 8, combatsc_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
@@ -444,7 +444,7 @@ static WRITE8_DEVICE_HANDLER( combatscb_dac_w )
msm5205_vclk_w(device, 0);
}
-static ADDRESS_MAP_START( combatscb_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( combatscb_sound_map, AS_PROGRAM, 8, combatsc_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w) /* YM 2203 */
diff --git a/src/mame/drivers/commando.c b/src/mame/drivers/commando.c
index 236a860bc0f..66c3b402bb5 100644
--- a/src/mame/drivers/commando.c
+++ b/src/mame/drivers/commando.c
@@ -50,7 +50,7 @@ Note : there is an ingame typo bug that doesn't display the bonus life values
/* Memory Maps */
-static ADDRESS_MAP_START( commando_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( commando_map, AS_PROGRAM, 8, commando_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("SYSTEM")
AM_RANGE(0xc001, 0xc001) AM_READ_PORT("P1")
@@ -70,7 +70,7 @@ static ADDRESS_MAP_START( commando_map, AS_PROGRAM, 8 )
AM_RANGE(0xff80, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, commando_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/compgolf.c b/src/mame/drivers/compgolf.c
index e1fd0f6d957..25e58c782d8 100644
--- a/src/mame/drivers/compgolf.c
+++ b/src/mame/drivers/compgolf.c
@@ -59,7 +59,7 @@ static WRITE8_HANDLER( compgolf_ctrl_w )
*
*************************************/
-static ADDRESS_MAP_START( compgolf_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( compgolf_map, AS_PROGRAM, 8, compgolf_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x1000, 0x17ff) AM_RAM_WRITE(compgolf_video_w) AM_BASE_MEMBER(compgolf_state, m_videoram)
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(compgolf_back_w) AM_BASE_MEMBER(compgolf_state, m_bg_ram)
diff --git a/src/mame/drivers/contra.c b/src/mame/drivers/contra.c
index 07a8380465e..b01798f289d 100644
--- a/src/mame/drivers/contra.c
+++ b/src/mame/drivers/contra.c
@@ -59,7 +59,7 @@ static WRITE8_HANDLER( cpu_sound_command_w )
-static ADDRESS_MAP_START( contra_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( contra_map, AS_PROGRAM, 8, contra_state )
AM_RANGE(0x0000, 0x0007) AM_WRITE(contra_K007121_ctrl_0_w)
AM_RANGE(0x0010, 0x0010) AM_READ_PORT("SYSTEM")
AM_RANGE(0x0011, 0x0011) AM_READ_PORT("P1")
@@ -96,7 +96,7 @@ static ADDRESS_MAP_START( contra_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, contra_state )
AM_RANGE(0x0000, 0x0000) AM_READ(soundlatch_r)
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x4000, 0x4000) AM_WRITENOP /* read triggers irq reset and latch read (in the hardware only). */
diff --git a/src/mame/drivers/coolpool.c b/src/mame/drivers/coolpool.c
index 082e6659c5a..a2d8c856566 100644
--- a/src/mame/drivers/coolpool.c
+++ b/src/mame/drivers/coolpool.c
@@ -653,7 +653,7 @@ static READ16_HANDLER( coolpool_input_r )
*
*************************************/
-static ADDRESS_MAP_START( amerdart_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( amerdart_map, AS_PROGRAM, 16, coolpool_state )
AM_RANGE(0x00000000, 0x000fffff) AM_RAM AM_BASE_MEMBER(coolpool_state,m_vram_base)
AM_RANGE(0x04000000, 0x0400000f) AM_WRITE(amerdart_misc_w)
AM_RANGE(0x05000000, 0x0500000f) AM_READWRITE(amerdart_iop_r, amerdart_iop_w)
@@ -663,7 +663,7 @@ static ADDRESS_MAP_START( amerdart_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( coolpool_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( coolpool_map, AS_PROGRAM, 16, coolpool_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_BASE_MEMBER(coolpool_state,m_vram_base)
AM_RANGE(0x01000000, 0x010000ff) AM_DEVREADWRITE8("tlc34076", tlc34076_r, tlc34076_w, 0x00ff) // IMSG176P-40
AM_RANGE(0x02000000, 0x020000ff) AM_READWRITE(coolpool_iop_r, coolpool_iop_w)
@@ -675,7 +675,7 @@ static ADDRESS_MAP_START( coolpool_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nballsht_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( nballsht_map, AS_PROGRAM, 16, coolpool_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_BASE_MEMBER(coolpool_state,m_vram_base)
AM_RANGE(0x02000000, 0x020000ff) AM_READWRITE(coolpool_iop_r, coolpool_iop_w)
AM_RANGE(0x03000000, 0x0300000f) AM_WRITE(coolpool_misc_w)
@@ -694,13 +694,13 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( amerdart_dsp_pgm_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( amerdart_dsp_pgm_map, AS_PROGRAM, 16, coolpool_state )
AM_RANGE(0x000, 0x0fff) AM_ROM
ADDRESS_MAP_END
/* 000 - 0FF TMS32015 Internal Data RAM (256 words) in Data Address Space */
-static ADDRESS_MAP_START( amerdart_dsp_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( amerdart_dsp_io_map, AS_IO, 16, coolpool_state )
AM_RANGE(0x00, 0x01) AM_WRITE(dsp_romaddr_w)
AM_RANGE(0x02, 0x02) AM_WRITE(amerdart_dsp_answer_w)
AM_RANGE(0x03, 0x03) AM_DEVWRITE("dac", dsp_dac_w)
@@ -713,12 +713,12 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( coolpool_dsp_pgm_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( coolpool_dsp_pgm_map, AS_PROGRAM, 16, coolpool_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( coolpool_dsp_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( coolpool_dsp_io_map, AS_IO, 16, coolpool_state )
AM_RANGE(0x00, 0x01) AM_WRITE(dsp_romaddr_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(dsp_cmd_r, dsp_answer_w)
AM_RANGE(0x03, 0x03) AM_DEVWRITE("dac", dsp_dac_w)
diff --git a/src/mame/drivers/coolridr.c b/src/mame/drivers/coolridr.c
index 3f30caf7c61..e964f17cb15 100644
--- a/src/mame/drivers/coolridr.c
+++ b/src/mame/drivers/coolridr.c
@@ -680,7 +680,7 @@ static WRITE32_HANDLER( sysh1_char_w )
}
}
-static ADDRESS_MAP_START( system_h1_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( system_h1_map, AS_PROGRAM, 32, coolridr_state )
AM_RANGE(0x00000000, 0x001fffff) AM_ROM AM_SHARE("share1") AM_WRITENOP
AM_RANGE(0x01000000, 0x01ffffff) AM_ROM AM_REGION("gfx_data",0x0000000)
@@ -698,7 +698,7 @@ static ADDRESS_MAP_START( system_h1_map, AS_PROGRAM, 32 )
AM_RANGE(0x60000000, 0x600003ff) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( coolridr_submap, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( coolridr_submap, AS_PROGRAM, 32, coolridr_state )
AM_RANGE(0x00000000, 0x0001ffff) AM_ROM AM_SHARE("share2")
AM_RANGE(0x01000000, 0x0100ffff) AM_RAM //communication RAM
@@ -735,7 +735,7 @@ ADDRESS_MAP_END
// SH-1 or SH-2 almost certainly copies the program down to here: the ROM containing the program is 32-bit wide and the 68000 is 16-bit
// the SCSP is believed to be hardcoded to decode the first 4 MB like this for a master/slave config
// (see also Model 3):
-static ADDRESS_MAP_START( system_h1_sound_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( system_h1_sound_map, AS_PROGRAM, 16, coolridr_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
// AM_RANGE(0x100000, 0x100fff) AM_DEVREADWRITE("scsp1", scsp_r, scsp_w)
AM_RANGE(0x800000, 0x80ffff) AM_RAM
diff --git a/src/mame/drivers/cop01.c b/src/mame/drivers/cop01.c
index b021e9ab594..d36e8c6d017 100644
--- a/src/mame/drivers/cop01.c
+++ b/src/mame/drivers/cop01.c
@@ -124,7 +124,7 @@ static READ8_HANDLER( cop01_sound_irq_ack_w )
*
*************************************/
-static ADDRESS_MAP_START( cop01_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cop01_map, AS_PROGRAM, 8, cop01_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM /* c000-c7ff in cop01 */
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(cop01_background_w) AM_BASE_MEMBER(cop01_state, m_bgvideoram)
@@ -132,7 +132,7 @@ static ADDRESS_MAP_START( cop01_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf3ff) AM_WRITE(cop01_foreground_w) AM_BASE_MEMBER(cop01_state, m_fgvideoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, cop01_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
AM_RANGE(0x01, 0x01) AM_READ_PORT("P2")
@@ -144,7 +144,7 @@ static ADDRESS_MAP_START( io_map, AS_IO, 8 )
AM_RANGE(0x45, 0x45) AM_WRITE(cop01_irq_ack_w) /* ? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mightguy_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mightguy_io_map, AS_IO, 8, cop01_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
AM_RANGE(0x01, 0x01) AM_READ_PORT("P2")
@@ -156,13 +156,13 @@ static ADDRESS_MAP_START( mightguy_io_map, AS_IO, 8 )
AM_RANGE(0x45, 0x45) AM_WRITE(cop01_irq_ack_w) /* ? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cop01_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8000) AM_READ(cop01_sound_irq_ack_w)
AM_RANGE(0xc000, 0xc7ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( audio_io_map, AS_IO, 8, cop01_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x02, 0x03) AM_DEVWRITE("ay2", ay8910_address_data_w)
@@ -178,7 +178,7 @@ static READ8_HANDLER( kludge )
return state->m_timer++;
}
-static ADDRESS_MAP_START( mightguy_audio_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mightguy_audio_io_map, AS_IO, 8, cop01_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ymsnd", ym3526_w)
AM_RANGE(0x02, 0x02) AM_WRITENOP /* 1412M2? */
diff --git a/src/mame/drivers/copsnrob.c b/src/mame/drivers/copsnrob.c
index 93a7359e1a9..44cf215a3e9 100644
--- a/src/mame/drivers/copsnrob.c
+++ b/src/mame/drivers/copsnrob.c
@@ -101,7 +101,7 @@ static WRITE8_HANDLER( copsnrob_misc2_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, copsnrob_state )
ADDRESS_MAP_GLOBAL_MASK(0x1fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0500, 0x0507) AM_WRITE(copsnrob_misc_w)
diff --git a/src/mame/drivers/corona.c b/src/mame/drivers/corona.c
index 118c95ff5ca..ab34af768be 100644
--- a/src/mame/drivers/corona.c
+++ b/src/mame/drivers/corona.c
@@ -597,13 +597,13 @@ static WRITE8_DEVICE_HANDLER(ay_port_b_out)
RAM data is relocated to B800-B8FF
*/
-static ADDRESS_MAP_START( winner81_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( winner81_map, AS_PROGRAM, 8, corona_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xb800, 0xb8ff) AM_RAM // copied from 8000 (0x10 bytes, repeated)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( winner81_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( winner81_cpu_io_map, AS_IO, 8, corona_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x70, 0x70) AM_WRITE(blitter_x_w)
AM_RANGE(0x71, 0x71) AM_WRITE(blitter_unk_w)
@@ -625,12 +625,12 @@ static ADDRESS_MAP_START( winner81_cpu_io_map, AS_IO, 8 )
AM_RANGE(0xef, 0xef) AM_WRITE(wc_meters_w) /* meters: coin1 = bit0, coin2 = bit1, coinout = bit2 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( winner81_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( winner81_sound_map, AS_PROGRAM, 8, corona_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( winner81_sound_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( winner81_sound_cpu_io_map, AS_IO, 8, corona_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(sound_latch_r)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
@@ -654,13 +654,13 @@ ADDRESS_MAP_END
FE ---> Sound Latch (writes 01, 02 and 03 during attract)...
*/
-static ADDRESS_MAP_START( winner82_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( winner82_map, AS_PROGRAM, 8, corona_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x8000, 0x80ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( winner82_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( winner82_cpu_io_map, AS_IO, 8, corona_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xf0, 0xf0) AM_WRITE(blitter_x_w)
AM_RANGE(0xf1, 0xf1) AM_WRITE(blitter_y_w)
@@ -679,12 +679,12 @@ static ADDRESS_MAP_START( winner82_cpu_io_map, AS_IO, 8 )
AM_RANGE(0xff, 0xff) AM_READ_PORT("DSW2") /* no idea */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( winner82_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( winner82_sound_map, AS_PROGRAM, 8, corona_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1000, 0x13ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( winner82_sound_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( winner82_sound_cpu_io_map, AS_IO, 8, corona_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(sound_latch_r)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
@@ -718,13 +718,13 @@ ADDRESS_MAP_END
*/
-static ADDRESS_MAP_START( re800_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( re800_map, AS_PROGRAM, 8, corona_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram") //801a comm?
ADDRESS_MAP_END
-static ADDRESS_MAP_START( re800_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( re800_cpu_io_map, AS_IO, 8, corona_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xf0, 0xf0) AM_WRITE(blitter_x_w)
AM_RANGE(0xf1, 0xf1) AM_WRITE(blitter_y_w)
@@ -740,12 +740,12 @@ static ADDRESS_MAP_START( re800_cpu_io_map, AS_IO, 8 )
AM_RANGE(0xff, 0xff) AM_WRITE(ball_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( re800_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( re800_sound_map, AS_PROGRAM, 8, corona_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( re800_sound_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( re800_sound_cpu_io_map, AS_IO, 8, corona_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(sound_latch_r)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
@@ -778,12 +778,12 @@ ADDRESS_MAP_END
*/
-static ADDRESS_MAP_START( luckyrlt_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( luckyrlt_map, AS_PROGRAM, 8, corona_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( luckyrlt_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( luckyrlt_cpu_io_map, AS_IO, 8, corona_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xf0, 0xf0) AM_WRITE(blitter_x_w)
AM_RANGE(0xf1, 0xf1) AM_WRITE(blitter_y_w)
@@ -800,12 +800,12 @@ static ADDRESS_MAP_START( luckyrlt_cpu_io_map, AS_IO, 8 )
AM_RANGE(0xfe, 0xfe) AM_WRITE(sound_latch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( luckyrlt_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( luckyrlt_sound_map, AS_PROGRAM, 8, corona_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1000, 0x13ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( luckyrlt_sound_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( luckyrlt_sound_cpu_io_map, AS_IO, 8, corona_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(sound_latch_r)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
diff --git a/src/mame/drivers/cosmic.c b/src/mame/drivers/cosmic.c
index 402ede6caeb..f6a18ae791c 100644
--- a/src/mame/drivers/cosmic.c
+++ b/src/mame/drivers/cosmic.c
@@ -354,7 +354,7 @@ static WRITE8_HANDLER( flip_screen_w )
}
-static ADDRESS_MAP_START( panic_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( panic_map, AS_PROGRAM, 8, cosmic_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x5fff) AM_RAM AM_BASE_SIZE_MEMBER(cosmic_state, m_videoram, m_videoram_size)
AM_RANGE(0x6000, 0x601f) AM_WRITEONLY AM_BASE_SIZE_MEMBER(cosmic_state, m_spriteram, m_spriteram_size)
@@ -369,7 +369,7 @@ static ADDRESS_MAP_START( panic_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cosmica_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cosmica_map, AS_PROGRAM, 8, cosmic_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x5fff) AM_RAM AM_BASE_SIZE_MEMBER(cosmic_state, m_videoram, m_videoram_size)
AM_RANGE(0x6000, 0x601f) AM_WRITEONLY AM_BASE_SIZE_MEMBER(cosmic_state, m_spriteram, m_spriteram_size)
@@ -383,12 +383,12 @@ static ADDRESS_MAP_START( cosmica_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cosmicg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cosmicg_map, AS_PROGRAM, 8, cosmic_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE_SIZE_MEMBER(cosmic_state, m_videoram, m_videoram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cosmicg_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( cosmicg_io_map, AS_IO, 8, cosmic_state )
AM_RANGE(0x00, 0x00) AM_READ(cosmicg_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x00, 0x15) AM_WRITE(cosmicg_output_w)
@@ -396,7 +396,7 @@ static ADDRESS_MAP_START( cosmicg_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( magspot_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( magspot_map, AS_PROGRAM, 8, cosmic_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x3800, 0x3807) AM_READ(magspot_coinage_dip_r)
AM_RANGE(0x4000, 0x401f) AM_WRITEONLY AM_BASE_SIZE_MEMBER(cosmic_state, m_spriteram, m_spriteram_size)
diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c
index 4e8024e0c9f..b8cefdbc6f8 100644
--- a/src/mame/drivers/cps1.c
+++ b/src/mame/drivers/cps1.c
@@ -541,7 +541,7 @@ All PRGx go to B-board. Provision for up to 4MB of ROM space, which was never us
*/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, cps_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM
AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
/* forgottn, willow, cawing, nemo, varth read from 800010. Probably debug input leftover from development */
@@ -582,7 +582,7 @@ SOUNDA15 = pin13 = ( I1 )
/SOUNDCE = pin12 = ! ( !I0 & (!I1 | ( I1 & !I2)) )
*/
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, cps_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xd000, 0xd7ff) AM_RAM
@@ -594,7 +594,7 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
AM_RANGE(0xf00a, 0xf00a) AM_READ(soundlatch2_r) /* Sound timer fade */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( qsound_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( qsound_main_map, AS_PROGRAM, 16, cps_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
@@ -612,7 +612,7 @@ static ADDRESS_MAP_START( qsound_main_map, AS_PROGRAM, 16 )
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-ADDRESS_MAP_START( qsound_sub_map, AS_PROGRAM, 8 ) // used by cps2.c too
+ADDRESS_MAP_START( qsound_sub_map, AS_PROGRAM, 8, cps_state ) // used by cps2.c too
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* banked (contains music data) */
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_BASE_MEMBER(cps_state, m_qsound_sharedram1)
@@ -3182,7 +3182,7 @@ static MACHINE_CONFIG_DERIVED( wofhfh, cps1_12MHz )
MACHINE_CONFIG_END
/* incomplete */
-static ADDRESS_MAP_START( sf2mdt_z80map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sf2mdt_z80map, AS_PROGRAM, 8, cps_state )
AM_RANGE(0x0000, 0xcfff) AM_ROM
AM_RANGE(0xd000, 0xd7ff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cps2.c b/src/mame/drivers/cps2.c
index 8502f23d4c0..a3b5431c55c 100644
--- a/src/mame/drivers/cps2.c
+++ b/src/mame/drivers/cps2.c
@@ -810,7 +810,7 @@ static READ16_HANDLER( joy_or_paddle_r )
*
*************************************/
-static ADDRESS_MAP_START( cps2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cps2_map, AS_PROGRAM, 16, cps_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM /* 68000 ROM */
AM_RANGE(0x400000, 0x40000b) AM_RAM AM_BASE_SIZE_MEMBER(cps_state, m_output, m_output_size) /* CPS2 object output */
AM_RANGE(0x618000, 0x619fff) AM_READWRITE(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */
@@ -841,7 +841,7 @@ static ADDRESS_MAP_START( cps2_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dead_cps2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dead_cps2_map, AS_PROGRAM, 16, cps_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM /* 68000 ROM */
AM_RANGE(0x400000, 0x40000b) AM_RAM AM_BASE_SIZE_MEMBER(cps_state, m_output, m_output_size) /* CPS2 object output */
AM_RANGE(0x618000, 0x619fff) AM_READWRITE(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */
diff --git a/src/mame/drivers/cps3.c b/src/mame/drivers/cps3.c
index e01fbce3c9b..92c6c52521a 100644
--- a/src/mame/drivers/cps3.c
+++ b/src/mame/drivers/cps3.c
@@ -2161,7 +2161,7 @@ static WRITE32_HANDLER( cps3_colourram_w )
/* there are more unknown writes, but you get the idea */
-static ADDRESS_MAP_START( cps3_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( cps3_map, AS_PROGRAM, 32, cps3_state )
AM_RANGE(0x00000000, 0x0007ffff) AM_ROM AM_REGION("user1", 0) // Bios ROM
AM_RANGE(0x02000000, 0x0207ffff) AM_RAM AM_BASE_MEMBER(cps3_state, m_mainram) // Main RAM
diff --git a/src/mame/drivers/crbaloon.c b/src/mame/drivers/crbaloon.c
index 156bd0b7f38..f21e1b98355 100644
--- a/src/mame/drivers/crbaloon.c
+++ b/src/mame/drivers/crbaloon.c
@@ -197,7 +197,7 @@ static WRITE8_HANDLER( port_sound_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, crbaloon_state )
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
@@ -214,7 +214,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( main_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( main_io_map, AS_IO, 8, crbaloon_state )
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")
diff --git a/src/mame/drivers/crgolf.c b/src/mame/drivers/crgolf.c
index 9a45c082a81..5f180143555 100644
--- a/src/mame/drivers/crgolf.c
+++ b/src/mame/drivers/crgolf.c
@@ -252,7 +252,7 @@ static WRITE8_DEVICE_HANDLER( crgolfhi_sample_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, crgolf_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x5fff) AM_RAM
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
@@ -274,7 +274,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, crgolf_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("aysnd", ay8910_address_data_w)
diff --git a/src/mame/drivers/crimfght.c b/src/mame/drivers/crimfght.c
index 1aaf7e4d7bd..1609011b7a7 100644
--- a/src/mame/drivers/crimfght.c
+++ b/src/mame/drivers/crimfght.c
@@ -80,7 +80,7 @@ static WRITE8_HANDLER( k052109_051960_w )
/********************************************/
-static ADDRESS_MAP_START( crimfght_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( crimfght_map, AS_PROGRAM, 8, crimfght_state )
AM_RANGE(0x0000, 0x03ff) AM_RAMBANK("bank1") /* banked RAM */
AM_RANGE(0x0400, 0x1fff) AM_RAM /* RAM */
AM_RANGE(0x3f80, 0x3f80) AM_READ_PORT("SYSTEM")
@@ -98,7 +98,7 @@ static ADDRESS_MAP_START( crimfght_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( crimfght_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( crimfght_sound_map, AS_PROGRAM, 8, crimfght_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM 821l01.h4 */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w) /* YM2151 */
diff --git a/src/mame/drivers/crospang.c b/src/mame/drivers/crospang.c
index c0c3917917f..de44e478e81 100644
--- a/src/mame/drivers/crospang.c
+++ b/src/mame/drivers/crospang.c
@@ -48,7 +48,7 @@ static WRITE16_HANDLER ( crospang_soundlatch_w )
/* main cpu */
-static ADDRESS_MAP_START( crospang_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( crospang_map, AS_PROGRAM, 16, crospang_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_WRITENOP // writes to rom quite often
AM_RANGE(0x100000, 0x100001) AM_WRITENOP
AM_RANGE(0x100002, 0x100003) AM_WRITE(crospang_fg_scrolly_w)
@@ -67,7 +67,7 @@ static ADDRESS_MAP_START( crospang_map, AS_PROGRAM, 16 )
AM_RANGE(0x320000, 0x32ffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bestri_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bestri_map, AS_PROGRAM, 16, crospang_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_WRITENOP // writes to rom quite often
AM_RANGE(0x100004, 0x100005) AM_WRITE(bestri_fg_scrollx_w)
@@ -91,12 +91,12 @@ ADDRESS_MAP_END
/* sound cpu */
-static ADDRESS_MAP_START( crospang_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( crospang_sound_map, AS_PROGRAM, 8, crospang_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( crospang_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( crospang_sound_io_map, AS_IO, 8, crospang_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x02, 0x02) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
diff --git a/src/mame/drivers/crshrace.c b/src/mame/drivers/crshrace.c
index 0e199dc7d05..cc02a633ef0 100644
--- a/src/mame/drivers/crshrace.c
+++ b/src/mame/drivers/crshrace.c
@@ -185,7 +185,7 @@ static WRITE8_HANDLER( pending_command_clear_w )
-static ADDRESS_MAP_START( crshrace_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( crshrace_map, AS_PROGRAM, 16, crshrace_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x300000, 0x3fffff) AM_READ(extrarom1_r)
AM_RANGE(0x400000, 0x4fffff) AM_READ(extrarom2_r)
@@ -208,13 +208,13 @@ static ADDRESS_MAP_START( crshrace_map, AS_PROGRAM, 16 )
AM_RANGE(0xfff044, 0xfff047) AM_WRITEONLY // ??? moves during race
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, crshrace_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, crshrace_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(crshrace_sh_bankswitch_w)
AM_RANGE(0x04, 0x04) AM_READWRITE(soundlatch_r, pending_command_clear_w)
diff --git a/src/mame/drivers/crystal.c b/src/mame/drivers/crystal.c
index 50be45a3128..f4f8a08d5ed 100644
--- a/src/mame/drivers/crystal.c
+++ b/src/mame/drivers/crystal.c
@@ -466,7 +466,7 @@ static WRITE32_HANDLER( DMA1_w )
}
-static ADDRESS_MAP_START( crystal_mem, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( crystal_mem, AS_PROGRAM, 32, crystal_state )
AM_RANGE(0x00000000, 0x0001ffff) AM_ROM AM_WRITENOP
AM_RANGE(0x01200000, 0x0120000f) AM_READ(Input_r)
diff --git a/src/mame/drivers/cshooter.c b/src/mame/drivers/cshooter.c
index 3b439cdcac9..a52a78d8cbf 100644
--- a/src/mame/drivers/cshooter.c
+++ b/src/mame/drivers/cshooter.c
@@ -252,7 +252,7 @@ static READ8_HANDLER(pal_r)
return space->machine().generic.paletteram.u8[offset];
}
-static ADDRESS_MAP_START( cshooter_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cshooter_map, AS_PROGRAM, 8, cshooter_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xafff) AM_READ_BANK("bank1") AM_WRITEONLY
AM_RANGE(0xb000, 0xb0ff) AM_READONLY // sound related ?
@@ -282,7 +282,7 @@ static WRITE8_HANDLER( seibu_sound_comms_w )
seibu_main_word_w(space,offset,data,0x00ff);
}
-static ADDRESS_MAP_START( airraid_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( airraid_map, AS_PROGRAM, 8, cshooter_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") AM_WRITENOP // rld result write-back
// AM_RANGE(0xb000, 0xb0ff) AM_RAM
@@ -308,7 +308,7 @@ ADDRESS_MAP_END
/* Sound CPU */
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cshooter_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0xc000, 0xc001) AM_WRITENOP // AM_DEVWRITE("ym1", ym2203_w) ?
AM_RANGE(0xc800, 0xc801) AM_WRITENOP // AM_DEVWRITE("ym2", ym2203_w) ?
diff --git a/src/mame/drivers/csplayh5.c b/src/mame/drivers/csplayh5.c
index 49abd553ca0..71de0570a83 100644
--- a/src/mame/drivers/csplayh5.c
+++ b/src/mame/drivers/csplayh5.c
@@ -87,7 +87,7 @@ static WRITE16_HANDLER( csplayh5_sound_w )
}
-static ADDRESS_MAP_START( csplayh5_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( csplayh5_map, AS_PROGRAM, 16, csplayh5_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x200000, 0x200001) AM_READ_PORT("DSW") AM_WRITE(csplayh5_sound_w)
@@ -109,7 +109,7 @@ static READ16_HANDLER( test_r )
return space->machine().rand();
}
-static ADDRESS_MAP_START( csplayh5_sub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( csplayh5_sub_map, AS_PROGRAM, 16, csplayh5_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x04002a, 0x04002b) AM_READ(test_r)
@@ -120,7 +120,7 @@ static ADDRESS_MAP_START( csplayh5_sub_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( csplayh5_sub_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( csplayh5_sub_io_map, AS_IO, 16, csplayh5_state )
ADDRESS_MAP_END
#endif
@@ -342,13 +342,13 @@ static WRITE8_HANDLER( tmpz84c011_0_dir_pe_w )
}
-static ADDRESS_MAP_START( csplayh5_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( csplayh5_sound_map, AS_PROGRAM, 8, csplayh5_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( csplayh5_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( csplayh5_sound_io_map, AS_IO, 8, csplayh5_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("ctc", z80ctc_r, z80ctc_w)
AM_RANGE(0x50, 0x50) AM_READWRITE(tmpz84c011_0_pa_r, tmpz84c011_0_pa_w)
diff --git a/src/mame/drivers/cubeqst.c b/src/mame/drivers/cubeqst.c
index 75bc636971b..dd687ee9ba9 100644
--- a/src/mame/drivers/cubeqst.c
+++ b/src/mame/drivers/cubeqst.c
@@ -402,7 +402,7 @@ static WRITE16_HANDLER( write_sndram )
cubeqcpu_sndram_w(space->machine().device("sound_cpu"), offset, data, mem_mask);
}
-static ADDRESS_MAP_START( m68k_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( m68k_program_map, AS_PROGRAM, 16, cubeqst_state )
ADDRESS_MAP_GLOBAL_MASK(0x03ffff)
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x020000, 0x027fff) AM_READWRITE(read_rotram, write_rotram)
@@ -419,11 +419,11 @@ ADDRESS_MAP_END
/* For the bit-sliced CPUs */
-static ADDRESS_MAP_START( rotate_map, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( rotate_map, AS_PROGRAM, 64, cubeqst_state )
AM_RANGE(0x000, 0x1ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( line_sound_map, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( line_sound_map, AS_PROGRAM, 64, cubeqst_state )
AM_RANGE(0x000, 0x0ff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cultures.c b/src/mame/drivers/cultures.c
index 6dd5533c994..6636181a43b 100644
--- a/src/mame/drivers/cultures.c
+++ b/src/mame/drivers/cultures.c
@@ -180,7 +180,7 @@ static WRITE8_HANDLER( bg_bank_w )
coin_counter_w(space->machine(), 0, data & 0x10);
}
-static ADDRESS_MAP_START( cultures_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cultures_map, AS_PROGRAM, 8, cultures_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xbfff) AM_RAM_WRITE(bg0_videoram_w) AM_BASE_MEMBER(cultures_state, m_bg0_videoram)
@@ -188,7 +188,7 @@ static ADDRESS_MAP_START( cultures_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cultures_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( cultures_io_map, AS_IO, 8, cultures_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_RAM
AM_RANGE(0x10, 0x13) AM_RAM
diff --git a/src/mame/drivers/cvs.c b/src/mame/drivers/cvs.c
index 490b217dc54..f75004a896e 100644
--- a/src/mame/drivers/cvs.c
+++ b/src/mame/drivers/cvs.c
@@ -487,7 +487,7 @@ static WRITE8_HANDLER( audio_command_w )
*
*************************************/
-static ADDRESS_MAP_START( cvs_main_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cvs_main_cpu_map, AS_PROGRAM, 8, cvs_state )
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_MEMBER(cvs_state, m_bullet_ram)
@@ -502,7 +502,7 @@ static ADDRESS_MAP_START( cvs_main_cpu_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cvs_main_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( cvs_main_cpu_io_map, AS_IO, 8, cvs_state )
AM_RANGE(0x00, 0xff) AM_READWRITE(cvs_input_r, cvs_scroll_w)
AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE(cvs_collision_clear, cvs_video_fx_w)
AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE(cvs_collision_r, audio_command_w)
@@ -518,7 +518,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( cvs_dac_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cvs_dac_cpu_map, AS_PROGRAM, 8, cvs_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1000, 0x107f) AM_RAM
@@ -529,7 +529,7 @@ static ADDRESS_MAP_START( cvs_dac_cpu_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cvs_dac_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( cvs_dac_cpu_io_map, AS_IO, 8, cvs_state )
/* doesn't look like it is used at all */
//AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(cvs_393hz_clock_r)
ADDRESS_MAP_END
@@ -542,7 +542,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( cvs_speech_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cvs_speech_cpu_map, AS_PROGRAM, 8, cvs_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x07ff) AM_ROM
AM_RANGE(0x1d00, 0x1d00) AM_WRITE(cvs_speech_rom_address_lo_w)
@@ -553,7 +553,7 @@ static ADDRESS_MAP_START( cvs_speech_cpu_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cvs_speech_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( cvs_speech_cpu_io_map, AS_IO, 8, cvs_state )
/* romclk is much more probable, 393 Hz results in timing issues */
// AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(cvs_393hz_clock_r)
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_DEVREAD("tms", tms_clock_r)
diff --git a/src/mame/drivers/cyberbal.c b/src/mame/drivers/cyberbal.c
index 4064205c0cc..c2cde98659a 100644
--- a/src/mame/drivers/cyberbal.c
+++ b/src/mame/drivers/cyberbal.c
@@ -148,7 +148,7 @@ static WRITE16_HANDLER( p2_reset_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, cyberbal_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0xfc0000, 0xfc0fff) AM_READWRITE(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
AM_RANGE(0xfc8000, 0xfcffff) AM_READ(atarigen_sound_upper_r)
@@ -181,7 +181,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( extra_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( extra_map, AS_PROGRAM, 16, cyberbal_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0xfc0000, 0xfdffff) AM_WRITE(atarigen_video_int_ack_w)
AM_RANGE(0xfe0000, 0xfe0fff) AM_READ(special_port0_r)
@@ -208,7 +208,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cyberbal_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x2800, 0x2801) AM_WRITE(cyberbal_sound_68k_6502_w)
@@ -231,7 +231,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_68k_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sound_68k_map, AS_PROGRAM, 16, cyberbal_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0xff8000, 0xff87ff) AM_READ(cyberbal_sound_68k_r)
AM_RANGE(0xff8800, 0xff8fff) AM_WRITE(cyberbal_sound_68k_w)
@@ -248,7 +248,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( cyberbal2p_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cyberbal2p_map, AS_PROGRAM, 16, cyberbal_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0xfc0000, 0xfc0003) AM_READ_PORT("IN0")
AM_RANGE(0xfc2000, 0xfc2003) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/cybertnk.c b/src/mame/drivers/cybertnk.c
index 0b25a0eba26..e383c8fa222 100644
--- a/src/mame/drivers/cybertnk.c
+++ b/src/mame/drivers/cybertnk.c
@@ -659,7 +659,7 @@ static READ8_HANDLER( soundport_r )
return state->m_io_ram[0] & 0xff;
}
-static ADDRESS_MAP_START( master_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( master_mem, AS_PROGRAM, 16, cybertnk_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x087fff) AM_RAM /*Work RAM*/
AM_RANGE(0x0a0000, 0x0a0fff) AM_RAM AM_BASE_MEMBER(cybertnk_state, m_spr_ram) // non-tile based sprite ram
@@ -671,7 +671,7 @@ static ADDRESS_MAP_START( master_mem, AS_PROGRAM, 16 )
AM_RANGE(0x110000, 0x1101ff) AM_READWRITE(io_r,io_w) AM_BASE_MEMBER(cybertnk_state, m_io_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( slave_mem, AS_PROGRAM, 16, cybertnk_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM /*Work RAM*/
AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM AM_BASE_MEMBER(cybertnk_state, m_roadram)
@@ -679,7 +679,7 @@ static ADDRESS_MAP_START( slave_mem, AS_PROGRAM, 16 )
AM_RANGE(0x140000, 0x140003) AM_NOP /*Watchdog? Written during loops and interrupts*/
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_mem, AS_PROGRAM, 8, cybertnk_state )
AM_RANGE(0x0000, 0x7fff ) AM_ROM
AM_RANGE(0x8000, 0x9fff ) AM_RAM
AM_RANGE(0xa001, 0xa001 ) AM_READ(soundport_r)
diff --git a/src/mame/drivers/cyclemb.c b/src/mame/drivers/cyclemb.c
index 790d0d34527..fc0626e8e47 100644
--- a/src/mame/drivers/cyclemb.c
+++ b/src/mame/drivers/cyclemb.c
@@ -249,7 +249,7 @@ static WRITE8_HANDLER( cyclemb_flip_w )
// a bunch of other things are setted here
}
-static ADDRESS_MAP_START( cyclemb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cyclemb_map, AS_PROGRAM, 8, cyclemb_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_ROMBANK("bank1")
AM_RANGE(0x9000, 0x97ff) AM_RAM AM_BASE_MEMBER(cyclemb_state, m_vram)
@@ -260,20 +260,20 @@ static ADDRESS_MAP_START( cyclemb_map, AS_PROGRAM, 8 )
AM_RANGE(0xb800, 0xbfff) AM_RAM //WRAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cyclemb_io, AS_IO, 8 )
+static ADDRESS_MAP_START( cyclemb_io, AS_IO, 8, cyclemb_state )
// ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xc000, 0xc000) AM_WRITE(cyclemb_bankswitch_w)
AM_RANGE(0xc09e, 0xc09f) AM_READWRITE(cyclemb_8741_0_r, cyclemb_8741_0_w)
AM_RANGE(0xc0bf, 0xc0bf) AM_WRITE(cyclemb_flip_w) //flip screen
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cyclemb_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cyclemb_sound_map, AS_PROGRAM, 8, cyclemb_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cyclemb_sound_io, AS_IO, 8 )
+static ADDRESS_MAP_START( cyclemb_sound_io, AS_IO, 8, cyclemb_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("aysnd", ay8910_r, ay8910_address_data_w)
AM_RANGE(0x40, 0x40) AM_READ(soundlatch_r) AM_WRITE(soundlatch2_w)
diff --git a/src/mame/drivers/d9final.c b/src/mame/drivers/d9final.c
index 83800e31227..dd584a80744 100644
--- a/src/mame/drivers/d9final.c
+++ b/src/mame/drivers/d9final.c
@@ -103,7 +103,7 @@ static READ8_HANDLER( prot_latch_r )
}
-static ADDRESS_MAP_START( d9final_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( d9final_map, AS_PROGRAM, 8, d9final_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc7ff) AM_RAM
@@ -115,7 +115,7 @@ static ADDRESS_MAP_START( d9final_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf000) AM_READ(prot_latch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( d9final_io, AS_IO, 8 )
+static ADDRESS_MAP_START( d9final_io, AS_IO, 8, d9final_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE(0x00, 0x00) AM_WRITENOP //bit 0: irq enable? screen enable?
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSWA")
diff --git a/src/mame/drivers/dacholer.c b/src/mame/drivers/dacholer.c
index 7178c84447f..f1efc68f811 100644
--- a/src/mame/drivers/dacholer.c
+++ b/src/mame/drivers/dacholer.c
@@ -207,7 +207,7 @@ static WRITE8_HANDLER( main_irq_ack_w )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, dacholer_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8800, 0x97ff) AM_RAM
AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x400) AM_RAM_WRITE(background_w) AM_BASE_MEMBER(dacholer_state, m_bgvideoram)
@@ -215,13 +215,13 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe0ff) AM_RAM AM_BASE_SIZE_MEMBER(dacholer_state, m_spriteram, m_spriteram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( itaten_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( itaten_main_map, AS_PROGRAM, 8, dacholer_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xb7ff) AM_RAM
AM_IMPORT_FROM( main_map )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( main_io_map, AS_IO, 8, dacholer_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
AM_RANGE(0x01, 0x01) AM_READ_PORT("P2")
@@ -238,13 +238,13 @@ static ADDRESS_MAP_START( main_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( snd_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( snd_map, AS_PROGRAM, 8, dacholer_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0xd000, 0xe7ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( itaten_snd_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( itaten_snd_map, AS_PROGRAM, 8, dacholer_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM
ADDRESS_MAP_END
@@ -281,7 +281,7 @@ static WRITE8_HANDLER( music_irq_w )
state->m_music_interrupt_enable = data;
}
-static ADDRESS_MAP_START( snd_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( snd_io_map, AS_IO, 8, dacholer_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(soundlatch_r, soundlatch_clear_w )
AM_RANGE(0x04, 0x04) AM_WRITE(music_irq_w)
@@ -293,7 +293,7 @@ static ADDRESS_MAP_START( snd_io_map, AS_IO, 8 )
AM_RANGE(0x8e, 0x8f) AM_DEVWRITE("ay3", ay8910_data_address_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( itaten_snd_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( itaten_snd_io_map, AS_IO, 8, dacholer_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(soundlatch_r, soundlatch_clear_w )
AM_RANGE(0x86, 0x87) AM_DEVWRITE("ay1", ay8910_data_address_w)
diff --git a/src/mame/drivers/dai3wksi.c b/src/mame/drivers/dai3wksi.c
index 7ee0ed3b116..c8b6158684b 100644
--- a/src/mame/drivers/dai3wksi.c
+++ b/src/mame/drivers/dai3wksi.c
@@ -502,7 +502,7 @@ static const sn76477_interface dai3wksi_sn76477_ic81 =
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, dai3wksi_state )
AM_RANGE(0x0000, 0x1bff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x2400, 0x24ff) AM_MIRROR(0x100) AM_READ_PORT("IN0")
diff --git a/src/mame/drivers/dambustr.c b/src/mame/drivers/dambustr.c
index c5e1167d91c..711edc12f55 100644
--- a/src/mame/drivers/dambustr.c
+++ b/src/mame/drivers/dambustr.c
@@ -76,7 +76,7 @@ static WRITE8_DEVICE_HANDLER( dambustr_noise_enable_w )
}
-static ADDRESS_MAP_START( dambustr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dambustr_map, AS_PROGRAM, 8, dambustr_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8000) AM_WRITE(dambustr_bg_color_w)
diff --git a/src/mame/drivers/darius.c b/src/mame/drivers/darius.c
index a0cba7fe0f6..169a3901b61 100644
--- a/src/mame/drivers/darius.c
+++ b/src/mame/drivers/darius.c
@@ -242,7 +242,7 @@ logerror("CPU #0 PC %06x: warning - write unmapped ioc offset %06x with %04x\n",
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( darius_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( darius_map, AS_PROGRAM, 16, darius_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_RAM /* main RAM */
AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE(cpua_ctrl_w)
@@ -259,7 +259,7 @@ static ADDRESS_MAP_START( darius_map, AS_PROGRAM, 16 )
AM_RANGE(0xe10000, 0xe10fff) AM_RAM /* ??? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( darius_cpub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( darius_cpub_map, AS_PROGRAM, 16, darius_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x04ffff) AM_RAM /* local RAM */
AM_RANGE(0xc00000, 0xc0007f) AM_WRITE(darius_ioc_w) /* only writes $c00050 (?) */
@@ -490,7 +490,7 @@ static WRITE8_DEVICE_HANDLER( darius_write_portB1 )
Sound memory structures / ADPCM
*****************************************************/
-static ADDRESS_MAP_START( darius_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( darius_sound_map, AS_PROGRAM, 8, darius_state )
AM_RANGE(0x0000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
@@ -507,7 +507,7 @@ static ADDRESS_MAP_START( darius_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xdc00, 0xdc00) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( darius_sound2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( darius_sound2_map, AS_PROGRAM, 8, darius_state )
AM_RANGE(0x0000, 0xffff) AM_ROM AM_WRITENOP
/* yes, no RAM */
ADDRESS_MAP_END
@@ -566,7 +566,7 @@ static WRITE8_DEVICE_HANDLER( adpcm_data_w )
msm5205_reset_w(device, !(data & 0x20)); /* my best guess, but it could be output enable as well */
}
-static ADDRESS_MAP_START( darius_sound2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( darius_sound2_io_map, AS_IO, 8, darius_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(adpcm_command_read, adpcm_nmi_disable)
AM_RANGE(0x01, 0x01) AM_WRITE(adpcm_nmi_enable)
diff --git a/src/mame/drivers/darkhors.c b/src/mame/drivers/darkhors.c
index 81a506093da..5be90aeea62 100644
--- a/src/mame/drivers/darkhors.c
+++ b/src/mame/drivers/darkhors.c
@@ -310,7 +310,7 @@ static WRITE32_HANDLER( darkhors_unk1_w )
// if (ACCESSING_BITS_16_31) popmessage("%04X",data >> 16);
}
-static ADDRESS_MAP_START( darkhors_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( darkhors_map, AS_PROGRAM, 32, darkhors_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x400000, 0x41ffff) AM_RAM
@@ -346,7 +346,7 @@ static WRITE32_HANDLER( jclub2_tileram_w )
}
-static ADDRESS_MAP_START( jclub2_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( jclub2_map, AS_PROGRAM, 32, darkhors_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x400000, 0x41ffff) AM_RAM
@@ -373,7 +373,7 @@ static ADDRESS_MAP_START( jclub2_map, AS_PROGRAM, 32 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jclub2o_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( jclub2o_map, AS_PROGRAM, 32, darkhors_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x400000, 0x41ffff) AM_RAM
@@ -725,7 +725,7 @@ static MACHINE_CONFIG_START( jclub2, darkhors_state )
MCFG_VIDEO_START(jclub2)
MACHINE_CONFIG_END
-static ADDRESS_MAP_START( st0016_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( st0016_mem, AS_PROGRAM, 8, darkhors_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xe900, 0xe9ff) AM_DEVREADWRITE("stsnd", st0016_snd_r, st0016_snd_w)
@@ -733,7 +733,7 @@ static ADDRESS_MAP_START( st0016_mem, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( st0016_io, AS_IO, 8 )
+static ADDRESS_MAP_START( st0016_io, AS_IO, 8, darkhors_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xbf) AM_READ(st0016_vregs_r) AM_WRITE(st0016_vregs_w)
//AM_RANGE(0xc0, 0xc0) AM_READ(cmd1_r)
diff --git a/src/mame/drivers/darkmist.c b/src/mame/drivers/darkmist.c
index 706f64b6db3..76cd8ba4b1b 100644
--- a/src/mame/drivers/darkmist.c
+++ b/src/mame/drivers/darkmist.c
@@ -36,7 +36,7 @@ static WRITE8_HANDLER(darkmist_hw_w)
memory_set_bankptr(space->machine(), "bank1",&space->machine().region("maincpu")->base()[0x010000+((data&0x80)?0x4000:0)]);
}
-static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, darkmist_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc801, 0xc801) AM_READ_PORT("P1")
diff --git a/src/mame/drivers/darkseal.c b/src/mame/drivers/darkseal.c
index ee2d560b1d0..3eb5b2a3480 100644
--- a/src/mame/drivers/darkseal.c
+++ b/src/mame/drivers/darkseal.c
@@ -60,7 +60,7 @@ static READ16_HANDLER( darkseal_control_r )
/******************************************************************************/
-static ADDRESS_MAP_START( darkseal_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( darkseal_map, AS_PROGRAM, 16, darkseal_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE_MEMBER(darkseal_state, m_ram)
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
@@ -83,7 +83,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, darkseal_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ym2", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/dassault.c b/src/mame/drivers/dassault.c
index 1f407ea80c9..75ec726e091 100644
--- a/src/mame/drivers/dassault.c
+++ b/src/mame/drivers/dassault.c
@@ -209,7 +209,7 @@ static READ16_HANDLER( shared_ram_r )
/**********************************************************************************/
-static ADDRESS_MAP_START( dassault_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dassault_map, AS_PROGRAM, 16, dassault_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM_DEVWRITE("deco_common", decocomn_nonbuffered_palette_w) AM_BASE_GENERIC(paletteram)
@@ -238,7 +238,7 @@ static ADDRESS_MAP_START( dassault_map, AS_PROGRAM, 16 )
AM_RANGE(0x3fe000, 0x3fefff) AM_READWRITE(shared_ram_r, shared_ram_w) AM_BASE_MEMBER(dassault_state, m_shared_ram) /* Shared ram */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dassault_sub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dassault_sub_map, AS_PROGRAM, 16, dassault_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_DEVWRITE_MODERN("spriteram", buffered_spriteram16_device, write)
@@ -253,7 +253,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, dassault_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ym2", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/dblewing.c b/src/mame/drivers/dblewing.c
index dd95d3ec6fb..e4e94286221 100644
--- a/src/mame/drivers/dblewing.c
+++ b/src/mame/drivers/dblewing.c
@@ -304,7 +304,7 @@ static WRITE16_HANDLER( dblewing_prot_w )
if ((offset * 2) == 0x788) { state->m_788_data = data; return; }
}
-static ADDRESS_MAP_START( dblewing_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dblewing_map, AS_PROGRAM, 16, dblewing_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_DEVREADWRITE("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
@@ -342,7 +342,7 @@ static READ8_HANDLER(irq_latch_r)
return state->m_sound_irq;
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, dblewing_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym2151_status_port_r,ym2151_w)
@@ -352,7 +352,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf000) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io, AS_IO, 8, dblewing_state )
AM_RANGE(0x0000, 0xffff) AM_ROM AM_REGION("audio_data", 0)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/dbz.c b/src/mame/drivers/dbz.c
index cf049bb9341..ee347858ab0 100644
--- a/src/mame/drivers/dbz.c
+++ b/src/mame/drivers/dbz.c
@@ -115,7 +115,7 @@ static void dbz_sound_irq( device_t *device, int irq )
device_set_input_line(state->m_audiocpu, 0, (irq) ? ASSERT_LINE : CLEAR_LINE);
}
-static ADDRESS_MAP_START( dbz_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dbz_map, AS_PROGRAM, 16, dbz_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x480000, 0x48ffff) AM_RAM
AM_RANGE(0x490000, 0x491fff) AM_DEVREADWRITE("k056832", k056832_ram_word_r, k056832_ram_word_w) // '157 RAM is mirrored twice
@@ -152,7 +152,7 @@ ADDRESS_MAP_END
/* dbz sound */
/* IRQ: from YM2151. NMI: from 68000. Port 0: write to ack NMI */
-static ADDRESS_MAP_START( dbz_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dbz_sound_map, AS_PROGRAM, 8, dbz_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_RAM
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -160,7 +160,7 @@ static ADDRESS_MAP_START( dbz_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe001) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dbz_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( dbz_sound_io_map, AS_IO, 8, dbz_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/dcheese.c b/src/mame/drivers/dcheese.c
index 3b6ff422097..8f8cb0ebae3 100644
--- a/src/mame/drivers/dcheese.c
+++ b/src/mame/drivers/dcheese.c
@@ -214,7 +214,7 @@ static WRITE8_HANDLER( bsmt_data_w )
*
*************************************/
-static ADDRESS_MAP_START( main_cpu_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_cpu_map, AS_PROGRAM, 16, dcheese_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
@@ -236,7 +236,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_cpu_map, AS_PROGRAM, 8, dcheese_state )
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)
diff --git a/src/mame/drivers/dcon.c b/src/mame/drivers/dcon.c
index b851a824cac..daf9c575707 100644
--- a/src/mame/drivers/dcon.c
+++ b/src/mame/drivers/dcon.c
@@ -20,7 +20,7 @@
/***************************************************************************/
-static ADDRESS_MAP_START( dcon_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dcon_map, AS_PROGRAM, 16, dcon_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0x80000, 0x8bfff) AM_RAM
diff --git a/src/mame/drivers/dday.c b/src/mame/drivers/dday.c
index 95a9a0da262..682d0142486 100644
--- a/src/mame/drivers/dday.c
+++ b/src/mame/drivers/dday.c
@@ -55,7 +55,7 @@ write:
#include "includes/dday.h"
-static ADDRESS_MAP_START( dday_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dday_map, AS_PROGRAM, 8, dday_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4000) AM_WRITE(dday_sl_control_w)
AM_RANGE(0x5000, 0x53ff) AM_RAM_WRITE(dday_textvideoram_w) AM_BASE_MEMBER(dday_state, m_textvideoram)
diff --git a/src/mame/drivers/ddayjlc.c b/src/mame/drivers/ddayjlc.c
index 20551fe0f0c..249cd2e71fe 100644
--- a/src/mame/drivers/ddayjlc.c
+++ b/src/mame/drivers/ddayjlc.c
@@ -240,7 +240,7 @@ static WRITE8_HANDLER( i8257_LMSR_w )
}
}
-static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8, ddayjlc_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM AM_BASE_MEMBER(ddayjlc_state, m_mainram)
AM_RANGE(0x9000, 0x93ff) AM_RAM AM_BASE_MEMBER(ddayjlc_state, m_spriteram)
@@ -266,7 +266,7 @@ static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8, ddayjlc_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x3000, 0x3000) AM_DEVREADWRITE("ay1", ay8910_r, ay8910_data_w)
diff --git a/src/mame/drivers/ddealer.c b/src/mame/drivers/ddealer.c
index b3c77266f44..987402cc1e2 100644
--- a/src/mame/drivers/ddealer.c
+++ b/src/mame/drivers/ddealer.c
@@ -452,7 +452,7 @@ static WRITE16_HANDLER( ddealer_mcu_shared_w )
}
}
-static ADDRESS_MAP_START( ddealer, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ddealer, AS_PROGRAM, 16, ddealer_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/ddenlovr.c b/src/mame/drivers/ddenlovr.c
index 37f949c8dc1..b956413fe28 100644
--- a/src/mame/drivers/ddenlovr.c
+++ b/src/mame/drivers/ddenlovr.c
@@ -1722,7 +1722,7 @@ static WRITE16_HANDLER( quiz365_protection_w )
COMBINE_DATA(state->m_quiz365_protection + offset);
}
-static ADDRESS_MAP_START( quiz365_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( quiz365_map, AS_PROGRAM, 16, dynax_state )
AM_RANGE(0x000000, 0x17ffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x2003ff) AM_WRITE(ddenlovr_palette_w) // Palette
@@ -1785,7 +1785,7 @@ static CUSTOM_INPUT( ddenlovj_blitter_r )
return state->m_ddenlovr_blitter_irq_flag ? 0x03 : 0x00; // bit 4 = 1 -> blitter busy
}
-static ADDRESS_MAP_START( ddenlovj_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ddenlovj_map, AS_PROGRAM, 16, dynax_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x2003ff) AM_WRITE(ddenlovr_palette_w) // Palette
@@ -1844,7 +1844,7 @@ static WRITE16_HANDLER( ddenlovrk_protection2_w )
state->m_oki->set_bank_base(((*state->m_protection2) & 0x7) * 0x40000);
}
-static ADDRESS_MAP_START( ddenlovrk_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ddenlovrk_map, AS_PROGRAM, 16, dynax_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x100001) AM_RAM_READ(ddenlovrk_protection1_r) AM_BASE_MEMBER(dynax_state, m_protection1)
@@ -1883,7 +1883,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( ddenlovr_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ddenlovr_map, AS_PROGRAM, 16, dynax_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x300000, 0x300001) AM_DEVWRITE("oki", ddenlovr_oki_bank_w)
@@ -1972,7 +1972,7 @@ static WRITE16_DEVICE_HANDLER( nettoqc_oki_bank_w )
}
}
-static ADDRESS_MAP_START( nettoqc_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( nettoqc_map, AS_PROGRAM, 16, dynax_state )
AM_RANGE(0x000000, 0x17ffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x2003ff) AM_WRITE(ddenlovr_palette_w) // Palette
@@ -2037,14 +2037,14 @@ static WRITE8_HANDLER( rongrong_select_w )
}
-static ADDRESS_MAP_START( quizchq_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( quizchq_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") AM_WRITE(rongrong_palette_w) // ROM (Banked)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( quizchq_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( quizchq_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(rongrong_blitter_w)
AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
@@ -2074,14 +2074,14 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( rongrong_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rongrong_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") AM_WRITE(rongrong_palette_w) // ROM (Banked)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rongrong_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( rongrong_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(rongrong_blitter_w)
AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
@@ -2186,7 +2186,7 @@ static READ8_HANDLER( mmpanic_link_r ) { return 0xff; }
/* Main CPU */
-static ADDRESS_MAP_START( mmpanic_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mmpanic_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE(0x0051, 0x0051) AM_READ(magic_r) // ?
AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
@@ -2194,7 +2194,7 @@ static ADDRESS_MAP_START( mmpanic_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") AM_WRITE(rongrong_palette_w) // ROM (Banked)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mmpanic_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( mmpanic_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x0f) AM_DEVREADWRITE_MODERN("rtc", msm6242_device, read, write)
@@ -2240,13 +2240,13 @@ ADDRESS_MAP_END
/* Sound CPU */
-static ADDRESS_MAP_START( mmpanic_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mmpanic_sound_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
AM_RANGE(0x6000, 0x66ff) AM_RAM // RAM
AM_RANGE(0x8000, 0xffff) AM_ROM // ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mmpanic_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( mmpanic_sound_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
AM_RANGE(0x02, 0x02) AM_READNOP // read just before port 00
@@ -2265,7 +2265,7 @@ ADDRESS_MAP_END
/* Main CPU */
-static ADDRESS_MAP_START( funkyfig_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( funkyfig_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
@@ -2356,7 +2356,7 @@ static WRITE8_HANDLER( funkyfig_lockout_w )
}
}
-static ADDRESS_MAP_START( funkyfig_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( funkyfig_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write) // Sound
AM_RANGE(0x01, 0x01) AM_WRITE(mmpanic_leds_w) // Leds
@@ -2389,7 +2389,7 @@ ADDRESS_MAP_END
/* Sound CPU */
-static ADDRESS_MAP_START( funkyfig_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( funkyfig_sound_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_READ(soundlatch_r)
AM_RANGE(0x04, 0x04) AM_READNOP // read only once at the start
@@ -2409,7 +2409,7 @@ static WRITE8_HANDLER( hanakanz_rombank_w )
memory_set_bank(space->machine(), "bank2", ((data & 0xf0) >> 4));
}
-static ADDRESS_MAP_START( hanakanz_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hanakanz_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
@@ -2539,7 +2539,7 @@ static READ8_HANDLER( hanakanz_rand_r )
return space->machine().rand();
}
-static ADDRESS_MAP_START( hanakanz_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( hanakanz_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x2c, 0x2c) AM_READ(hanakanz_busy_r) AM_DEVWRITE("oki", hanakanz_oki_bank_w)
AM_RANGE(0x2e, 0x2e) AM_WRITE(hanakanz_blitter_reg_w)
@@ -2560,7 +2560,7 @@ static ADDRESS_MAP_START( hanakanz_portmap, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hkagerou_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( hkagerou_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x2c, 0x2c) AM_READ(hanakanz_busy_r) AM_DEVWRITE("oki", hanakanz_oki_bank_w)
AM_RANGE(0x2e, 0x2e) AM_WRITE(hanakanz_blitter_reg_w)
@@ -2593,7 +2593,7 @@ static READ8_HANDLER( mjreach1_protection_r )
return state->m_prot_val;
}
-static ADDRESS_MAP_START( mjreach1_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( mjreach1_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x2c, 0x2c) AM_READ(hanakanz_busy_r) AM_DEVWRITE("oki", hanakanz_oki_bank_w)
AM_RANGE(0x2e, 0x2e) AM_WRITE(hanakanz_blitter_reg_w)
@@ -2725,7 +2725,7 @@ static WRITE8_DEVICE_HANDLER( mjchuuka_oki_bank_w )
#endif
}
-static ADDRESS_MAP_START( mjchuuka_portmap, AS_IO, 8 ) // 16 bit I/O
+static ADDRESS_MAP_START( mjchuuka_portmap, AS_IO, 8, dynax_state ) // 16 bit I/O
AM_RANGE(0x13, 0x13) AM_MIRROR(0xff00) AM_READ(hanakanz_rand_r)
AM_RANGE(0x1c, 0x1c) AM_MIRROR(0xff00) AM_WRITE(hanakanz_rombank_w)
AM_RANGE(0x1e, 0x1e) AM_MIRROR(0xff00) AM_DEVWRITE("oki", mjchuuka_oki_bank_w )
@@ -2753,7 +2753,7 @@ ADDRESS_MAP_END
Mahjong The Mysterious World
***************************************************************************/
-static ADDRESS_MAP_START( mjmyster_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mjmyster_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
@@ -2849,7 +2849,7 @@ static WRITE8_HANDLER( mjmyster_blitter_w )
blitter_w(space, 0, offset, data, 0xfc);
}
-static ADDRESS_MAP_START( mjmyster_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( mjmyster_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(mjmyster_blitter_w)
AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
@@ -2899,7 +2899,7 @@ static READ8_HANDLER( hginga_protection_r )
return rom[0x10000 + 0x8000 * (state->m_hginga_rombank & 0x7) + 0xf601 - 0x8000];
}
-static ADDRESS_MAP_START( hginga_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hginga_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
@@ -3029,7 +3029,7 @@ static WRITE8_HANDLER( hginga_blitter_w )
blitter_w(space, 0, offset, data, 0xfc);
}
-static ADDRESS_MAP_START( hginga_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( hginga_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(hginga_blitter_w)
AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
@@ -3134,7 +3134,7 @@ static READ8_HANDLER( hgokou_protection_r )
return rom[0x10000 + 0x8000 * (state->m_hginga_rombank & 0x7) + 0xe601 - 0x8000];
}
-static ADDRESS_MAP_START( hgokou_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hgokou_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
@@ -3145,7 +3145,7 @@ static ADDRESS_MAP_START( hgokou_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hgokou_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( hgokou_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(hginga_blitter_w)
AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
@@ -3202,7 +3202,7 @@ static READ8_HANDLER( hgokbang_input_r )
return 0xff;
}
-static ADDRESS_MAP_START( hgokbang_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( hgokbang_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(hginga_blitter_w)
AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
@@ -3290,7 +3290,7 @@ static WRITE8_HANDLER( hparadis_coin_w )
}
}
-static ADDRESS_MAP_START( hparadis_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hparadis_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
@@ -3299,7 +3299,7 @@ static ADDRESS_MAP_START( hparadis_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
// the RTC seems unused
-static ADDRESS_MAP_START( hparadis_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( hparadis_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(rongrong_blitter_w)
AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
@@ -3344,7 +3344,7 @@ static READ8_HANDLER( mjmywrld_coins_r )
return 0xff;
}
-static ADDRESS_MAP_START( mjmywrld_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( mjmywrld_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(mjmyster_blitter_w)
AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
@@ -3422,7 +3422,7 @@ static READ16_HANDLER( akamaru_e0010d_r )
return 0xffff; // read but not used, it seems
}
-static ADDRESS_MAP_START( akamaru_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( akamaru_map, AS_PROGRAM, 16, dynax_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM
AM_RANGE(0x213570, 0x213571) AM_WRITE(akamaru_protection1_w) // OKI bank
@@ -3530,7 +3530,7 @@ static WRITE8_HANDLER( mjflove_coincounter_w )
}
}
-static ADDRESS_MAP_START( mjflove_portmap, AS_IO, 8 ) // 16 bit I/O
+static ADDRESS_MAP_START( mjflove_portmap, AS_IO, 8, dynax_state ) // 16 bit I/O
AM_RANGE(0x0010, 0x0010) AM_READ(hanakanz_rand_r) AM_MIRROR(0xff00)
AM_RANGE(0x001c, 0x001c) AM_READ_PORT("DSW2") AM_MIRROR(0xff00)
AM_RANGE(0x001e, 0x001e) AM_WRITE(hanakanz_keyb_w) AM_MIRROR(0xff00)
@@ -3582,7 +3582,7 @@ static READ8_HANDLER( jongtei_busy_r )
return 0x04; // !bit 2 = blitter busy
}
-static ADDRESS_MAP_START( jongtei_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( jongtei_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x2c, 0x2c) AM_READ(jongtei_busy_r) AM_DEVWRITE("oki", jongtei_okibank_w)
AM_RANGE(0x2e, 0x2e) AM_WRITE(hanakanz_blitter_reg_w)
@@ -3606,7 +3606,7 @@ ADDRESS_MAP_END
Mahjong Seiryu Densetsu
***************************************************************************/
-static ADDRESS_MAP_START( sryudens_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sryudens_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
@@ -3655,7 +3655,7 @@ static WRITE8_HANDLER( sryudens_rambank_w )
//logerror("%04x: rambank = %02x\n", cpu_get_pc(&space->device()), data);
}
-static ADDRESS_MAP_START( sryudens_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sryudens_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
AM_RANGE(0x02, 0x03) AM_DEVWRITE("ymsnd", ym2413_w)
@@ -3791,7 +3791,7 @@ static READ8_HANDLER( daimyojn_year_hack_r )
return offset ? 1 : 0; // year = 0x10 (BCD)
}
-static ADDRESS_MAP_START( daimyojn_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( daimyojn_portmap, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x2c, 0x2c) AM_READ(jongtei_busy_r) AM_DEVWRITE("oki", daimyojn_okibank_w)
AM_RANGE(0x2e, 0x2e) AM_WRITE(daimyojn_palette_sel_w)
diff --git a/src/mame/drivers/ddragon.c b/src/mame/drivers/ddragon.c
index 463c6ed1fe7..9b1b45ec99d 100644
--- a/src/mame/drivers/ddragon.c
+++ b/src/mame/drivers/ddragon.c
@@ -501,7 +501,7 @@ static READ8_HANDLER( dd_adpcm_status_r )
*
*************************************/
-static ADDRESS_MAP_START( ddragon_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ddragon_map, AS_PROGRAM, 8, ddragon_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_BASE_MEMBER(ddragon_state, m_rambase)
AM_RANGE(0x1000, 0x11ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x1200, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_BASE_GENERIC(paletteram2)
@@ -523,7 +523,7 @@ static ADDRESS_MAP_START( ddragon_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dd2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dd2_map, AS_PROGRAM, 8, ddragon_state )
AM_RANGE(0x0000, 0x17ff) AM_RAM
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(ddragon_fgvideoram_w) AM_BASE_MEMBER(ddragon_state, m_fgvideoram)
AM_RANGE(0x2000, 0x2fff) AM_READWRITE(ddragon_spriteram_r, ddragon_spriteram_w) AM_BASE_MEMBER(ddragon_state, m_spriteram)
@@ -551,7 +551,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, ddragon_state )
AM_RANGE(0x0000, 0x001f) AM_READWRITE(ddragon_hd63701_internal_registers_r, ddragon_hd63701_internal_registers_w)
AM_RANGE(0x001f, 0x0fff) AM_RAM
AM_RANGE(0x8000, 0x8fff) AM_READWRITE(ddragon_spriteram_r, ddragon_spriteram_w)
@@ -559,14 +559,14 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ddragonba_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ddragonba_sub_map, AS_PROGRAM, 8, ddragon_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x8000, 0x8fff) AM_READWRITE(ddragon_spriteram_r, ddragon_spriteram_w)
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dd2_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dd2_sub_map, AS_PROGRAM, 8, ddragon_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc3ff) AM_READWRITE(ddragon_spriteram_r, ddragon_spriteram_w)
AM_RANGE(0xd000, 0xd000) AM_WRITE(ddragon2_sub_irq_ack_w)
@@ -581,7 +581,7 @@ static WRITE8_HANDLER( ddragonba_port_w )
device_set_input_line(state->m_sub_cpu, state->m_sprite_irq, CLEAR_LINE );
}
-static ADDRESS_MAP_START( ddragonba_sub_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( ddragonba_sub_portmap, AS_IO, 8, ddragon_state )
AM_RANGE(0x0000, 0xffff) AM_WRITE(ddragonba_port_w)
ADDRESS_MAP_END
@@ -593,7 +593,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, ddragon_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_READ(soundlatch_r)
AM_RANGE(0x1800, 0x1800) AM_READ(dd_adpcm_status_r)
@@ -603,7 +603,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dd2_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dd2_sound_map, AS_PROGRAM, 8, ddragon_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("fmsnd", ym2151_r, ym2151_w)
@@ -619,7 +619,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, ddragon_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0007) AM_RAM_WRITE(darktowr_mcu_w) AM_BASE_MEMBER(ddragon_state, m_darktowr_mcu_ports)
AM_RANGE(0x0008, 0x007f) AM_RAM
diff --git a/src/mame/drivers/ddragon3.c b/src/mame/drivers/ddragon3.c
index efdeb950b10..79b3d836647 100644
--- a/src/mame/drivers/ddragon3.c
+++ b/src/mame/drivers/ddragon3.c
@@ -207,7 +207,7 @@ static WRITE16_HANDLER( ddragon3_io_w )
*
*************************************/
-static ADDRESS_MAP_START( ddragon3_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ddragon3_map, AS_PROGRAM, 16, ddragon3_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(ddragon3_fg_videoram_w) AM_BASE_MEMBER(ddragon3_state, m_fg_videoram) /* Foreground (32x32 Tiles - 4 by per tile) */
AM_RANGE(0x082000, 0x0827ff) AM_RAM_WRITE(ddragon3_bg_videoram_w) AM_BASE_MEMBER(ddragon3_state, m_bg_videoram) /* Background (32x32 Tiles - 2 by per tile) */
@@ -222,7 +222,7 @@ static ADDRESS_MAP_START( ddragon3_map, AS_PROGRAM, 16 )
AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* working RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dd3b_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dd3b_map, AS_PROGRAM, 16, ddragon3_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(ddragon3_fg_videoram_w) AM_BASE_MEMBER(ddragon3_state, m_fg_videoram) /* Foreground (32x32 Tiles - 4 by per tile) */
AM_RANGE(0x081000, 0x081fff) AM_RAM AM_BASE_MEMBER(ddragon3_state, m_spriteram)
@@ -237,7 +237,7 @@ static ADDRESS_MAP_START( dd3b_map, AS_PROGRAM, 16 )
AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* working RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ctribe_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ctribe_map, AS_PROGRAM, 16, ddragon3_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(ddragon3_fg_videoram_w) AM_BASE_MEMBER(ddragon3_state, m_fg_videoram) /* Foreground (32x32 Tiles - 4 by per tile) */
AM_RANGE(0x081000, 0x081fff) AM_RAM AM_BASE_MEMBER(ddragon3_state, m_spriteram)
@@ -253,7 +253,7 @@ static ADDRESS_MAP_START( ctribe_map, AS_PROGRAM, 16 )
AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* working RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, ddragon3_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc801) AM_DEVREADWRITE("ym2151", ym2151_r, ym2151_w)
@@ -262,7 +262,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe800, 0xe800) AM_DEVWRITE("oki", oki_bankswitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ctribe_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ctribe_sound_map, AS_PROGRAM, 8, ddragon3_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("ym2151", ym2151_status_port_r, ym2151_w)
diff --git a/src/mame/drivers/ddribble.c b/src/mame/drivers/ddribble.c
index 2c83402d152..c8269c1a2bd 100644
--- a/src/mame/drivers/ddribble.c
+++ b/src/mame/drivers/ddribble.c
@@ -113,7 +113,7 @@ static WRITE8_DEVICE_HANDLER( ddribble_vlm5030_ctrl_w )
}
-static ADDRESS_MAP_START( cpu0_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu0_map, AS_PROGRAM, 8, ddribble_state )
AM_RANGE(0x0000, 0x0004) AM_WRITE(K005885_0_w) /* video registers (005885 #1) */
AM_RANGE(0x0800, 0x0804) AM_WRITE(K005885_1_w) /* video registers (005885 #2) */
AM_RANGE(0x1800, 0x187f) AM_RAM AM_BASE_MEMBER(ddribble_state, m_paletteram) /* palette */
@@ -127,7 +127,7 @@ static ADDRESS_MAP_START( cpu0_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8, ddribble_state )
AM_RANGE(0x0000, 0x1fff) AM_READWRITE(ddribble_sharedram_r, ddribble_sharedram_w) /* shared RAM with CPU #0 */
AM_RANGE(0x2000, 0x27ff) AM_READWRITE(ddribble_snd_sharedram_r, ddribble_snd_sharedram_w) /* shared RAM with CPU #2 */
AM_RANGE(0x2800, 0x2800) AM_READ_PORT("DSW1")
@@ -141,7 +141,7 @@ static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, ddribble_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_MEMBER(ddribble_state, m_snd_sharedram) /* shared RAM with CPU #1 */
AM_RANGE(0x1000, 0x1001) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w) /* YM2203 */
AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("vlm", vlm5030_data_w) /* Speech data */
diff --git a/src/mame/drivers/ddz.c b/src/mame/drivers/ddz.c
index 4622f88306e..95d025a9270 100644
--- a/src/mame/drivers/ddz.c
+++ b/src/mame/drivers/ddz.c
@@ -25,7 +25,7 @@ public:
};
-static ADDRESS_MAP_START( ddz_mem, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( ddz_mem, AS_PROGRAM, 32, ddz_state )
AM_RANGE(0x00000000, 0x003fffff) AM_ROM AM_WRITENOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/deadang.c b/src/mame/drivers/deadang.c
index e0a80b2a94e..52f9dfc63e4 100644
--- a/src/mame/drivers/deadang.c
+++ b/src/mame/drivers/deadang.c
@@ -56,7 +56,7 @@ static READ16_HANDLER( ghunter_trackball_high_r )
/* Memory Maps */
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, deadang_state )
AM_RANGE(0x00000, 0x037ff) AM_RAM
AM_RANGE(0x03800, 0x03fff) AM_RAM AM_BASE_MEMBER(deadang_state, m_spriteram)
AM_RANGE(0x04000, 0x04fff) AM_RAM AM_SHARE("share1")
@@ -74,7 +74,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0xc0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16, deadang_state )
AM_RANGE(0x00000, 0x037ff) AM_RAM
AM_RANGE(0x03800, 0x03fff) AM_RAM_WRITE(deadang_foreground_w) AM_BASE_MEMBER(deadang_state, m_video_data)
AM_RANGE(0x04000, 0x04fff) AM_RAM AM_SHARE("share1")
diff --git a/src/mame/drivers/dec0.c b/src/mame/drivers/dec0.c
index e299515497d..3f8be4ab192 100644
--- a/src/mame/drivers/dec0.c
+++ b/src/mame/drivers/dec0.c
@@ -281,7 +281,7 @@ static WRITE16_HANDLER( midres_sound_w )
/******************************************************************************/
-static ADDRESS_MAP_START( dec0_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dec0_map, AS_PROGRAM, 16, dec0_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x240000, 0x240007) AM_DEVWRITE("tilegen1", deco_bac06_pf_control_0_w) /* text layer */
AM_RANGE(0x240010, 0x240017) AM_DEVWRITE("tilegen1", deco_bac06_pf_control_1_w)
@@ -311,14 +311,14 @@ static ADDRESS_MAP_START( dec0_map, AS_PROGRAM, 16 )
AM_RANGE(0xffc000, 0xffc7ff) AM_RAM AM_BASE_MEMBER(dec0_state, m_spriteram) /* Sprites */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( robocop_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( robocop_sub_map, AS_PROGRAM, 8, dec0_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAM /* Main ram */
AM_RANGE(0x1f2000, 0x1f3fff) AM_RAM AM_BASE_MEMBER(dec0_state, m_robocop_shared_ram) /* Shared ram */
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(h6280_irq_status_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hippodrm_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hippodrm_sub_map, AS_PROGRAM, 8, dec0_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x180000, 0x1800ff) AM_READWRITE(hippodrm_shared_r, hippodrm_shared_w)
AM_RANGE(0x1a0000, 0x1a0007) AM_DEVWRITE("tilegen3", deco_bac06_pf_control0_8bit_packed_w)
@@ -495,7 +495,7 @@ void slyspy_set_protection_map(running_machine& machine, int type)
-static ADDRESS_MAP_START( slyspy_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( slyspy_map, AS_PROGRAM, 16, dec0_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
/* The location of p1 & pf2 can change in the 240000 - 24ffff region according to protection */
@@ -516,7 +516,7 @@ static ADDRESS_MAP_START( slyspy_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( midres_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( midres_map, AS_PROGRAM, 16, dec0_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE_MEMBER(dec0_state, m_ram)
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_BASE_MEMBER(dec0_state, m_spriteram)
@@ -550,7 +550,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( dec0_s_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dec0_s_map, AS_PROGRAM, 8, dec0_state )
AM_RANGE(0x0000, 0x05ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym2", ym3812_w)
@@ -560,7 +560,7 @@ static ADDRESS_MAP_START( dec0_s_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* Physical memory map (21 bits) */
-static ADDRESS_MAP_START( slyspy_s_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slyspy_s_map, AS_PROGRAM, 8, dec0_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x090000, 0x090001) AM_DEVWRITE("ym2", ym3812_w)
AM_RANGE(0x0a0000, 0x0a0001) AM_READNOP /* Protection counter */
@@ -571,7 +571,7 @@ static ADDRESS_MAP_START( slyspy_s_map, AS_PROGRAM, 8 )
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(h6280_irq_status_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( midres_s_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( midres_s_map, AS_PROGRAM, 8, dec0_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x108000, 0x108001) AM_DEVWRITE("ym2", ym3812_w)
AM_RANGE(0x118000, 0x118001) AM_DEVWRITE("ym1", ym2203_w)
@@ -585,7 +585,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( secretab_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( secretab_map, AS_PROGRAM, 16, dec0_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x240000, 0x240007) AM_DEVWRITE("tilegen2", deco_bac06_pf_control_0_w)
AM_RANGE(0x240010, 0x240017) AM_DEVWRITE("tilegen2", deco_bac06_pf_control_1_w)
@@ -613,7 +613,7 @@ static ADDRESS_MAP_START( secretab_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( automat_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( automat_map, AS_PROGRAM, 16, dec0_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x240000, 0x240007) AM_DEVWRITE("tilegen1", deco_bac06_pf_control_0_w) /* text layer */
@@ -651,7 +651,7 @@ static WRITE8_HANDLER( automat_adpcm_w )
state->m_automat_adpcm_byte = data;
}
-static ADDRESS_MAP_START( automat_s_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( automat_s_map, AS_PROGRAM, 8, dec0_state )
AM_RANGE(0xc000, 0xc7ff) AM_RAM
// AM_RANGE(0xc800, 0xc800) AM_WRITE(ym2203_control_port_0_w)
// AM_RANGE(0xc801, 0xc801) AM_WRITE(ym2203_write_port_0_w)
@@ -662,7 +662,7 @@ static ADDRESS_MAP_START( automat_s_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, dec0_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READWRITE(dec0_mcu_port_r, dec0_mcu_port_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/dec8.c b/src/mame/drivers/dec8.c
index 8ec36fbfa80..71ffa15a3fa 100644
--- a/src/mame/drivers/dec8.c
+++ b/src/mame/drivers/dec8.c
@@ -594,7 +594,7 @@ static WRITE8_HANDLER( flip_screen_w ) { flip_screen_set(space->machine(), data)
/******************************************************************************/
-static ADDRESS_MAP_START( lastmisn_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lastmisn_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_SHARE("share3") AM_BASE_GENERIC(paletteram)
AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_SHARE("share4") AM_BASE_GENERIC(paletteram2)
@@ -620,7 +620,7 @@ static ADDRESS_MAP_START( lastmisn_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lastmisn_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lastmisn_sub_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_SHARE("share3")
AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_SHARE("share4")
@@ -640,7 +640,7 @@ static ADDRESS_MAP_START( lastmisn_sub_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shackled_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( shackled_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_SHARE("share3") AM_BASE_GENERIC(paletteram)
AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_SHARE("share4") AM_BASE_GENERIC(paletteram2)
@@ -664,7 +664,7 @@ static ADDRESS_MAP_START( shackled_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shackled_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( shackled_sub_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_SHARE("share3")
AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_SHARE("share4")
@@ -689,7 +689,7 @@ static ADDRESS_MAP_START( shackled_sub_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gondo_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gondo_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x17ff) AM_RAM
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(dec8_videoram_w) AM_BASE_SIZE_MEMBER(dec8_state, m_videoram, m_videoram_size)
AM_RANGE(0x2000, 0x27ff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w) AM_BASE_MEMBER(dec8_state, m_bg_data)
@@ -712,7 +712,7 @@ static ADDRESS_MAP_START( gondo_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( garyoret_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( garyoret_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x17ff) AM_RAM
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(dec8_videoram_w) AM_BASE_SIZE_MEMBER(dec8_state, m_videoram, m_videoram_size)
AM_RANGE(0x2000, 0x27ff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w) AM_BASE_MEMBER(dec8_state, m_bg_data)
@@ -734,7 +734,7 @@ static ADDRESS_MAP_START( garyoret_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( meikyuh_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( meikyuh_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x17ff) AM_RAM
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(dec8_videoram_w) AM_BASE_SIZE_MEMBER(dec8_state, m_videoram, m_videoram_size)
@@ -758,7 +758,7 @@ static ADDRESS_MAP_START( meikyuh_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( csilver_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( csilver_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_SHARE("share3") AM_BASE_GENERIC(paletteram)
AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_SHARE("share4") AM_BASE_GENERIC(paletteram2)
@@ -783,7 +783,7 @@ static ADDRESS_MAP_START( csilver_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( csilver_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( csilver_sub_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_SHARE("share3")
AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_SHARE("share4")
@@ -799,7 +799,7 @@ static ADDRESS_MAP_START( csilver_sub_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( oscar_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( oscar_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x0eff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x0f00, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_RAM AM_SHARE("share2")
@@ -823,7 +823,7 @@ static ADDRESS_MAP_START( oscar_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( oscar_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( oscar_sub_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x0eff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x0f00, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_RAM AM_SHARE("share2")
@@ -831,7 +831,7 @@ static ADDRESS_MAP_START( oscar_sub_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( srdarwin_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( srdarwin_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x05ff) AM_RAM
AM_RANGE(0x0600, 0x07ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x0800, 0x0fff) AM_RAM_WRITE(srdarwin_videoram_w) AM_BASE_MEMBER(dec8_state, m_videoram)
@@ -854,7 +854,7 @@ static ADDRESS_MAP_START( srdarwin_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cobra_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cobra_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0fff) AM_DEVREADWRITE("tilegen1", deco_bac06_pf_data_8bit_r, deco_bac06_pf_data_8bit_w)
AM_RANGE(0x1000, 0x17ff) AM_DEVREADWRITE("tilegen2", deco_bac06_pf_data_8bit_r, deco_bac06_pf_data_8bit_w)
@@ -882,7 +882,7 @@ ADDRESS_MAP_END
/******************************************************************************/
/* Used for Cobra Command, Maze Hunter, Super Real Darwin etc */
-static ADDRESS_MAP_START( dec8_s_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dec8_s_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x05ff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0x4000, 0x4001) AM_DEVWRITE("ym2", ym3812_w)
@@ -891,7 +891,7 @@ static ADDRESS_MAP_START( dec8_s_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* Used by Gondomania, Psycho-Nics Oscar & Garyo Retsuden */
-static ADDRESS_MAP_START( oscar_s_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( oscar_s_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x05ff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0x4000, 0x4001) AM_DEVWRITE("ym2", ym3526_w)
@@ -900,7 +900,7 @@ static ADDRESS_MAP_START( oscar_s_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* Used by Last Mission, Shackled & Breywood */
-static ADDRESS_MAP_START( ym3526_s_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ym3526_s_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x05ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym2", ym3526_w)
@@ -909,7 +909,7 @@ static ADDRESS_MAP_START( ym3526_s_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* Captain Silver - same sound system as Pocket Gal */
-static ADDRESS_MAP_START( csilver_s_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( csilver_s_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym2", ym3526_w)
@@ -977,7 +977,7 @@ static WRITE8_HANDLER( dec8_mcu_to_main_w )
device_set_input_line(state->m_maincpu, M6809_IRQ_LINE, ASSERT_LINE);
}
-static ADDRESS_MAP_START( dec8_mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( dec8_mcu_io_map, AS_IO, 8, dec8_state )
AM_RANGE(MCS51_PORT_P0,MCS51_PORT_P3) AM_READWRITE(dec8_mcu_from_main_r, dec8_mcu_to_main_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/deco156.c b/src/mame/drivers/deco156.c
index 19fe92fc885..8b73019a2d3 100644
--- a/src/mame/drivers/deco156.c
+++ b/src/mame/drivers/deco156.c
@@ -120,7 +120,7 @@ static WRITE32_HANDLER( wcvol95_pf2_rowscroll_w ) { deco156_state *state = space
static WRITE32_HANDLER( wcvol95_spriteram_w ) { deco156_state *state = space->machine().driver_data<deco156_state>(); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&state->m_spriteram[offset]); }
-static ADDRESS_MAP_START( hvysmsh_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( hvysmsh_map, AS_PROGRAM, 32, deco156_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x107fff) AM_RAM
AM_RANGE(0x120000, 0x120003) AM_READ_PORT("INPUTS")
@@ -140,7 +140,7 @@ static ADDRESS_MAP_START( hvysmsh_map, AS_PROGRAM, 32 )
AM_RANGE(0x1e0000, 0x1e1fff) AM_READWRITE(wcvol95_spriteram_r, wcvol95_spriteram_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wcvol95_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( wcvol95_map, AS_PROGRAM, 32, deco156_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10001f) AM_DEVREADWRITE("tilegen1", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x110000, 0x111fff) AM_DEVREADWRITE("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c
index 1ce19ce97e3..be3c688558d 100644
--- a/src/mame/drivers/deco32.c
+++ b/src/mame/drivers/deco32.c
@@ -734,7 +734,7 @@ static WRITE32_HANDLER( deco32_pf3_rowscroll_w ) { deco32_state *state = space->
static WRITE32_HANDLER( deco32_pf4_rowscroll_w ) { deco32_state *state = space->machine().driver_data<deco32_state>(); COMBINE_DATA(&state->m_pf4_rowscroll32[offset]); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&state->m_pf4_rowscroll[offset]); }
-static ADDRESS_MAP_START( captaven_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( captaven_map, AS_PROGRAM, 32, deco32_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x100007) AM_READ(deco32_71_r)
@@ -767,7 +767,7 @@ static ADDRESS_MAP_START( captaven_map, AS_PROGRAM, 32 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fghthist_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( fghthist_map, AS_PROGRAM, 32, deco32_state )
// AM_RANGE(0x000000, 0x001fff) AM_ROM AM_WRITE(deco32_pf1_data_w) // wtf??
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_BASE_MEMBER(deco32_state, m_ram)
@@ -802,7 +802,7 @@ static ADDRESS_MAP_START( fghthist_map, AS_PROGRAM, 32 )
AM_RANGE(0x208800, 0x208803) AM_WRITENOP /* ? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fghthsta_memmap, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( fghthsta_memmap, AS_PROGRAM, 32, deco32_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_BASE_MEMBER(deco32_state, m_ram)
AM_RANGE(0x140000, 0x140003) AM_WRITENOP /* VBL irq ack */
@@ -833,7 +833,7 @@ ADDRESS_MAP_END
// the video drawing (especially sprite) code on this is too slow to cope with proper partial updates
// raster effects appear to need some work on it anyway?
-static ADDRESS_MAP_START( dragngun_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( dragngun_map, AS_PROGRAM, 32, deco32_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_BASE_MEMBER(deco32_state, m_ram)
AM_RANGE(0x120000, 0x120fff) AM_READ(dragngun_prot_r)
@@ -880,7 +880,7 @@ static ADDRESS_MAP_START( dragngun_map, AS_PROGRAM, 32 )
AM_RANGE(0x500000, 0x500003) AM_WRITE(dragngun_sprite_control_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lockload_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( lockload_map, AS_PROGRAM, 32, deco32_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_BASE_MEMBER(deco32_state, m_ram)
AM_RANGE(0x120000, 0x120fff) AM_READ(dragngun_prot_r)
@@ -926,7 +926,7 @@ static ADDRESS_MAP_START( lockload_map, AS_PROGRAM, 32 )
AM_RANGE(0x500000, 0x500003) AM_WRITE(dragngun_sprite_control_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tattass_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( tattass_map, AS_PROGRAM, 32, deco32_state )
AM_RANGE(0x000000, 0x0f7fff) AM_ROM
AM_RANGE(0x0f8000, 0x0fffff) AM_ROM AM_WRITENOP
@@ -971,7 +971,7 @@ static ADDRESS_MAP_START( tattass_map, AS_PROGRAM, 32 )
AM_RANGE(0x200000, 0x200fff) AM_READWRITE(tattass_prot_r, tattass_prot_w) AM_BASE(&deco32_prot_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nslasher_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( nslasher_map, AS_PROGRAM, 32, deco32_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_BASE_MEMBER(deco32_state, m_ram)
AM_RANGE(0x120000, 0x1200ff) AM_NOP /* ACIA (unused) */
@@ -1014,7 +1014,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, deco32_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE_MODERN("oki1", okim6295_device, read, write)
@@ -1034,7 +1034,7 @@ static READ8_HANDLER(latch_r)
return soundlatch_r(space,0);
}
-static ADDRESS_MAP_START( nslasher_sound, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nslasher_sound, AS_PROGRAM, 8, deco32_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -1043,7 +1043,7 @@ static ADDRESS_MAP_START( nslasher_sound, AS_PROGRAM, 8 )
AM_RANGE(0xd000, 0xd000) AM_READ(latch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nslasher_io_sound, AS_IO, 8 )
+static ADDRESS_MAP_START( nslasher_io_sound, AS_IO, 8, deco32_state )
AM_RANGE(0x0000, 0xffff) AM_ROM AM_REGION("audiocpu", 0)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/deco_ld.c b/src/mame/drivers/deco_ld.c
index 2ebfdcc3c09..4a10eddb553 100644
--- a/src/mame/drivers/deco_ld.c
+++ b/src/mame/drivers/deco_ld.c
@@ -181,7 +181,7 @@ static READ8_HANDLER( test_r )
return space->machine().rand();
}
-static ADDRESS_MAP_START( begas_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( begas_map, AS_PROGRAM, 8, deco_ld_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
// AM_RANGE(0x1000, 0x1007) AM_NOP
AM_RANGE(0x1000, 0x1000) AM_READ(test_r)
@@ -200,7 +200,7 @@ static ADDRESS_MAP_START( begas_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cobra_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cobra_map, AS_PROGRAM, 8, deco_ld_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_READ_PORT("IN1")
AM_RANGE(0x1001, 0x1001) AM_READ(test_r)//_PORT("IN2")
@@ -219,7 +219,7 @@ static ADDRESS_MAP_START( cobra_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rblaster_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rblaster_map, AS_PROGRAM, 8, deco_ld_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
// AM_RANGE(0x1000, 0x1007) AM_NOP
AM_RANGE(0x1001, 0x1001) AM_WRITENOP //???
@@ -250,7 +250,7 @@ static INTERRUPT_GEN ( sound_interrupt )
}
-static ADDRESS_MAP_START( rblaster_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rblaster_sound_map, AS_PROGRAM, 8, deco_ld_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x2000, 0x2000) AM_DEVWRITE("ay1", ay8910_data_w)
AM_RANGE(0x4000, 0x4000) AM_DEVWRITE("ay1", ay8910_address_w)
diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c
index b9dccbf9b03..3ab468fc187 100644
--- a/src/mame/drivers/deco_mlc.c
+++ b/src/mame/drivers/deco_mlc.c
@@ -260,7 +260,7 @@ static READ32_HANDLER(stadhr96_prot_146_r)
/******************************************************************************/
-static ADDRESS_MAP_START( decomlc_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( decomlc_map, AS_PROGRAM, 32, deco_mlc_state )
AM_RANGE(0x0000000, 0x00fffff) AM_ROM AM_MIRROR(0xff000000)
AM_RANGE(0x0100000, 0x011ffff) AM_RAM AM_BASE_MEMBER(deco_mlc_state, m_mlc_ram) AM_MIRROR(0xff000000)
AM_RANGE(0x0200000, 0x020000f) AM_READNOP AM_MIRROR(0xff000000)/* IRQ control? */
diff --git a/src/mame/drivers/decocass.c b/src/mame/drivers/decocass.c
index b900ba500d3..2b7ac688528 100644
--- a/src/mame/drivers/decocass.c
+++ b/src/mame/drivers/decocass.c
@@ -117,7 +117,7 @@ static READ8_HANDLER( mirrorcolorram_r )
}
-static ADDRESS_MAP_START( decocass_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( decocass_map, AS_PROGRAM, 8, decocass_state )
AM_RANGE(0x0000, 0x5fff) AM_RAM_WRITE(ram_w) AM_BASE_MEMBER(decocass_state, m_rambase)
AM_RANGE(0x6000, 0xbfff) AM_RAM_WRITE(charram_w) AM_BASE_MEMBER(decocass_state, m_charram) /* still RMS3 RAM */
AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(fgvideoram_w) AM_BASE_SIZE_MEMBER(decocass_state, m_fgvideoram, m_fgvideoram_size) /* DSP3 RAM */
@@ -158,7 +158,7 @@ static ADDRESS_MAP_START( decocass_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( decocass_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( decocass_sound_map, AS_PROGRAM, 8, decocass_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x17ff) AM_READWRITE(decocass_sound_nmi_enable_r, decocass_sound_nmi_enable_w)
AM_RANGE(0x1800, 0x1fff) AM_READWRITE(decocass_sound_data_ack_reset_r, decocass_sound_data_ack_reset_w)
@@ -172,7 +172,7 @@ static ADDRESS_MAP_START( decocass_sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( decocass_mcu_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( decocass_mcu_portmap, AS_IO, 8, decocass_state )
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READWRITE(i8041_p1_r, i8041_p1_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(i8041_p2_r, i8041_p2_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/deniam.c b/src/mame/drivers/deniam.c
index 7d78280068b..19d816376c9 100644
--- a/src/mame/drivers/deniam.c
+++ b/src/mame/drivers/deniam.c
@@ -78,7 +78,7 @@ static WRITE16_HANDLER( deniam_irq_ack_w )
cputag_set_input_line(space->machine(), "maincpu", 4, CLEAR_LINE);
}
-static ADDRESS_MAP_START( deniam16b_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( deniam16b_map, AS_PROGRAM, 16, deniam_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(deniam_videoram_w) AM_BASE_MEMBER(deniam_state, m_videoram)
AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE(deniam_textram_w) AM_BASE_MEMBER(deniam_state, m_textram)
@@ -95,12 +95,12 @@ static ADDRESS_MAP_START( deniam16b_map, AS_PROGRAM, 16 )
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, deniam_state )
AM_RANGE(0x0000, 0xf7ff) AM_ROM
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, deniam_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(soundlatch_r)
AM_RANGE(0x02, 0x03) AM_DEVWRITE("ymsnd", ym3812_w)
@@ -109,7 +109,7 @@ static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
ADDRESS_MAP_END
/* identical to 16b, but handles sound directly */
-static ADDRESS_MAP_START( deniam16c_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( deniam16c_map, AS_PROGRAM, 16, deniam_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(deniam_videoram_w) AM_BASE_MEMBER(deniam_state, m_videoram)
AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE(deniam_textram_w) AM_BASE_MEMBER(deniam_state, m_textram)
diff --git a/src/mame/drivers/deshoros.c b/src/mame/drivers/deshoros.c
index 7b9df43f60e..7129609a959 100644
--- a/src/mame/drivers/deshoros.c
+++ b/src/mame/drivers/deshoros.c
@@ -106,7 +106,7 @@ static WRITE8_HANDLER( io_w )
// printf("%02x -> [%02x]\n",data,offset);
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, deshoros_state )
AM_RANGE(0x0000, 0x5fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x900f) AM_READWRITE(io_r,io_w) AM_BASE_MEMBER(deshoros_state, m_io_ram) //i/o area
diff --git a/src/mame/drivers/destroyr.c b/src/mame/drivers/destroyr.c
index 0fbcfc800c1..5b6f9ea03b2 100644
--- a/src/mame/drivers/destroyr.c
+++ b/src/mame/drivers/destroyr.c
@@ -255,7 +255,7 @@ static READ8_HANDLER( destroyr_scanline_r )
}
-static ADDRESS_MAP_START( destroyr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( destroyr_map, AS_PROGRAM, 8, destroyr_state )
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)
diff --git a/src/mame/drivers/dfruit.c b/src/mame/drivers/dfruit.c
index 606f461f2a6..3c8e7b69b6d 100644
--- a/src/mame/drivers/dfruit.c
+++ b/src/mame/drivers/dfruit.c
@@ -30,7 +30,7 @@ static SCREEN_UPDATE_IND16( dfruit )
return 0;
}
-static ADDRESS_MAP_START( dfruit_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dfruit_map, AS_PROGRAM, 8, dfruit_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* TODO: ROM banks! */
AM_RANGE(0x8000, 0x9fff) AM_RAM
@@ -52,7 +52,7 @@ static ADDRESS_MAP_START( dfruit_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dfruit_io, AS_IO, 8 )
+static ADDRESS_MAP_START( dfruit_io, AS_IO, 8, dfruit_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/dgpix.c b/src/mame/drivers/dgpix.c
index 50fcfc77e84..62bab756a96 100644
--- a/src/mame/drivers/dgpix.c
+++ b/src/mame/drivers/dgpix.c
@@ -196,7 +196,7 @@ static READ32_HANDLER( vblank_r )
return input_port_read(space->machine(), "VBLANK");
}
-static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 32, dgpix_state )
AM_RANGE(0x00000000, 0x007fffff) AM_RAM
AM_RANGE(0x40000000, 0x4003ffff) AM_READWRITE(vram_r, vram_w)
AM_RANGE(0xe0000000, 0xe1ffffff) AM_READWRITE(flash_r, flash_w)
@@ -204,7 +204,7 @@ static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 32 )
AM_RANGE(0xffc00000, 0xffffffff) AM_ROM AM_REGION("user1", 0x1c00000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 32 )
+static ADDRESS_MAP_START( io_map, AS_IO, 32, dgpix_state )
AM_RANGE(0x0200, 0x0203) AM_READNOP // used to sync with the protecion PIC? tested bits 0 and 1
AM_RANGE(0x0400, 0x0403) AM_READWRITE(vblank_r, vbuffer_w)
AM_RANGE(0x0a10, 0x0a13) AM_READ_PORT("INPUTS")
diff --git a/src/mame/drivers/dietgo.c b/src/mame/drivers/dietgo.c
index 54f7c8609f2..164c5831e9c 100644
--- a/src/mame/drivers/dietgo.c
+++ b/src/mame/drivers/dietgo.c
@@ -16,7 +16,7 @@
#include "video/decospr.h"
#include "video/decocomn.h"
-static ADDRESS_MAP_START( dietgo_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dietgo_map, AS_PROGRAM, 16, dietgo_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x20000f) AM_DEVWRITE("tilegen1", deco16ic_pf_control_w)
AM_RANGE(0x210000, 0x211fff) AM_DEVWRITE("tilegen1", deco16ic_pf1_data_w)
@@ -31,7 +31,7 @@ ADDRESS_MAP_END
/* Physical memory map (21 bits) */
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, dietgo_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_NOP /* YM2203 - this board doesn't have one */
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/discoboy.c b/src/mame/drivers/discoboy.c
index f61171e4bb4..9540be8b341 100644
--- a/src/mame/drivers/discoboy.c
+++ b/src/mame/drivers/discoboy.c
@@ -292,7 +292,7 @@ static WRITE8_HANDLER( discoboy_ram_att_w )
state->m_ram_att[offset] = data;
}
-static ADDRESS_MAP_START( discoboy_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( discoboy_map, AS_PROGRAM, 8, discoboy_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(rambank_r, rambank_w)
@@ -308,7 +308,7 @@ static READ8_HANDLER( discoboy_port_06_r )
return 0x00;
}
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, discoboy_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSWA") AM_WRITE(discoboy_port_00_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("SYSTEM") AM_WRITE(discoboy_port_01_w)
@@ -340,7 +340,7 @@ static WRITE8_HANDLER( yunsung8_adpcm_w )
state->m_adpcm = ((data & 0xf) << 4) | ((data >> 4) & 0xf);
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, discoboy_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("sndbank")
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("msm",yunsung8_sound_bankswitch_w)
diff --git a/src/mame/drivers/diverboy.c b/src/mame/drivers/diverboy.c
index a65db5687bb..46d33c88cff 100644
--- a/src/mame/drivers/diverboy.c
+++ b/src/mame/drivers/diverboy.c
@@ -139,7 +139,7 @@ static WRITE8_DEVICE_HANDLER( okibank_w )
-static ADDRESS_MAP_START( diverboy_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( diverboy_map, AS_PROGRAM, 16, diverboy_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x04ffff) AM_RAM
AM_RANGE(0x080000, 0x083fff) AM_RAM AM_BASE_SIZE_MEMBER(diverboy_state, m_spriteram, m_spriteram_size)
@@ -156,7 +156,7 @@ static ADDRESS_MAP_START( diverboy_map, AS_PROGRAM, 16 )
// AM_RANGE(0x340002, 0x340003) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( snd_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( snd_map, AS_PROGRAM, 8, diverboy_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_DEVWRITE("oki", okibank_w)
diff --git a/src/mame/drivers/djboy.c b/src/mame/drivers/djboy.c
index adf5e4530cf..2653968c6ba 100644
--- a/src/mame/drivers/djboy.c
+++ b/src/mame/drivers/djboy.c
@@ -250,7 +250,7 @@ static WRITE8_HANDLER( cpu2_bankswitch_w )
/******************************************************************************/
-static ADDRESS_MAP_START( cpu0_am, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu0_am, AS_PROGRAM, 8, djboy_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xafff) AM_ROMBANK("bank4")
AM_RANGE(0xb000, 0xbfff) AM_DEVREADWRITE("pandora", pandora_spriteram_r, pandora_spriteram_w)
@@ -260,14 +260,14 @@ static ADDRESS_MAP_START( cpu0_am, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu0_port_am, AS_IO, 8 )
+static ADDRESS_MAP_START( cpu0_port_am, AS_IO, 8, djboy_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(cpu0_bankswitch_w)
ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( cpu1_am, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu1_am, AS_PROGRAM, 8, djboy_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(djboy_videoram_w) AM_BASE_MEMBER(djboy_state, m_videoram)
@@ -276,7 +276,7 @@ static ADDRESS_MAP_START( cpu1_am, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu1_port_am, AS_IO, 8 )
+static ADDRESS_MAP_START( cpu1_port_am, AS_IO, 8, djboy_state )
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)
@@ -290,13 +290,13 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( cpu2_am, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu2_am, AS_PROGRAM, 8, djboy_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank3")
AM_RANGE(0xc000, 0xdfff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu2_port_am, AS_IO, 8 )
+static ADDRESS_MAP_START( cpu2_port_am, AS_IO, 8, djboy_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(cpu2_bankswitch_w)
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
@@ -398,7 +398,7 @@ static WRITE8_HANDLER( beast_p3_w )
}
/* Program/data maps are defined in the 8051 core */
-static ADDRESS_MAP_START( djboy_mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( djboy_mcu_io_map, AS_IO, 8, djboy_state )
AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P0) AM_READWRITE(beast_p0_r, beast_p0_w)
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_READWRITE(beast_p1_r, beast_p1_w)
AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_READWRITE(beast_p2_r, beast_p2_w)
diff --git a/src/mame/drivers/djmain.c b/src/mame/drivers/djmain.c
index ef14ce66de0..ab7b8ab3cf7 100644
--- a/src/mame/drivers/djmain.c
+++ b/src/mame/drivers/djmain.c
@@ -441,7 +441,7 @@ static void ide_interrupt(device_t *device, int state)
*
*************************************/
-static ADDRESS_MAP_START( memory_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( memory_map, AS_PROGRAM, 32, djmain_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // PRG ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM // WORK RAM
AM_RANGE(0x480000, 0x48443f) AM_RAM_WRITE(paletteram32_w) // COLOR RAM
diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c
index 243676acfb0..c6b1993630a 100644
--- a/src/mame/drivers/dkong.c
+++ b/src/mame/drivers/dkong.c
@@ -778,7 +778,7 @@ static WRITE8_HANDLER( nmi_mask_w )
*
*************************************/
-static ADDRESS_MAP_START( dkong_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dkong_map, AS_PROGRAM, 8, dkong_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x6000, 0x6bff) AM_RAM
AM_RANGE(0x7000, 0x73ff) AM_RAM AM_BASE_SIZE_MEMBER(dkong_state, m_sprite_ram, m_sprite_ram_size) /* sprite set 1 */
@@ -799,7 +799,7 @@ static ADDRESS_MAP_START( dkong_map, AS_PROGRAM, 8 )
AM_RANGE(0x7d86, 0x7d87) AM_WRITE(dkong_palettebank_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dkongjr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dkongjr_map, AS_PROGRAM, 8, dkong_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6bff) AM_RAM
AM_RANGE(0x6c00, 0x6fff) AM_RAM /* DK3 bootleg only */
@@ -828,7 +828,7 @@ static ADDRESS_MAP_START( dkongjr_map, AS_PROGRAM, 8 )
AM_RANGE(0xd000, 0xdfff) AM_ROM /* DK3 bootleg only */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dkong3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dkong3_map, AS_PROGRAM, 8, dkong_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x67ff) AM_RAM
AM_RANGE(0x6800, 0x6fff) AM_RAM
@@ -848,21 +848,21 @@ static ADDRESS_MAP_START( dkong3_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0x9fff) AM_ROM /* DK3 and bootleg DKjr only */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dkong3_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( dkong3_io_map, AS_IO, 8, dkong_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("z80dma", z80dma_r, z80dma_w) /* dma controller */
ADDRESS_MAP_END
/* Epos conversions */
-static ADDRESS_MAP_START( epos_readport, AS_IO, 8 )
+static ADDRESS_MAP_START( epos_readport, AS_IO, 8, dkong_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xff) AM_READ(epos_decrypt_rom) /* Switch protection logic */
ADDRESS_MAP_END
/* S2650 conversions */
-static ADDRESS_MAP_START( s2650_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( s2650_map, AS_PROGRAM, 8, dkong_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_BASE_SIZE_MEMBER(dkong_state, m_sprite_ram, m_sprite_ram_size) /* 0x7000 */
AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x007f) AM_READ_PORT("IN0") AM_DEVWRITE("ls175.3d", latch8_w)
@@ -888,7 +888,7 @@ static ADDRESS_MAP_START( s2650_map, AS_PROGRAM, 8 )
AM_RANGE(0x7000, 0x7fff) AM_READWRITE(s2650_mirror_r, s2650_mirror_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( s2650_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( s2650_io_map, AS_IO, 8, dkong_state )
AM_RANGE(0x00, 0x00) AM_READ(s2650_port0_r)
AM_RANGE(0x01, 0x01) AM_READ(s2650_port1_r)
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
diff --git a/src/mame/drivers/dlair.c b/src/mame/drivers/dlair.c
index 0fbc416239e..06c8091227b 100644
--- a/src/mame/drivers/dlair.c
+++ b/src/mame/drivers/dlair.c
@@ -394,7 +394,7 @@ static WRITE8_HANDLER( laserdisc_w )
*************************************/
/* complete memory map derived from schematics */
-static ADDRESS_MAP_START( dlus_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dlus_map, AS_PROGRAM, 8, dlair_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa7ff) AM_MIRROR(0x1800) AM_RAM
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x1fc7) AM_DEVREAD("aysnd", ay8910_r)
@@ -418,7 +418,7 @@ ADDRESS_MAP_END
*************************************/
/* complete memory map derived from schematics */
-static ADDRESS_MAP_START( dleuro_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dleuro_map, AS_PROGRAM, 8, dlair_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa7ff) AM_MIRROR(0x1800) AM_RAM
AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x1800) AM_RAM AM_BASE_MEMBER(dlair_state, m_videoram)
@@ -438,7 +438,7 @@ ADDRESS_MAP_END
/* complete memory map derived from schematics */
-static ADDRESS_MAP_START( dleuro_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( dleuro_io_map, AS_IO, 8, dlair_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_MIRROR(0x7c) AM_DEVREADWRITE("ctc", z80ctc_r, z80ctc_w)
AM_RANGE(0x80, 0x83) AM_MIRROR(0x7c) AM_DEVREADWRITE("sio", z80sio_ba_cd_r, z80sio_ba_cd_w)
diff --git a/src/mame/drivers/dmndrby.c b/src/mame/drivers/dmndrby.c
index 0b3ea0f7b94..4c57135cc93 100644
--- a/src/mame/drivers/dmndrby.c
+++ b/src/mame/drivers/dmndrby.c
@@ -115,7 +115,7 @@ static WRITE8_HANDLER( output_w )
// popmessage("%02x|%02x|%02x|%02x|%02x|%02x|%02x|%02x|",state->m_io_port[0],state->m_io_port[1],state->m_io_port[2],state->m_io_port[3],state->m_io_port[4],state->m_io_port[5],state->m_io_port[6],state->m_io_port[7]);
}
-static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, dmndrby_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xc000, 0xc007) AM_READ(input_r)
@@ -132,7 +132,7 @@ static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8 )
AM_RANGE(0xd400, 0xd7ff) AM_RAM AM_BASE_MEMBER(dmndrby_state, m_dderby_vidattribs) // colours/ attrib ram
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dderby_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dderby_sound_map, AS_PROGRAM, 8, dmndrby_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1000, 0x1000) AM_RAM //???
AM_RANGE(0x4000, 0x4001) AM_DEVWRITE("ay1", ay8910_address_data_w)
diff --git a/src/mame/drivers/docastle.c b/src/mame/drivers/docastle.c
index ba79c061bbc..2e0a23d7b54 100644
--- a/src/mame/drivers/docastle.c
+++ b/src/mame/drivers/docastle.c
@@ -208,7 +208,7 @@ static WRITE8_DEVICE_HANDLER( idsoccer_adpcm_w )
}
/* Memory Maps */
-static ADDRESS_MAP_START( docastle_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( docastle_map, AS_PROGRAM, 8, docastle_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x97ff) AM_RAM
AM_RANGE(0x9800, 0x99ff) AM_RAM AM_BASE_SIZE_MEMBER(docastle_state, m_spriteram, m_spriteram_size)
@@ -219,7 +219,7 @@ static ADDRESS_MAP_START( docastle_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe000) AM_WRITE(docastle_nmitrigger_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( docastle_map2, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( docastle_map2, AS_PROGRAM, 8, docastle_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa008) AM_READWRITE(docastle_shared1_r, docastle_shared0_w)
@@ -236,7 +236,7 @@ static ADDRESS_MAP_START( docastle_map2, AS_PROGRAM, 8 )
AM_RANGE(0xec00, 0xec00) AM_DEVWRITE("sn4", sn76496_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( docastle_map3, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( docastle_map3, AS_PROGRAM, 8, docastle_state )
AM_RANGE(0x0000, 0x00ff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x8000, 0x8008) AM_READ(docastle_shared1_r) // ???
@@ -244,14 +244,14 @@ static ADDRESS_MAP_START( docastle_map3, AS_PROGRAM, 8 )
AM_RANGE(0xc432, 0xc435) AM_NOP // ???
ADDRESS_MAP_END
-static ADDRESS_MAP_START( docastle_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( docastle_io_map, AS_IO, 8, docastle_state )
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
-static ADDRESS_MAP_START( dorunrun_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dorunrun_map, AS_PROGRAM, 8, docastle_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x37ff) AM_RAM
AM_RANGE(0x3800, 0x39ff) AM_RAM AM_BASE_SIZE_MEMBER(docastle_state, m_spriteram, m_spriteram_size)
@@ -263,7 +263,7 @@ static ADDRESS_MAP_START( dorunrun_map, AS_PROGRAM, 8 )
AM_RANGE(0xb800, 0xb800) AM_WRITE(docastle_nmitrigger_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dorunrun_map2, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dorunrun_map2, AS_PROGRAM, 8, docastle_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("sn1", sn76496_w)
@@ -281,7 +281,7 @@ static ADDRESS_MAP_START( dorunrun_map2, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( idsoccer_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( idsoccer_map, AS_PROGRAM, 8, docastle_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x57ff) AM_RAM
AM_RANGE(0x5800, 0x59ff) AM_RAM AM_BASE_SIZE_MEMBER(docastle_state, m_spriteram, m_spriteram_size)
@@ -294,7 +294,7 @@ static ADDRESS_MAP_START( idsoccer_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe000) AM_WRITE(docastle_nmitrigger_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( idsoccer_map2, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( idsoccer_map2, AS_PROGRAM, 8, docastle_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa008) AM_READWRITE(docastle_shared1_r, docastle_shared0_w)
diff --git a/src/mame/drivers/dogfgt.c b/src/mame/drivers/dogfgt.c
index 5ccc507643b..65e52269bb4 100644
--- a/src/mame/drivers/dogfgt.c
+++ b/src/mame/drivers/dogfgt.c
@@ -63,7 +63,7 @@ static WRITE8_HANDLER( dogfgt_soundcontrol_w )
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, dogfgt_state )
AM_RANGE(0x0000, 0x07ff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE_MEMBER(dogfgt_state, m_sharedram)
AM_RANGE(0x0f80, 0x0fdf) AM_WRITEONLY AM_BASE_SIZE_MEMBER(dogfgt_state, m_spriteram, m_spriteram_size)
AM_RANGE(0x1000, 0x17ff) AM_WRITE(dogfgt_bgvideoram_w) AM_BASE_MEMBER(dogfgt_state, m_bgvideoram)
@@ -82,7 +82,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, dogfgt_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x2000, 0x27ff) AM_READWRITE(sharedram_r, sharedram_w)
AM_RANGE(0x4000, 0x4000) AM_WRITE(sub_irqack_w)
diff --git a/src/mame/drivers/dominob.c b/src/mame/drivers/dominob.c
index afe1c499c36..c7fb0062364 100644
--- a/src/mame/drivers/dominob.c
+++ b/src/mame/drivers/dominob.c
@@ -164,7 +164,7 @@ static WRITE8_HANDLER( dominob_d008_w )
/* is there a purpose on this ? always set to 0x00 (read from 0xc47b in RAM) */
}
-static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, dominob_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM AM_WRITENOP // there are some garbage writes to ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
@@ -190,7 +190,7 @@ static READ8_HANDLER( dominob_unk_port02_r )
return 0xff;
}
-static ADDRESS_MAP_START( portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( portmap, AS_IO, 8, dominob_state )
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 da203ca588c..2300d4a3a50 100644
--- a/src/mame/drivers/dooyong.c
+++ b/src/mame/drivers/dooyong.c
@@ -115,7 +115,7 @@ static MACHINE_RESET( sound_ym2203 )
***************************************************************************/
-static ADDRESS_MAP_START( lastday_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lastday_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc007) AM_WRITE(dooyong_bgscroll8_w)
@@ -134,7 +134,7 @@ static ADDRESS_MAP_START( lastday_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("spriteram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pollux_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pollux_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM
@@ -152,7 +152,7 @@ static ADDRESS_MAP_START( pollux_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gulfstrm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gulfstrm_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM
@@ -171,7 +171,7 @@ static ADDRESS_MAP_START( gulfstrm_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bluehawk_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bluehawk_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("DSWA")
@@ -191,7 +191,7 @@ static ADDRESS_MAP_START( bluehawk_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( flytiger_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( flytiger_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("spriteram")
@@ -210,7 +210,7 @@ static ADDRESS_MAP_START( flytiger_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_BASE_MEMBER(dooyong_state, m_txvideoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( primella_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( primella_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM
@@ -228,7 +228,7 @@ static ADDRESS_MAP_START( primella_map, AS_PROGRAM, 8 )
AM_RANGE(0xfc08, 0xfc0f) AM_WRITE(dooyong_fgscroll8_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rshark_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rshark_map, AS_PROGRAM, 16, dooyong_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffff) /* super-x needs this and is similar */
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x04cfff) AM_RAM
@@ -246,7 +246,7 @@ static ADDRESS_MAP_START( rshark_map, AS_PROGRAM, 16 )
AM_RANGE(0x0cc010, 0x0cc01f) AM_WRITE(dooyong_fg2scroll16_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( superx_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( superx_map, AS_PROGRAM, 16, dooyong_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x0d0000, 0x0dcfff) AM_RAM
@@ -264,7 +264,7 @@ static ADDRESS_MAP_START( superx_map, AS_PROGRAM, 16 )
AM_RANGE(0x08c010, 0x08c01f) AM_WRITE(dooyong_fg2scroll16_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( popbingo_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( popbingo_map, AS_PROGRAM, 16, dooyong_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x04cfff) AM_RAM
@@ -284,7 +284,7 @@ static ADDRESS_MAP_START( popbingo_map, AS_PROGRAM, 16 )
AM_RANGE(0x0dc000, 0x0dc01f) AM_RAM // registers of some kind?
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lastday_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lastday_sound_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc800) AM_READ(soundlatch_r)
@@ -292,7 +292,7 @@ static ADDRESS_MAP_START( lastday_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf002, 0xf003) AM_DEVREADWRITE("ym2", ym2203_r, ym2203_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pollux_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pollux_sound_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_r)
@@ -300,7 +300,7 @@ static ADDRESS_MAP_START( pollux_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf804, 0xf805) AM_DEVREADWRITE("ym2", ym2203_r, ym2203_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bluehawk_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bluehawk_sound_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/dorachan.c b/src/mame/drivers/dorachan.c
index 7de6cc2c735..0782f24f06a 100644
--- a/src/mame/drivers/dorachan.c
+++ b/src/mame/drivers/dorachan.c
@@ -143,7 +143,7 @@ static CUSTOM_INPUT( dorachan_v128_r )
*
*************************************/
-static ADDRESS_MAP_START( dorachan_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dorachan_map, AS_PROGRAM, 8, dorachan_state )
AM_RANGE(0x0000, 0x17ff) AM_ROM
AM_RANGE(0x1800, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x23ff) AM_ROM
@@ -163,7 +163,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( dorachan_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( dorachan_io_map, AS_IO, 8, dorachan_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_WRITENOP
AM_RANGE(0x02, 0x02) AM_WRITENOP
diff --git a/src/mame/drivers/dotrikun.c b/src/mame/drivers/dotrikun.c
index 885b0ac338f..4277946ba10 100644
--- a/src/mame/drivers/dotrikun.c
+++ b/src/mame/drivers/dotrikun.c
@@ -96,13 +96,13 @@ static SCREEN_UPDATE_RGB32( dotrikun )
*
*************************************/
-static ADDRESS_MAP_START( dotrikun_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dotrikun_map, AS_PROGRAM, 8, dotrikun_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x85ff) AM_RAM AM_BASE_MEMBER(dotrikun_state, m_dotrikun_bitmap)
AM_RANGE(0x8600, 0x87ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, dotrikun_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("INPUTS") AM_WRITE(dotrikun_color_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/dragrace.c b/src/mame/drivers/dragrace.c
index 0e0c99cb133..a712df15b9a 100644
--- a/src/mame/drivers/dragrace.c
+++ b/src/mame/drivers/dragrace.c
@@ -166,7 +166,7 @@ static READ8_HANDLER( dragrace_scanline_r )
}
-static ADDRESS_MAP_START( dragrace_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dragrace_map, AS_PROGRAM, 8, dragrace_state )
AM_RANGE(0x0080, 0x00ff) AM_RAM
AM_RANGE(0x0800, 0x083f) AM_READ(dragrace_input_r)
AM_RANGE(0x0900, 0x091f) AM_WRITE(dragrace_misc_w)
diff --git a/src/mame/drivers/dreamwld.c b/src/mame/drivers/dreamwld.c
index 97362c1341f..1968fc2ad04 100644
--- a/src/mame/drivers/dreamwld.c
+++ b/src/mame/drivers/dreamwld.c
@@ -448,7 +448,7 @@ static WRITE32_HANDLER( dreamwld_palette_w )
-static ADDRESS_MAP_START( baryon_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( baryon_map, AS_PROGRAM, 32, dreamwld_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_WRITENOP
AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE_MEMBER(dreamwld_state, m_spriteram)
@@ -468,7 +468,7 @@ static ADDRESS_MAP_START( baryon_map, AS_PROGRAM, 32 )
AM_RANGE(0xfe0000, 0xffffff) AM_RAM AM_BASE_MEMBER(dreamwld_state, m_workram) // work ram
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dreamwld_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( dreamwld_map, AS_PROGRAM, 32, dreamwld_state )
AM_IMPORT_FROM( baryon_map )
AM_RANGE(0xc0002c, 0xc0002f) AM_WRITE(dreamwld_6295_1_bank_w) // sfx
diff --git a/src/mame/drivers/drgnmst.c b/src/mame/drivers/drgnmst.c
index 18122aaa743..cffa4eef30c 100644
--- a/src/mame/drivers/drgnmst.c
+++ b/src/mame/drivers/drgnmst.c
@@ -192,7 +192,7 @@ static READ8_HANDLER( PIC16C5X_T0_clk_r )
/***************************** 68000 Memory Map *****************************/
-static ADDRESS_MAP_START( drgnmst_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( drgnmst_main_map, AS_PROGRAM, 16, drgnmst_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("P1_P2")
AM_RANGE(0x800018, 0x800019) AM_READ_PORT("SYSTEM")
@@ -223,7 +223,7 @@ ADDRESS_MAP_END
/* $000 - 1FF PIC16C55 Internal Program ROM. Note: code is 12bits wide */
/* $000 - 01F PIC16C55 Internal Data RAM */
-static ADDRESS_MAP_START( drgnmst_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( drgnmst_sound_io_map, AS_IO, 8, drgnmst_state )
AM_RANGE(0x00, 0x00) AM_READWRITE(pic16c5x_port0_r, drgnmst_pcm_banksel_w) /* 4 bit port */
AM_RANGE(0x01, 0x01) AM_READWRITE(drgnmst_snd_command_r, drgnmst_oki_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(drgnmst_snd_flag_r, drgnmst_snd_control_w)
diff --git a/src/mame/drivers/dribling.c b/src/mame/drivers/dribling.c
index 0e770e473d0..6b8012c4a25 100644
--- a/src/mame/drivers/dribling.c
+++ b/src/mame/drivers/dribling.c
@@ -213,7 +213,7 @@ static const ppi8255_interface ppi8255_intf[2] =
*
*************************************/
-static ADDRESS_MAP_START( dribling_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dribling_map, AS_PROGRAM, 8, dribling_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE_MEMBER(dribling_state, m_videoram)
AM_RANGE(0x4000, 0x7fff) AM_ROM
@@ -221,7 +221,7 @@ static ADDRESS_MAP_START( dribling_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, dribling_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xff) AM_READWRITE(ioread, iowrite)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/drmicro.c b/src/mame/drivers/drmicro.c
index a725d263f4c..0c62a0a29b7 100644
--- a/src/mame/drivers/drmicro.c
+++ b/src/mame/drivers/drmicro.c
@@ -77,14 +77,14 @@ static WRITE8_HANDLER( pcm_set_w )
*
*************************************/
-static ADDRESS_MAP_START( drmicro_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( drmicro_map, AS_PROGRAM, 8, drmicro_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(drmicro_videoram_w)
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, drmicro_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") AM_DEVWRITE("sn1", sn76496_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("P2") AM_DEVWRITE("sn2", sn76496_w)
diff --git a/src/mame/drivers/drtomy.c b/src/mame/drivers/drtomy.c
index 9d85e8c62a3..6b742a4e36c 100644
--- a/src/mame/drivers/drtomy.c
+++ b/src/mame/drivers/drtomy.c
@@ -160,7 +160,7 @@ static WRITE16_DEVICE_HANDLER( drtomy_okibank_w )
/* unknown bit 2 -> (data & 4) */
}
-static ADDRESS_MAP_START( drtomy_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( drtomy_map, AS_PROGRAM, 16, drtomy_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(drtomy_vram_fg_w) AM_BASE_MEMBER(drtomy_state, m_videoram_fg) /* Video RAM FG */
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(drtomy_vram_bg_w) AM_BASE_MEMBER(drtomy_state, m_videoram_bg) /* Video RAM BG */
diff --git a/src/mame/drivers/drw80pkr.c b/src/mame/drivers/drw80pkr.c
index 8df33b5dcbe..483369a8ce6 100644
--- a/src/mame/drivers/drw80pkr.c
+++ b/src/mame/drivers/drw80pkr.c
@@ -412,11 +412,11 @@ static DRIVER_INIT( drw80pkr )
* Memory map information *
*************************/
-static ADDRESS_MAP_START( drw80pkr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( drw80pkr_map, AS_PROGRAM, 8, drw80pkr_state )
AM_RANGE(0x0000, 0x1fff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( drw80pkr_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( drw80pkr_io_map, AS_IO, 8, drw80pkr_state )
AM_RANGE(0x00, 0xff) AM_READWRITE(drw80pkr_io_r, drw80pkr_io_w)
AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READWRITE(t0_r, t0_w)
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READWRITE(t1_r, t1_w)
diff --git a/src/mame/drivers/dunhuang.c b/src/mame/drivers/dunhuang.c
index 2e137910fe8..d8e9268ec82 100644
--- a/src/mame/drivers/dunhuang.c
+++ b/src/mame/drivers/dunhuang.c
@@ -412,7 +412,7 @@ static WRITE8_HANDLER( dunhuang_layers_w )
Memory Maps
***************************************************************************/
-static ADDRESS_MAP_START( dunhuang_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dunhuang_map, AS_PROGRAM, 8, dunhuang_state )
AM_RANGE( 0x0000, 0x5fff ) AM_ROM
AM_RANGE( 0x6000, 0x7fff ) AM_RAM
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "bank1" )
@@ -480,7 +480,7 @@ static WRITE8_HANDLER( dunhuang_82_w )
}
#endif
-static ADDRESS_MAP_START( dunhuang_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( dunhuang_io_map, AS_IO, 8, dunhuang_state )
AM_RANGE( 0x0000, 0x0000 ) AM_WRITE( dunhuang_pos_x_w )
AM_RANGE( 0x0001, 0x0001 ) AM_WRITE( dunhuang_pos_y_w )
AM_RANGE( 0x0002, 0x0004 ) AM_WRITE( dunhuang_tile_w )
diff --git a/src/mame/drivers/dwarfd.c b/src/mame/drivers/dwarfd.c
index eb129928492..0d281487724 100644
--- a/src/mame/drivers/dwarfd.c
+++ b/src/mame/drivers/dwarfd.c
@@ -597,12 +597,12 @@ static READ8_HANDLER(qc_b8_r)
return space->machine().rand();
}
-static ADDRESS_MAP_START( mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mem_map, AS_PROGRAM, 8, dwarfd_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4fff) AM_READWRITE(dwarfd_ram_r, dwarfd_ram_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, dwarfd_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x02, 0x03) AM_DEVWRITE("aysnd", ay8910_data_address_w)
@@ -616,12 +616,12 @@ static ADDRESS_MAP_START( io_map, AS_IO, 8 )
AM_RANGE(0xc1, 0xc1) AM_READ_PORT("DSW2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( qc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( qc_map, AS_PROGRAM, 8, dwarfd_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_READWRITE(dwarfd_ram_r, dwarfd_ram_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( qc_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( qc_io_map, AS_IO, 8, dwarfd_state )
AM_IMPORT_FROM( io_map )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xb8, 0xb8) AM_READ(qc_b8_r)
diff --git a/src/mame/drivers/dynadice.c b/src/mame/drivers/dynadice.c
index 72db3926142..1a893c991b2 100644
--- a/src/mame/drivers/dynadice.c
+++ b/src/mame/drivers/dynadice.c
@@ -92,13 +92,13 @@ static WRITE8_DEVICE_HANDLER( sound_control_w )
}
-static ADDRESS_MAP_START( dynadice_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dynadice_map, AS_PROGRAM, 8, dynadice_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM_WRITE(dynadice_videoram_w) AM_BASE_MEMBER(dynadice_state, m_videoram)
AM_RANGE(0x4000, 0x40ff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dynadice_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( dynadice_io_map, AS_IO, 8, dynadice_state )
AM_RANGE(0x50, 0x50) AM_READ_PORT("IN0")
AM_RANGE(0x51, 0x51) AM_READ_PORT("IN1")
AM_RANGE(0x52, 0x52) AM_READ_PORT("DSW")
@@ -107,12 +107,12 @@ static ADDRESS_MAP_START( dynadice_io_map, AS_IO, 8 )
AM_RANGE(0x70, 0x77) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dynadice_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dynadice_sound_map, AS_PROGRAM, 8, dynadice_state )
AM_RANGE(0x0000, 0x07ff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dynadice_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( dynadice_sound_io_map, AS_IO, 8, dynadice_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
AM_RANGE(0x01, 0x01) AM_WRITE(soundlatch_clear_w)
diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c
index 53871f1a29d..53335bdcab1 100644
--- a/src/mame/drivers/dynax.c
+++ b/src/mame/drivers/dynax.c
@@ -471,26 +471,26 @@ static WRITE8_HANDLER( yarunara_layer_half2_w )
hnoridur_layer_half2_w(space, 0, data >> 1);
}
-static ADDRESS_MAP_START( sprtmtch_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sprtmtch_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hnoridur_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hnoridur_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x8000, 0xffff ) AM_READ_BANK("bank1") AM_WRITE(hnoridur_palette_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcnpshnt_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcnpshnt_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x5fff ) AM_ROM
AM_RANGE( 0x6000, 0x6fff ) AM_RAM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x8000, 0xffff ) AM_READ_BANK("bank1") AM_WRITE(hnoridur_palette_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nanajign_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nanajign_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x5fff ) AM_ROM
AM_RANGE( 0x6000, 0x6fff ) AM_RAM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
@@ -498,14 +498,14 @@ static ADDRESS_MAP_START( nanajign_mem_map, AS_PROGRAM, 8 )
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjdialq2_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mjdialq2_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0800, 0x0fff ) AM_RAM
AM_RANGE( 0x1000, 0x1fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x0000, 0x7fff ) AM_ROM
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( yarunara_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( yarunara_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x5fff ) AM_ROM
AM_RANGE( 0x6000, 0x6fff ) AM_RAM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
@@ -513,14 +513,14 @@ static ADDRESS_MAP_START( yarunara_mem_map, AS_PROGRAM, 8 )
AM_RANGE( 0x8000, 0x81ff ) AM_WRITE(yarunara_palette_w) // Palette or RTC
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jantouki_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jantouki_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x5fff ) AM_ROM
AM_RANGE( 0x6000, 0x6fff ) AM_RAM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jantouki_sound_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jantouki_sound_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank2")
@@ -528,7 +528,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( hanamai_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( hanamai_io_map, AS_IO, 8, dynax_state )
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
@@ -564,7 +564,7 @@ static ADDRESS_MAP_START( hanamai_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hnoridur_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( hnoridur_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x07 ) AM_WRITE(dynax_blitter_rev2_w) // Blitter
// AM_RANGE( 0x10, 0x10 ) AM_WRITENOP // CRT Controller
@@ -641,14 +641,15 @@ static READ8_HANDLER( hjingi_keyboard_1_r )
return hanamai_keyboard_1_r(space, 0) | input_port_read(space->machine(), "BET");
}
-static ADDRESS_MAP_START( hjingi_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hjingi_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x01ff ) AM_ROM
AM_RANGE( 0x0200, 0x1fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x2000, 0x7fff ) AM_ROM
AM_RANGE( 0x8000, 0xffff ) AM_READ_BANK("bank1") AM_WRITE(hnoridur_palette_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hjingi_io_map, AS_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
+static ADDRESS_MAP_START( hjingi_io_map, AS_IO, 8, dynax_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x07 ) AM_WRITE(dynax_blitter_rev2_w) // Blitter
// AM_RANGE( 0x10, 0x10 ) AM_WRITENOP // CRT Controller
@@ -801,7 +802,7 @@ static WRITE8_HANDLER( yarunara_blit_romregion_w )
logerror("%04x: unmapped romregion=%02X\n", cpu_get_pc(&space->device()), data);
}
-static ADDRESS_MAP_START( yarunara_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( yarunara_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x01 ) AM_WRITE(yarunara_input_w) // Controls
AM_RANGE( 0x02, 0x03 ) AM_READ(yarunara_input_r) //
@@ -834,7 +835,7 @@ ADDRESS_MAP_END
// Almost identical to hnoridur
-static ADDRESS_MAP_START( mcnpshnt_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcnpshnt_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x07 ) AM_WRITE(dynax_blitter_rev2_w) // Blitter
// AM_RANGE( 0x10, 0x10 ) AM_WRITENOP // CRT Controller
@@ -872,7 +873,7 @@ static ADDRESS_MAP_START( mcnpshnt_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sprtmtch_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sprtmtch_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x07 ) AM_WRITE(dynax_blitter_rev2_w) // Blitter
AM_RANGE( 0x10, 0x11 ) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w) // 2 x DSW
@@ -900,7 +901,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjfriday_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mjfriday_io_map, AS_IO, 8, dynax_state )
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)
@@ -926,7 +927,7 @@ static ADDRESS_MAP_START( mjfriday_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nanajign_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( nanajign_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_DEVWRITE("msm", adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x02, 0x02 ) AM_WRITE(adpcm_data_w) // MSM5205 data
@@ -994,7 +995,7 @@ static WRITE8_HANDLER( jantouki_rombank_w )
set_led_status(space->machine(), 0, data & 0x10); // maybe
}
-static ADDRESS_MAP_START( jantouki_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( jantouki_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE( 0x40, 0x41 ) AM_WRITENOP // CRT Controller
AM_RANGE( 0x48, 0x48 ) AM_WRITE(jantouki_rombank_w) // BANK ROM Select
@@ -1052,7 +1053,7 @@ static READ8_HANDLER( jantouki_soundlatch_status_r )
return (state->m_soundlatch_full) ? 0 : 0x80;
}
-static ADDRESS_MAP_START( jantouki_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( jantouki_sound_io_map, AS_IO, 8, dynax_state )
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
@@ -1092,7 +1093,7 @@ static WRITE8_HANDLER( mjelctrn_blitter_ack_w )
state->m_blitter_irq = 0;
}
-static ADDRESS_MAP_START( mjelctrn_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mjelctrn_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_DEVWRITE("msm", adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x02, 0x02 ) AM_WRITE(adpcm_data_w) // MSM5205 data
@@ -1241,7 +1242,7 @@ static READ8_HANDLER( unk_r )
return 0x78;
}
-static ADDRESS_MAP_START( htengoku_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( htengoku_io_map, AS_IO, 8, dynax_state )
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
@@ -1539,7 +1540,7 @@ static WRITE8_HANDLER( tenkai_blit_romregion_w )
logerror("%04x: unmapped romregion=%02X\n", cpu_get_pc(&space->device()), data);
}
-static ADDRESS_MAP_START( tenkai_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tenkai_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x5fff ) AM_ROM
AM_RANGE( 0x6000, 0x6fff ) AM_RAM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
@@ -1567,7 +1568,7 @@ static ADDRESS_MAP_START( tenkai_map, AS_PROGRAM, 8 )
AM_RANGE( 0x100e1, 0x100e7 ) AM_WRITE(tenkai_blitter_rev2_w) // Blitter (inverted scroll values)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tenkai_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( tenkai_io_map, AS_IO, 8, dynax_state )
AM_RANGE( T90_P3, T90_P3 ) AM_READWRITE(tenkai_p3_r, tenkai_p3_w)
AM_RANGE( T90_P4, T90_P4 ) AM_WRITE(tenkai_p4_w)
AM_RANGE( T90_P5, T90_P5 ) AM_READ(tenkai_p5_r)
@@ -1712,13 +1713,13 @@ static WRITE8_HANDLER( gekisha_8000_w )
}
-static ADDRESS_MAP_START( gekisha_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gekisha_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x8000, 0xffff ) AM_READWRITE(gekisha_8000_r, gekisha_8000_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gekisha_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( gekisha_io_map, AS_IO, 8, dynax_state )
AM_RANGE( T90_P4, T90_P4 ) AM_WRITE(gekisha_p4_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/dynduke.c b/src/mame/drivers/dynduke.c
index 22d82e3511b..8cbb07db621 100644
--- a/src/mame/drivers/dynduke.c
+++ b/src/mame/drivers/dynduke.c
@@ -72,7 +72,7 @@ Also, implemented conditional port for Coin Mode (SW1:1)
/* Memory Maps */
-static ADDRESS_MAP_START( master_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( master_map, AS_PROGRAM, 16, dynduke_state )
AM_RANGE(0x00000, 0x06fff) AM_RAM
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x08000, 0x080ff) AM_RAM AM_BASE_MEMBER(dynduke_state, m_scroll_ram)
@@ -86,7 +86,7 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 16 )
AM_RANGE(0xa0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 16, dynduke_state )
AM_RANGE(0x00000, 0x05fff) AM_RAM
AM_RANGE(0x06000, 0x067ff) AM_RAM_WRITE(dynduke_background_w) AM_BASE_MEMBER(dynduke_state, m_back_data)
AM_RANGE(0x06800, 0x06fff) AM_RAM_WRITE(dynduke_foreground_w) AM_BASE_MEMBER(dynduke_state, m_fore_data)
@@ -98,7 +98,7 @@ static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
/* Memory map used by DlbDyn - probably an addressing PAL is different */
-static ADDRESS_MAP_START( masterj_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( masterj_map, AS_PROGRAM, 16, dynduke_state )
AM_RANGE(0x00000, 0x06fff) AM_RAM
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x08000, 0x087ff) AM_RAM_WRITE(dynduke_text_w) AM_BASE_MEMBER(dynduke_state, m_videoram)
diff --git a/src/mame/drivers/ecoinf1.c b/src/mame/drivers/ecoinf1.c
index e19fc4caf6d..8aa600b538a 100644
--- a/src/mame/drivers/ecoinf1.c
+++ b/src/mame/drivers/ecoinf1.c
@@ -21,12 +21,12 @@ public:
};
-static ADDRESS_MAP_START( older_memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( older_memmap, AS_PROGRAM, 8, ecoinf1_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x4000, 0x4fff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( older_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( older_portmap, AS_IO, 8, ecoinf1_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ecoinf2.c b/src/mame/drivers/ecoinf2.c
index 6e3e40f3c83..ea2d3e9770d 100644
--- a/src/mame/drivers/ecoinf2.c
+++ b/src/mame/drivers/ecoinf2.c
@@ -24,12 +24,12 @@ static WRITE8_HANDLER( ox_port5c_out_w )
// Watchdog?
}
-static ADDRESS_MAP_START( oxo_memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( oxo_memmap, AS_PROGRAM, 8, ecoinf2_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( oxo_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( oxo_portmap, AS_IO, 8, ecoinf2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x5c, 0x5c) AM_WRITE(ox_port5c_out_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ecoinf3.c b/src/mame/drivers/ecoinf3.c
index 9b18c6ad19d..f101b16d685 100644
--- a/src/mame/drivers/ecoinf3.c
+++ b/src/mame/drivers/ecoinf3.c
@@ -15,19 +15,19 @@ static WRITE8_HANDLER( py_port58_out_w )
// Watchdog?
}
-static ADDRESS_MAP_START( pyramid_memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pyramid_memmap, AS_PROGRAM, 8, ecoinf3_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pyramid_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( pyramid_portmap, AS_IO, 8, ecoinf3_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x58, 0x58) AM_WRITE(py_port58_out_w)
ADDRESS_MAP_END
/*
-static ADDRESS_MAP_START( pyramid_submap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pyramid_submap, AS_PROGRAM, 8, ecoinf3_state )
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
*/
diff --git a/src/mame/drivers/ecoinfr.c b/src/mame/drivers/ecoinfr.c
index 886896b38bf..5b167e06ee0 100644
--- a/src/mame/drivers/ecoinfr.c
+++ b/src/mame/drivers/ecoinfr.c
@@ -324,7 +324,7 @@ WRITE8_HANDLER( ec_port18_out_w )
}
-static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, ecoinfr_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_RAM
@@ -335,7 +335,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( portmap, AS_IO, 8, ecoinfr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(ec_port00_out_w) AM_READ_PORT("IN0") // Reel 1 Write
AM_RANGE(0x01, 0x01) AM_WRITE(ec_port01_out_w) AM_READ_PORT("IN1") // Reel 2 Write + Reels Opto Read
diff --git a/src/mame/drivers/egghunt.c b/src/mame/drivers/egghunt.c
index 0231d10f7dc..3eca6093f61 100644
--- a/src/mame/drivers/egghunt.c
+++ b/src/mame/drivers/egghunt.c
@@ -217,7 +217,7 @@ static WRITE8_DEVICE_HANDLER( egghunt_okibanking_w )
oki->set_bank_base((data & 0x10) ? 0x40000 : 0);
}
-static ADDRESS_MAP_START( egghunt_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( egghunt_map, AS_PROGRAM, 8, egghunt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(egghunt_atram_w) AM_BASE_MEMBER(egghunt_state, m_atram)
@@ -226,7 +226,7 @@ static ADDRESS_MAP_START( egghunt_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, egghunt_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW1") AM_WRITE(egghunt_vidram_bank_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("SYSTEM") AM_WRITE(egghunt_gfx_banking_w)
@@ -237,7 +237,7 @@ static ADDRESS_MAP_START( io_map, AS_IO, 8 )
AM_RANGE(0x07, 0x07) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, egghunt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
AM_RANGE(0xe001, 0xe001) AM_DEVREADWRITE("oki", egghunt_okibanking_r, egghunt_okibanking_w)
diff --git a/src/mame/drivers/embargo.c b/src/mame/drivers/embargo.c
index 6fd3f9419a6..e2f63fe904b 100644
--- a/src/mame/drivers/embargo.c
+++ b/src/mame/drivers/embargo.c
@@ -152,7 +152,7 @@ static WRITE8_HANDLER( input_select_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, embargo_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1e00, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE_SIZE_MEMBER(embargo_state, m_videoram, m_videoram_size)
@@ -166,7 +166,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( main_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( main_io_map, AS_IO, 8, embargo_state )
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN0") AM_WRITE(port_1_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(dial_r, port_2_w)
AM_RANGE(0x03, 0x03) AM_WRITENOP /* always 0xFE */
diff --git a/src/mame/drivers/enigma2.c b/src/mame/drivers/enigma2.c
index d5ffbbb08df..9d80b89b299 100644
--- a/src/mame/drivers/enigma2.c
+++ b/src/mame/drivers/enigma2.c
@@ -443,7 +443,7 @@ static const ay8910_interface ay8910_config =
-static ADDRESS_MAP_START( engima2_main_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( engima2_main_cpu_map, AS_PROGRAM, 8, enigma2_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x1fff) AM_ROM AM_WRITENOP
AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_RAM AM_BASE_MEMBER(enigma2_state, m_videoram)
@@ -459,7 +459,7 @@ static ADDRESS_MAP_START( engima2_main_cpu_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( engima2a_main_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( engima2a_main_cpu_map, AS_PROGRAM, 8, enigma2_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM AM_WRITENOP
AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_RAM AM_BASE_MEMBER(enigma2_state, m_videoram)
AM_RANGE(0x4000, 0x4fff) AM_ROM AM_WRITENOP
@@ -468,7 +468,7 @@ static ADDRESS_MAP_START( engima2a_main_cpu_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( engima2a_main_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( engima2a_main_cpu_io_map, AS_IO, 8, enigma2_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_NOP
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN0") AM_WRITENOP
@@ -480,7 +480,7 @@ static ADDRESS_MAP_START( engima2a_main_cpu_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( engima2_audio_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( engima2_audio_cpu_map, AS_PROGRAM, 8, enigma2_state )
AM_RANGE(0x0000, 0x0fff) AM_MIRROR(0x1000) AM_ROM AM_WRITENOP
AM_RANGE(0x2000, 0x7fff) AM_NOP
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x1c00) AM_RAM
diff --git a/src/mame/drivers/eolith.c b/src/mame/drivers/eolith.c
index adeeaaafea0..6c852092dd9 100644
--- a/src/mame/drivers/eolith.c
+++ b/src/mame/drivers/eolith.c
@@ -145,7 +145,7 @@ static READ32_HANDLER( hidctch3_pen2_r )
return xpos + (ypos*168*2);
}
-static ADDRESS_MAP_START( eolith_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( eolith_map, AS_PROGRAM, 32, eolith_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM // fort2b wants ram here
AM_RANGE(0x40000000, 0x401fffff) AM_RAM
AM_RANGE(0x90000000, 0x9003ffff) AM_READWRITE(eolith_vram_r, eolith_vram_w)
diff --git a/src/mame/drivers/eolith16.c b/src/mame/drivers/eolith16.c
index 69a085e4e86..5770b3c840b 100644
--- a/src/mame/drivers/eolith16.c
+++ b/src/mame/drivers/eolith16.c
@@ -71,7 +71,7 @@ static READ16_HANDLER( vram_r )
return state->m_vram[offset + (0x10000/2) * state->m_vbuffer];
}
-static ADDRESS_MAP_START( eolith16_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( eolith16_map, AS_PROGRAM, 16, eolith16_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM
AM_RANGE(0x50000000, 0x5000ffff) AM_READWRITE(vram_r, vram_w)
AM_RANGE(0x90000000, 0x9000002f) AM_WRITENOP //?
diff --git a/src/mame/drivers/epos.c b/src/mame/drivers/epos.c
index 7dd7bf4bd5b..59976cb7321 100644
--- a/src/mame/drivers/epos.c
+++ b/src/mame/drivers/epos.c
@@ -57,14 +57,14 @@ static WRITE8_HANDLER( dealer_decrypt_rom )
*
*************************************/
-static ADDRESS_MAP_START( epos_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( epos_map, AS_PROGRAM, 8, epos_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_RAM AM_BASE_SIZE_MEMBER(epos_state, m_videoram, m_videoram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dealer_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dealer_map, AS_PROGRAM, 8, epos_state )
AM_RANGE(0x0000, 0x5fff) AM_ROMBANK("bank1")
AM_RANGE(0x6000, 0x6fff) AM_ROMBANK("bank2")
AM_RANGE(0x7000, 0x7fff) AM_RAM
@@ -77,7 +77,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, epos_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW") AM_WRITE(watchdog_reset_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("SYSTEM") AM_WRITE(epos_port_1_w)
@@ -86,7 +86,7 @@ static ADDRESS_MAP_START( io_map, AS_IO, 8 )
AM_RANGE(0x06, 0x06) AM_DEVWRITE("aysnd", ay8910_address_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dealer_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( dealer_io_map, AS_IO, 8, epos_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("ppi8255", ppi8255_r, ppi8255_w)
AM_RANGE(0x20, 0x24) AM_WRITE(dealer_decrypt_rom)
diff --git a/src/mame/drivers/eprom.c b/src/mame/drivers/eprom.c
index cd838e17123..2373196de1a 100644
--- a/src/mame/drivers/eprom.c
+++ b/src/mame/drivers/eprom.c
@@ -160,7 +160,7 @@ static WRITE16_HANDLER( sync_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, eprom_state )
AM_RANGE(0x000000, 0x09ffff) AM_ROM
AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
AM_RANGE(0x16cc00, 0x16cc01) AM_RAM AM_SHARE("share2")
@@ -185,7 +185,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( guts_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( guts_map, AS_PROGRAM, 16, eprom_state )
AM_RANGE(0x000000, 0x09ffff) AM_ROM
AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
AM_RANGE(0x16cc00, 0x16cc01) AM_RAM AM_SHARE("share2")
@@ -218,7 +218,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( extra_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( extra_map, AS_PROGRAM, 16, eprom_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x16cc00, 0x16cc01) AM_READWRITE(sync_r, sync_w) AM_SHARE("share2") AM_BASE_MEMBER(eprom_state, m_sync_data)
AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
diff --git a/src/mame/drivers/equites.c b/src/mame/drivers/equites.c
index b5b81314be6..208df68ea51 100644
--- a/src/mame/drivers/equites.c
+++ b/src/mame/drivers/equites.c
@@ -715,7 +715,7 @@ static WRITE16_HANDLER( mcu_halt_clear_w )
-static ADDRESS_MAP_START( equites_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( equites_map, AS_PROGRAM, 16, equites_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM // ROM area is written several times (dev system?)
AM_RANGE(0x040000, 0x040fff) AM_RAM AM_SHARE("nvram") // nvram is for gekisou only
AM_RANGE(0x080000, 0x080fff) AM_READWRITE(equites_fg_videoram_r, equites_fg_videoram_w) // 8-bit
@@ -738,7 +738,7 @@ static ADDRESS_MAP_START( equites_map, AS_PROGRAM, 16 )
AM_RANGE(0x780000, 0x780001) AM_WRITE(watchdog_reset16_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( splndrbt_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( splndrbt_map, AS_PROGRAM, 16, equites_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x040000, 0x040fff) AM_RAM AM_BASE_MEMBER(equites_state, m_workram) // work RAM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") // joyport [2211]
@@ -761,7 +761,7 @@ static ADDRESS_MAP_START( splndrbt_map, AS_PROGRAM, 16 )
AM_RANGE(0x600100, 0x6001ff) AM_RAM AM_BASE_MEMBER(equites_state, m_spriteram_2) // sprite RAM 2 (8-bit)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, equites_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r)
AM_RANGE(0xc080, 0xc08d) AM_DEVWRITE("msm", msm5232_w)
@@ -774,12 +774,12 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe0ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, equites_state )
AM_RANGE(0x00e0, 0x00e5) AM_WRITE(equites_8155_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, equites_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_BASE_MEMBER(equites_state, m_mcu_ram) /* main CPU shared RAM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ertictac.c b/src/mame/drivers/ertictac.c
index 16b72a698e8..141e6f0854c 100644
--- a/src/mame/drivers/ertictac.c
+++ b/src/mame/drivers/ertictac.c
@@ -51,7 +51,7 @@ static READ32_HANDLER( ertictac_podule_r )
return 0;
}
-static ADDRESS_MAP_START( ertictac_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( ertictac_map, AS_PROGRAM, 32, ertictac_state )
AM_RANGE(0x00000000, 0x01ffffff) AM_READWRITE(archimedes_memc_logical_r, archimedes_memc_logical_w)
AM_RANGE(0x02000000, 0x02ffffff) AM_RAM AM_BASE(&archimedes_memc_physmem) /* physical RAM - 16 MB for now, should be 512k for the A310 */
diff --git a/src/mame/drivers/esd16.c b/src/mame/drivers/esd16.c
index 56c0b57b879..4516525eb76 100644
--- a/src/mame/drivers/esd16.c
+++ b/src/mame/drivers/esd16.c
@@ -81,7 +81,7 @@ static WRITE16_HANDLER( esd16_sound_command_w )
AFAIK)
*/
-static ADDRESS_MAP_START( multchmp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( multchmp_map, AS_PROGRAM, 16, esd16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // RAM
AM_RANGE(0x200000, 0x2005ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) // Palette
@@ -134,7 +134,7 @@ static WRITE16_HANDLER( esd_eeprom_w )
// logerror("(0x%06x) Unk EEPROM write: %04x %04x\n", cpu_get_pc(&space->device()), data, mem_mask);
}
-static ADDRESS_MAP_START( hedpanic_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hedpanic_map, AS_PROGRAM, 16, esd16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // RAM
AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) // Palette
@@ -162,7 +162,7 @@ ADDRESS_MAP_END
/* Multi Champ Deluxe, like Head Panic but different addresses */
-static ADDRESS_MAP_START( mchampdx_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mchampdx_map, AS_PROGRAM, 16, esd16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
AM_RANGE(0x300000, 0x303fff) AM_WRITE(esd16_vram_0_w) AM_BASE_MEMBER(esd16_state, m_vram_0) // Layers
@@ -190,7 +190,7 @@ ADDRESS_MAP_END
/* Tang Tang & Deluxe 5 - like the others but again with different addresses */
-static ADDRESS_MAP_START( tangtang_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tangtang_map, AS_PROGRAM, 16, esd16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) // RAM
AM_RANGE(0x200000, 0x2007ff) AM_WRITEONLY AM_BASE_SIZE_MEMBER(esd16_state, m_spriteram, m_spriteram_size) // Sprites
@@ -233,7 +233,7 @@ static WRITE8_HANDLER( esd16_sound_rombank_w )
memory_set_bank(space->machine(), "bank1", bank);
}
-static ADDRESS_MAP_START( multchmp_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( multchmp_sound_map, AS_PROGRAM, 8, esd16_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
AM_RANGE(0xf800, 0xffff) AM_RAM // RAM
@@ -248,7 +248,7 @@ static READ8_HANDLER( esd16_sound_command_r )
return soundlatch_r(space, 0);
}
-static ADDRESS_MAP_START( multchmp_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( multchmp_sound_io_map, AS_IO, 8, esd16_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ymsnd", ym3812_w) // YM3812
AM_RANGE(0x02, 0x02) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write) // M6295
diff --git a/src/mame/drivers/esh.c b/src/mame/drivers/esh.c
index 80abcb4b305..e5ebfb357c1 100644
--- a/src/mame/drivers/esh.c
+++ b/src/mame/drivers/esh.c
@@ -152,7 +152,7 @@ static WRITE8_HANDLER(nmi_line_w)
/* PROGRAM MAPS */
-static ADDRESS_MAP_START( z80_0_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( z80_0_mem, AS_PROGRAM, 8, esh_state )
AM_RANGE(0x0000,0x3fff) AM_ROM
AM_RANGE(0xe000,0xe7ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xf000,0xf3ff) AM_RAM AM_BASE_MEMBER(esh_state, m_tile_ram)
@@ -161,7 +161,7 @@ ADDRESS_MAP_END
/* IO MAPS */
-static ADDRESS_MAP_START( z80_0_io, AS_IO, 8 )
+static ADDRESS_MAP_START( z80_0_io, AS_IO, 8, esh_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xf0,0xf0) AM_READ_PORT("IN0")
AM_RANGE(0xf1,0xf1) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/espial.c b/src/mame/drivers/espial.c
index 7eb4959a4d2..57cc6db7a8a 100644
--- a/src/mame/drivers/espial.c
+++ b/src/mame/drivers/espial.c
@@ -109,7 +109,7 @@ static WRITE8_HANDLER( espial_master_soundlatch_w )
}
-static ADDRESS_MAP_START( espial_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( espial_map, AS_PROGRAM, 8, espial_state )
AM_RANGE(0x0000, 0x4fff) AM_ROM
AM_RANGE(0x5800, 0x5fff) AM_RAM
AM_RANGE(0x6081, 0x6081) AM_READ_PORT("IN0")
@@ -134,7 +134,7 @@ ADDRESS_MAP_END
/* there are a lot of unmapped reads from all over memory as the
code uses POP instructions in a delay loop */
-static ADDRESS_MAP_START( netwars_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( netwars_map, AS_PROGRAM, 8, espial_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x5800, 0x5fff) AM_RAM
AM_RANGE(0x6081, 0x6081) AM_READ_PORT("IN0")
@@ -155,14 +155,14 @@ static ADDRESS_MAP_START( netwars_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( espial_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( espial_sound_map, AS_PROGRAM, 8, espial_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_WRITE(espial_sound_nmi_mask_w)
AM_RANGE(0x6000, 0x6000) AM_READWRITE(soundlatch_r, soundlatch2_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( espial_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( espial_sound_io_map, AS_IO, 8, espial_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/esripsys.c b/src/mame/drivers/esripsys.c
index 5db99ea3896..5c0461c51db 100644
--- a/src/mame/drivers/esripsys.c
+++ b/src/mame/drivers/esripsys.c
@@ -608,7 +608,7 @@ static WRITE8_HANDLER( volume_dac_w )
*
*************************************/
-static ADDRESS_MAP_START( game_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( game_cpu_map, AS_PROGRAM, 8, esripsys_state )
AM_RANGE(0x0000, 0x3fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x4000, 0x42ff) AM_RAM AM_BASE_MEMBER(esripsys_state, m_pal_ram)
AM_RANGE(0x4300, 0x4300) AM_WRITE(esripsys_bg_intensity_w)
@@ -623,7 +623,7 @@ static ADDRESS_MAP_START( game_cpu_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( frame_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( frame_cpu_map, AS_PROGRAM, 8, esripsys_state )
AM_RANGE(0x0000, 0x3fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x4000, 0x4fff) AM_READWRITE(fdt_r, fdt_w)
AM_RANGE(0x6000, 0x6000) AM_READWRITE(f_status_r, f_status_w)
@@ -632,7 +632,7 @@ static ADDRESS_MAP_START( frame_cpu_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_cpu_map, AS_PROGRAM, 8, esripsys_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0fff) AM_RAM /* Not installed on later PCBs */
AM_RANGE(0x2008, 0x2009) AM_READWRITE(tms5220_r, tms5220_w)
@@ -649,7 +649,7 @@ static ADDRESS_MAP_START( sound_cpu_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( video_cpu_map, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( video_cpu_map, AS_PROGRAM, 64, esripsys_state )
AM_RANGE(0x000, 0x1ff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ettrivia.c b/src/mame/drivers/ettrivia.c
index 92794042942..32b1a4cfe63 100644
--- a/src/mame/drivers/ettrivia.c
+++ b/src/mame/drivers/ettrivia.c
@@ -131,7 +131,7 @@ static WRITE8_HANDLER( b800_w )
state->m_b800_prev = data;
}
-static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8, ettrivia_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x9000, 0x9000) AM_WRITE(ettrivia_control_w)
@@ -143,7 +143,7 @@ static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(ettrivia_bg_w) AM_BASE_MEMBER(ettrivia_state, m_bg_videoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, ettrivia_state )
AM_RANGE(0x0000, 0xffff) AM_READ(ettrivia_question_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/exedexes.c b/src/mame/drivers/exedexes.c
index 5707f5c8379..fa5e16c019b 100644
--- a/src/mame/drivers/exedexes.c
+++ b/src/mame/drivers/exedexes.c
@@ -28,7 +28,7 @@ static TIMER_DEVICE_CALLBACK( exedexes_scanline )
}
-static ADDRESS_MAP_START( exedexes_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( exedexes_map, AS_PROGRAM, 8, exedexes_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("SYSTEM")
AM_RANGE(0xc001, 0xc001) AM_READ_PORT("P1")
@@ -50,7 +50,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, exedexes_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/exerion.c b/src/mame/drivers/exerion.c
index 27f945d6b9a..cb7a1d9efee 100644
--- a/src/mame/drivers/exerion.c
+++ b/src/mame/drivers/exerion.c
@@ -191,7 +191,7 @@ static READ8_HANDLER( exerion_protection_r )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, exerion_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6008, 0x600b) AM_READ(exerion_protection_r)
AM_RANGE(0x6000, 0x67ff) AM_RAM AM_BASE_MEMBER(exerion_state, m_main_ram)
@@ -216,7 +216,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, exerion_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/exidy.c b/src/mame/drivers/exidy.c
index 3e019b8ccad..308a5ac4312 100644
--- a/src/mame/drivers/exidy.c
+++ b/src/mame/drivers/exidy.c
@@ -201,7 +201,7 @@ static WRITE8_HANDLER( fax_bank_select_w )
*
*************************************/
-static ADDRESS_MAP_START( exidy_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( exidy_map, AS_PROGRAM, 8, exidy_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0400) AM_RAM AM_BASE_MEMBER(exidy_state, m_videoram)
AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x003f) AM_WRITEONLY AM_BASE_MEMBER(exidy_state, m_sprite1_xpos)
@@ -218,7 +218,7 @@ static ADDRESS_MAP_START( exidy_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sidetrac_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sidetrac_map, AS_PROGRAM, 8, exidy_state )
AM_RANGE(0x0800, 0x3fff) AM_ROM
AM_RANGE(0x4800, 0x4fff) AM_ROM AM_BASE_MEMBER(exidy_state, m_characterram)
AM_RANGE(0x5200, 0x5200) AM_WRITE(targ_audio_1_w)
@@ -228,7 +228,7 @@ static ADDRESS_MAP_START( sidetrac_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( targ_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( targ_map, AS_PROGRAM, 8, exidy_state )
AM_RANGE(0x0800, 0x3fff) AM_ROM
AM_RANGE(0x4800, 0x4fff) AM_RAM AM_BASE_MEMBER(exidy_state, m_characterram)
AM_RANGE(0x5200, 0x5200) AM_WRITE(targ_audio_1_w)
@@ -238,7 +238,7 @@ static ADDRESS_MAP_START( targ_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spectar_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spectar_map, AS_PROGRAM, 8, exidy_state )
AM_RANGE(0x0800, 0x3fff) AM_ROM
AM_RANGE(0x4800, 0x4fff) AM_RAM AM_BASE_MEMBER(exidy_state, m_characterram)
AM_RANGE(0x5200, 0x5200) AM_WRITE(targ_audio_1_w)
@@ -248,7 +248,7 @@ static ADDRESS_MAP_START( spectar_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rallys_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rallys_map, AS_PROGRAM, 8, exidy_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0800, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0400) AM_RAM AM_BASE_MEMBER(exidy_state, m_videoram)
@@ -270,7 +270,7 @@ static ADDRESS_MAP_START( rallys_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( venture_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( venture_map, AS_PROGRAM, 8, exidy_state )
AM_RANGE(0x4800, 0x4fff) AM_RAM AM_BASE_MEMBER(exidy_state, m_characterram)
AM_RANGE(0x5200, 0x520f) AM_DEVREADWRITE_MODERN("pia0", pia6821_device, read, write)
AM_RANGE(0x8000, 0xffff) AM_ROM
@@ -278,7 +278,7 @@ static ADDRESS_MAP_START( venture_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pepper2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pepper2_map, AS_PROGRAM, 8, exidy_state )
AM_RANGE(0x4800, 0x4fff) AM_NOP
AM_RANGE(0x5200, 0x520f) AM_DEVREADWRITE_MODERN("pia0", pia6821_device, read, write)
AM_RANGE(0x6000, 0x6fff) AM_RAM AM_BASE_MEMBER(exidy_state, m_characterram)
@@ -287,7 +287,7 @@ static ADDRESS_MAP_START( pepper2_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fax_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fax_map, AS_PROGRAM, 8, exidy_state )
AM_RANGE(0x0400, 0x07ff) AM_RAM
AM_RANGE(0x1a00, 0x1a00) AM_READ_PORT("IN4")
AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("IN3")
diff --git a/src/mame/drivers/exidy440.c b/src/mame/drivers/exidy440.c
index 53ff52b3c37..32b56c7a41c 100644
--- a/src/mame/drivers/exidy440.c
+++ b/src/mame/drivers/exidy440.c
@@ -472,7 +472,7 @@ static MACHINE_RESET( exidy440 )
*
*************************************/
-static ADDRESS_MAP_START( exidy440_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( exidy440_map, AS_PROGRAM, 8, exidy440_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_MEMBER(exidy440_state, m_imageram)
AM_RANGE(0x2000, 0x209f) AM_RAM_WRITE(exidy440_spriteram_w) AM_BASE_MEMBER(exidy440_state, m_spriteram)
AM_RANGE(0x20a0, 0x29ff) AM_RAM
diff --git a/src/mame/drivers/expro02.c b/src/mame/drivers/expro02.c
index 8fad27f572c..f570c9ef785 100644
--- a/src/mame/drivers/expro02.c
+++ b/src/mame/drivers/expro02.c
@@ -368,7 +368,7 @@ static WRITE16_HANDLER(galsnew_vram_1_bank_w)
*
*************************************/
-static ADDRESS_MAP_START( galsnew_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( galsnew_map, AS_PROGRAM, 16, expro02_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // main program
AM_RANGE(0x080000, 0x0fffff) AM_ROM AM_REGION("user2",0) // other data
AM_RANGE(0x100000, 0x3fffff) AM_ROM AM_REGION("user1",0) // main data
@@ -411,7 +411,7 @@ ADDRESS_MAP_END
// bigger rom space, OKI commands moved
// no CALC mcu
-static ADDRESS_MAP_START( fantasia_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( fantasia_map, AS_PROGRAM, 16, expro02_state )
AM_RANGE(0x000000, 0x4fffff) AM_ROM
AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_BASE_MEMBER(expro02_state, m_galsnew_bg_pixram)
AM_RANGE(0x520000, 0x53ffff) AM_RAM AM_BASE_MEMBER(expro02_state, m_galsnew_fg_pixram)
diff --git a/src/mame/drivers/exprraid.c b/src/mame/drivers/exprraid.c
index 4c1798d3e5e..3909793b7f3 100644
--- a/src/mame/drivers/exprraid.c
+++ b/src/mame/drivers/exprraid.c
@@ -243,7 +243,7 @@ static READ8_HANDLER( vblank_r )
return input_port_read(space->machine(), "IN0");
}
-static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, exprraid_state )
AM_RANGE(0x0000, 0x05ff) AM_RAM AM_BASE_MEMBER(exprraid_state, m_main_ram)
AM_RANGE(0x0600, 0x07ff) AM_RAM AM_BASE_SIZE_MEMBER(exprraid_state, m_spriteram, m_spriteram_size)
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(exprraid_videoram_w) AM_BASE_MEMBER(exprraid_state, m_videoram)
@@ -266,11 +266,11 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( master_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( master_io_map, AS_IO, 8, exprraid_state )
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN0")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8, exprraid_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
AM_RANGE(0x4000, 0x4001) AM_DEVREADWRITE("ym2", ym3526_r, ym3526_w)
diff --git a/src/mame/drivers/exterm.c b/src/mame/drivers/exterm.c
index 63bd148df2c..bedfd593906 100644
--- a/src/mame/drivers/exterm.c
+++ b/src/mame/drivers/exterm.c
@@ -279,7 +279,7 @@ static WRITE8_HANDLER( sound_control_w )
*
*************************************/
-static ADDRESS_MAP_START( master_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( master_map, AS_PROGRAM, 16, exterm_state )
AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, tms34010_io_register_w)
AM_RANGE(0x00000000, 0x000fffff) AM_MIRROR(0xfc700000) AM_RAM AM_BASE_MEMBER(exterm_state, m_master_videoram)
AM_RANGE(0x00800000, 0x00bfffff) AM_MIRROR(0xfc400000) AM_RAM
@@ -296,7 +296,7 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 16, exterm_state )
AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, tms34010_io_register_w)
AM_RANGE(0x00000000, 0x000fffff) AM_MIRROR(0xfbf00000) AM_RAM AM_BASE_MEMBER(exterm_state, m_slave_videoram)
AM_RANGE(0x04000000, 0x047fffff) AM_MIRROR(0xfb800000) AM_RAM
@@ -310,7 +310,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_master_map, AS_PROGRAM, 8, exterm_state )
AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x1800) AM_RAM
AM_RANGE(0x4000, 0x5fff) AM_DEVWRITE("ymsnd", ym2151_data_latch_w)
AM_RANGE(0x6000, 0x67ff) AM_WRITE(sound_nmi_rate_w)
@@ -322,7 +322,7 @@ static ADDRESS_MAP_START( sound_master_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_slave_map, AS_PROGRAM, 8, exterm_state )
AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x3800) AM_RAM
AM_RANGE(0x4000, 0x5fff) AM_READ(sound_slave_latch_r)
AM_RANGE(0x8000, 0xbfff) AM_DEVWRITE("dac", sound_slave_dac_w)
diff --git a/src/mame/drivers/extrema.c b/src/mame/drivers/extrema.c
index eff7f408c22..e6984f6809c 100644
--- a/src/mame/drivers/extrema.c
+++ b/src/mame/drivers/extrema.c
@@ -25,12 +25,12 @@ public:
-static ADDRESS_MAP_START( extrema_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( extrema_map, AS_PROGRAM, 8, extrema_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( extrema_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( extrema_portmap, AS_IO, 8, extrema_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/exzisus.c b/src/mame/drivers/exzisus.c
index 8e32da4df7e..f5aa0197362 100644
--- a/src/mame/drivers/exzisus.c
+++ b/src/mame/drivers/exzisus.c
@@ -140,7 +140,7 @@ static DRIVER_INIT( exzisus )
**************************************************************************/
-static ADDRESS_MAP_START( cpua_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpua_map, AS_PROGRAM, 8, exzisus_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
AM_RANGE(0xc000, 0xc5ff) AM_READWRITE(exzisus_objectram_1_r, exzisus_objectram_1_w) AM_BASE_MEMBER(exzisus_state, m_objectram1) AM_SIZE_MEMBER(exzisus_state, m_objectram_size1)
@@ -151,7 +151,7 @@ static ADDRESS_MAP_START( cpua_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_READWRITE(exzisus_sharedram_ab_r, exzisus_sharedram_ab_w) AM_BASE_MEMBER(exzisus_state, m_sharedram_ab)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpub_map, AS_PROGRAM, 8, exzisus_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc5ff) AM_READWRITE(exzisus_objectram_0_r, exzisus_objectram_0_w) AM_BASE_MEMBER(exzisus_state, m_objectram0) AM_SIZE_MEMBER(exzisus_state, m_objectram_size0)
@@ -170,7 +170,7 @@ static ADDRESS_MAP_START( cpub_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_READWRITE(exzisus_sharedram_ab_r, exzisus_sharedram_ab_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpuc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpuc_map, AS_PROGRAM, 8, exzisus_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x85ff) AM_READWRITE(exzisus_objectram_1_r, exzisus_objectram_1_w)
AM_RANGE(0x8600, 0x9fff) AM_READWRITE(exzisus_videoram_1_r, exzisus_videoram_1_w)
@@ -178,7 +178,7 @@ static ADDRESS_MAP_START( cpuc_map, AS_PROGRAM, 8 )
AM_RANGE(0xb000, 0xbfff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, exzisus_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/f-32.c b/src/mame/drivers/f-32.c
index fe57d52c475..c1e67767119 100644
--- a/src/mame/drivers/f-32.c
+++ b/src/mame/drivers/f-32.c
@@ -52,7 +52,7 @@ static SCREEN_UPDATE_IND16( mosaicf2 )
-static ADDRESS_MAP_START( common_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( common_map, AS_PROGRAM, 32, mosaicf2_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM
AM_RANGE(0x40000000, 0x4003ffff) AM_RAM AM_BASE_MEMBER(mosaicf2_state, m_videoram)
AM_RANGE(0x80000000, 0x80ffffff) AM_ROM AM_REGION("user2",0)
@@ -71,7 +71,7 @@ static READ32_HANDLER( f32_input_port_1_r )
}
-static ADDRESS_MAP_START( mosaicf2_io, AS_IO, 32 )
+static ADDRESS_MAP_START( mosaicf2_io, AS_IO, 32, mosaicf2_state )
AM_RANGE(0x4000, 0x4003) AM_DEVREAD8_MODERN("oki", okim6295_device, read, 0x000000ff)
AM_RANGE(0x4810, 0x4813) AM_DEVREAD8("ymsnd", ym2151_status_port_r, 0x000000ff)
AM_RANGE(0x5000, 0x5003) AM_READ_PORT("P1")
diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c
index 11e8d127abd..1e719621783 100644
--- a/src/mame/drivers/f1gp.c
+++ b/src/mame/drivers/f1gp.c
@@ -92,7 +92,7 @@ static WRITE8_HANDLER( pending_command_clear_w )
}
-static ADDRESS_MAP_START( f1gp_cpu1_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( f1gp_cpu1_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x2fffff) AM_READ(extrarom_r)
AM_RANGE(0xa00000, 0xbfffff) AM_READ(extrarom2_r)
@@ -121,7 +121,7 @@ static ADDRESS_MAP_START( f1gp_cpu1_map, AS_PROGRAM, 16 )
AM_RANGE(0xfff050, 0xfff051) AM_READ_PORT("DSW3")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( f1gp2_cpu1_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( f1gp2_cpu1_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x2fffff) AM_READ(extrarom_r)
AM_RANGE(0xa00000, 0xa07fff) AM_RAM AM_BASE_MEMBER(f1gp_state, m_sprcgram) // SPR-1 CG RAM + SPR-2 CG RAM
@@ -141,19 +141,19 @@ static ADDRESS_MAP_START( f1gp2_cpu1_map, AS_PROGRAM, 16 )
AM_RANGE(0xfff044, 0xfff047) AM_WRITE(f1gp_fgscroll_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( f1gp_cpu2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( f1gp_cpu2_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0xff8000, 0xffbfff) AM_RAM
AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, f1gp_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, f1gp_state )
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
@@ -186,7 +186,7 @@ static WRITE16_HANDLER( f1gpb_misc_w )
*/
}
-static ADDRESS_MAP_START( f1gpb_cpu1_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( f1gpb_cpu1_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x2fffff) AM_READ(extrarom_r)
AM_RANGE(0xa00000, 0xbfffff) AM_READ(extrarom2_r)
@@ -218,7 +218,7 @@ static ADDRESS_MAP_START( f1gpb_cpu1_map, AS_PROGRAM, 16 )
AM_RANGE(0xfff800, 0xfff809) AM_RAM AM_BASE_MEMBER(f1gp_state, m_rozregs)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( f1gpb_cpu2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( f1gpb_cpu2_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0xff8000, 0xffbfff) AM_RAM
AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w)
diff --git a/src/mame/drivers/famibox.c b/src/mame/drivers/famibox.c
index 4e06ba181c2..9887551fc6b 100644
--- a/src/mame/drivers/famibox.c
+++ b/src/mame/drivers/famibox.c
@@ -372,7 +372,7 @@ static WRITE8_HANDLER( famibox_system_w )
*******************************************************/
-static ADDRESS_MAP_START( famibox_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( famibox_map, AS_PROGRAM, 8, famibox_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_DEVREADWRITE_MODERN("ppu", ppu2c0x_device, read, write)
AM_RANGE(0x4000, 0x4013) AM_DEVREADWRITE("nes", nes_psg_r, nes_psg_w) /* PSG primary registers */
diff --git a/src/mame/drivers/fantland.c b/src/mame/drivers/fantland.c
index 2f03670e174..d9c718ce72e 100644
--- a/src/mame/drivers/fantland.c
+++ b/src/mame/drivers/fantland.c
@@ -125,7 +125,7 @@ static WRITE16_HANDLER( spriteram2_16_w )
spriteram_2[2 * offset + 1] = data >> 8;
}
-static ADDRESS_MAP_START( fantland_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( fantland_map, AS_PROGRAM, 16, fantland_state )
AM_RANGE( 0x00000, 0x07fff ) AM_RAM
AM_RANGE( 0x08000, 0x7ffff ) AM_ROM
@@ -145,7 +145,7 @@ ADDRESS_MAP_END
Galaxy Gunners
***************************************************************************/
-static ADDRESS_MAP_START( galaxygn_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( galaxygn_map, AS_PROGRAM, 8, fantland_state )
AM_RANGE( 0x00000, 0x07fff ) AM_RAM
AM_RANGE( 0x10000, 0x2ffff ) AM_ROM
@@ -239,7 +239,7 @@ static READ8_HANDLER( borntofi_inputs_r )
return state->m_input_ret[offset];
}
-static ADDRESS_MAP_START( borntofi_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( borntofi_map, AS_PROGRAM, 8, fantland_state )
AM_RANGE( 0x00000, 0x07fff ) AM_RAM
AM_RANGE( 0x10000, 0x2ffff ) AM_ROM
@@ -266,7 +266,7 @@ ADDRESS_MAP_END
Wheels Runner
***************************************************************************/
-static ADDRESS_MAP_START( wheelrun_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wheelrun_map, AS_PROGRAM, 8, fantland_state )
AM_RANGE(0x00000, 0x07fff) AM_RAM
AM_RANGE(0x30000, 0x3ffff) AM_ROM
@@ -293,19 +293,19 @@ ADDRESS_MAP_END
***************************************************************************/
-static ADDRESS_MAP_START( fantland_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fantland_sound_map, AS_PROGRAM, 8, fantland_state )
AM_RANGE( 0x00000, 0x01fff ) AM_RAM
AM_RANGE( 0x80000, 0x9ffff ) AM_ROM
AM_RANGE( 0xc0000, 0xfffff ) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fantland_sound_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( fantland_sound_iomap, AS_IO, 8, fantland_state )
AM_RANGE( 0x0080, 0x0080 ) AM_READ( soundlatch_r )
AM_RANGE( 0x0100, 0x0101 ) AM_DEVREADWRITE( "ymsnd", ym2151_r, ym2151_w )
AM_RANGE( 0x0180, 0x0180 ) AM_DEVWRITE( "dac", dac_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( galaxygn_sound_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( galaxygn_sound_iomap, AS_IO, 8, fantland_state )
AM_RANGE( 0x0080, 0x0080 ) AM_READ( soundlatch_r )
AM_RANGE( 0x0100, 0x0101 ) AM_DEVREADWRITE( "ymsnd", ym2151_r, ym2151_w )
ADDRESS_MAP_END
@@ -407,7 +407,7 @@ static void borntofi_adpcm_int_2(device_t *device) { borntofi_adpcm_int(device,
static void borntofi_adpcm_int_3(device_t *device) { borntofi_adpcm_int(device, 3); }
-static ADDRESS_MAP_START( borntofi_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( borntofi_sound_map, AS_PROGRAM, 8, fantland_state )
AM_RANGE( 0x00000, 0x003ff ) AM_RAM
AM_RANGE( 0x04000, 0x04000 ) AM_READ(soundlatch_r)
AM_RANGE( 0x04000, 0x0401f ) AM_WRITE(borntofi_msm5205_w)
@@ -420,7 +420,7 @@ ADDRESS_MAP_END
Wheels Runner
***************************************************************************/
-static ADDRESS_MAP_START( wheelrun_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wheelrun_sound_map, AS_PROGRAM, 8, fantland_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym3526_r, ym3526_w )
diff --git a/src/mame/drivers/fastfred.c b/src/mame/drivers/fastfred.c
index 70edec9ada7..44e405c7b0a 100644
--- a/src/mame/drivers/fastfred.c
+++ b/src/mame/drivers/fastfred.c
@@ -180,7 +180,7 @@ static WRITE8_HANDLER( sound_nmi_mask_w )
state->m_sound_nmi_mask = data & 1;
}
-static ADDRESS_MAP_START( fastfred_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fastfred_map, AS_PROGRAM, 8, fastfred_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd3ff) AM_MIRROR(0x400) AM_RAM_WRITE(fastfred_videoram_w) AM_BASE_MEMBER(fastfred_state, m_videoram)
@@ -203,7 +203,7 @@ static ADDRESS_MAP_START( fastfred_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jumpcoas_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jumpcoas_map, AS_PROGRAM, 8, fastfred_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd03f) AM_RAM_WRITE(fastfred_attributes_w) AM_BASE_MEMBER(fastfred_state, m_attributesram)
@@ -230,7 +230,7 @@ static ADDRESS_MAP_START( jumpcoas_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( imago_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( imago_map, AS_PROGRAM, 8, fastfred_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1000, 0x1fff) AM_READ(imago_sprites_offset_r)
AM_RANGE(0x2000, 0x6fff) AM_ROM
@@ -257,7 +257,7 @@ static ADDRESS_MAP_START( imago_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xf800) AM_READNOP AM_WRITE(soundlatch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, fastfred_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x3000, 0x3000) AM_READWRITE(soundlatch_r, sound_nmi_mask_w)
diff --git a/src/mame/drivers/fastlane.c b/src/mame/drivers/fastlane.c
index 4a431eb002a..7eccee978b4 100644
--- a/src/mame/drivers/fastlane.c
+++ b/src/mame/drivers/fastlane.c
@@ -69,7 +69,7 @@ static WRITE8_DEVICE_HANDLER( fastlane_k007232_w )
}
-static ADDRESS_MAP_START( fastlane_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fastlane_map, AS_PROGRAM, 8, fastlane_state )
AM_RANGE(0x0000, 0x005f) AM_RAM_WRITE(k007121_registers_w) AM_BASE_MEMBER(fastlane_state, m_k007121_regs) /* 007121 registers */
AM_RANGE(0x0800, 0x0800) AM_READ_PORT("DSW3")
AM_RANGE(0x0801, 0x0801) AM_READ_PORT("P2")
diff --git a/src/mame/drivers/fcombat.c b/src/mame/drivers/fcombat.c
index 46ac4f4299f..e10865dda9c 100644
--- a/src/mame/drivers/fcombat.c
+++ b/src/mame/drivers/fcombat.c
@@ -116,7 +116,7 @@ static WRITE8_HANDLER(ee00_w)
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, fcombat_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE_SIZE_MEMBER(fcombat_state, m_videoram, m_videoram_size)
@@ -137,7 +137,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, fcombat_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/fcrash.c b/src/mame/drivers/fcrash.c
index 27b5b329cc4..2270799b633 100644
--- a/src/mame/drivers/fcrash.c
+++ b/src/mame/drivers/fcrash.c
@@ -379,7 +379,7 @@ static SCREEN_UPDATE_IND16( kodb )
}
-static ADDRESS_MAP_START( fcrash_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( fcrash_map, AS_PROGRAM, 16, cps_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
AM_RANGE(0x800100, 0x80013f) AM_RAM AM_BASE_MEMBER(cps_state, m_cps_a_regs) /* CPS-A custom */
@@ -392,7 +392,7 @@ static ADDRESS_MAP_START( fcrash_map, AS_PROGRAM, 16 )
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cps_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xd000, 0xd7ff) AM_RAM
@@ -405,7 +405,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kodb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( kodb_map, AS_PROGRAM, 16, cps_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM
AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
/* forgottn, willow, cawing, nemo, varth read from 800010. Probably debug input leftover from development */
diff --git a/src/mame/drivers/feversoc.c b/src/mame/drivers/feversoc.c
index a83bc6f7ba5..510e61cc8f8 100644
--- a/src/mame/drivers/feversoc.c
+++ b/src/mame/drivers/feversoc.c
@@ -160,7 +160,7 @@ static WRITE32_HANDLER( output_w )
}
}
-static ADDRESS_MAP_START( feversoc_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( feversoc_map, AS_PROGRAM, 32, feversoc_state )
AM_RANGE(0x00000000, 0x0003ffff) AM_ROM
AM_RANGE(0x02000000, 0x0203dfff) AM_RAM //work ram
AM_RANGE(0x0203e000, 0x0203ffff) AM_RAM AM_BASE_MEMBER(feversoc_state, m_spriteram)
diff --git a/src/mame/drivers/fgoal.c b/src/mame/drivers/fgoal.c
index 57a3a74aedc..82ebe03dcff 100644
--- a/src/mame/drivers/fgoal.c
+++ b/src/mame/drivers/fgoal.c
@@ -205,7 +205,7 @@ static WRITE8_HANDLER( fgoal_sound2_w )
}
-static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8, fgoal_state )
AM_RANGE(0x0000, 0x00ef) AM_RAM
diff --git a/src/mame/drivers/finalizr.c b/src/mame/drivers/finalizr.c
index bf4d795e944..eafa7c7b296 100644
--- a/src/mame/drivers/finalizr.c
+++ b/src/mame/drivers/finalizr.c
@@ -97,7 +97,7 @@ static WRITE8_HANDLER( i8039_T0_w )
*/
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, finalizr_state )
AM_RANGE(0x0001, 0x0001) AM_WRITEONLY AM_BASE_MEMBER(finalizr_state, m_scroll)
AM_RANGE(0x0003, 0x0003) AM_WRITE(finalizr_videoctrl_w)
AM_RANGE(0x0004, 0x0004) AM_WRITE(finalizr_flipscreen_w)
@@ -125,11 +125,11 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, finalizr_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, finalizr_state )
AM_RANGE(0x00, 0xff) AM_READ(soundlatch_r)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE("dac", dac_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(i8039_irqen_w)
diff --git a/src/mame/drivers/firebeat.c b/src/mame/drivers/firebeat.c
index ed264262236..1ad397475ca 100644
--- a/src/mame/drivers/firebeat.c
+++ b/src/mame/drivers/firebeat.c
@@ -1749,7 +1749,7 @@ static MACHINE_START( firebeat )
state->m_flash[2] = machine.device<fujitsu_29f016a_device>("flash2");
}
-static ADDRESS_MAP_START( firebeat_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( firebeat_map, AS_PROGRAM, 32, firebeat_state )
AM_RANGE(0x00000000, 0x01ffffff) AM_RAM AM_BASE_MEMBER(firebeat_state, m_work_ram)
AM_RANGE(0x70000000, 0x70000fff) AM_READWRITE(midi_uart_r, midi_uart_w)
AM_RANGE(0x70006000, 0x70006003) AM_WRITE(extend_board_irq_w)
@@ -1772,7 +1772,7 @@ static ADDRESS_MAP_START( firebeat_map, AS_PROGRAM, 32 )
AM_RANGE(0x7ff80000, 0x7fffffff) AM_ROM AM_REGION("user1", 0) /* System BIOS */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spu_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( spu_map, AS_PROGRAM, 16, firebeat_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAM
AM_RANGE(0x340000, 0x34000f) AM_READ(spu_unk_r)
diff --git a/src/mame/drivers/firefox.c b/src/mame/drivers/firefox.c
index 3fc8db3b5b9..7722147c0c6 100644
--- a/src/mame/drivers/firefox.c
+++ b/src/mame/drivers/firefox.c
@@ -488,7 +488,7 @@ static MACHINE_START( firefox )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8)
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, firefox_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(tileram_w) AM_BASE_MEMBER(firefox_state, m_tileram)
AM_RANGE(0x2000, 0x27ff) AM_RAM AM_BASE_MEMBER(firefox_state, m_spriteram)
@@ -534,7 +534,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, firefox_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x087f) AM_MIRROR(0x0700) AM_RAM /* RIOT ram */
AM_RANGE(0x0880, 0x089f) AM_MIRROR(0x07e0) AM_DEVREADWRITE("riot",riot6532_r, riot6532_w)
diff --git a/src/mame/drivers/firetrap.c b/src/mame/drivers/firetrap.c
index ab2d99f5f8d..6455990f560 100644
--- a/src/mame/drivers/firetrap.c
+++ b/src/mame/drivers/firetrap.c
@@ -348,7 +348,7 @@ static WRITE8_HANDLER( flip_screen_w )
}
-static ADDRESS_MAP_START( firetrap_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( firetrap_map, AS_PROGRAM, 8, firetrap_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM
@@ -374,7 +374,7 @@ static ADDRESS_MAP_START( firetrap_map, AS_PROGRAM, 8 )
AM_RANGE(0xf016, 0xf016) AM_READ(firetrap_8751_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( firetrap_bootleg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( firetrap_bootleg_map, AS_PROGRAM, 8, firetrap_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM
@@ -401,7 +401,7 @@ static ADDRESS_MAP_START( firetrap_bootleg_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xf8ff) AM_ROM /* extra ROM in the bootleg with unprotection code */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, firetrap_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ymsnd", ym3526_w)
AM_RANGE(0x2000, 0x2000) AM_WRITE(firetrap_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c
index d8d4e5de233..93be3eefe74 100644
--- a/src/mame/drivers/firetrk.c
+++ b/src/mame/drivers/firetrk.c
@@ -330,7 +330,7 @@ static WRITE8_HANDLER( crash_reset_w )
}
-static ADDRESS_MAP_START( firetrk_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( firetrk_map, AS_PROGRAM, 8, firetrk_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x0700) AM_RAM AM_BASE_MEMBER(firetrk_state, m_alpha_num_ram)
AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0700) AM_RAM AM_BASE_MEMBER(firetrk_state, m_playfield_ram)
@@ -356,7 +356,7 @@ static ADDRESS_MAP_START( firetrk_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( superbug_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( superbug_map, AS_PROGRAM, 8, firetrk_state )
ADDRESS_MAP_GLOBAL_MASK(0x1fff)
AM_RANGE(0x0000, 0x00ff) AM_RAM
AM_RANGE(0x0100, 0x0100) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE_MEMBER(firetrk_state, m_scroll_y)
@@ -380,7 +380,7 @@ static ADDRESS_MAP_START( superbug_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( montecar_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( montecar_map, AS_PROGRAM, 8, firetrk_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x0700) AM_RAM AM_BASE_MEMBER(firetrk_state, m_alpha_num_ram)
AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0700) AM_RAM AM_BASE_MEMBER(firetrk_state, m_playfield_ram)
diff --git a/src/mame/drivers/fitfight.c b/src/mame/drivers/fitfight.c
index 23dd1b03993..72ef04af4ff 100644
--- a/src/mame/drivers/fitfight.c
+++ b/src/mame/drivers/fitfight.c
@@ -123,7 +123,7 @@ static WRITE16_HANDLER(fitfight_700000_w)
state->m_fof_700000_data = data;
}
-static ADDRESS_MAP_START( fitfight_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( fitfight_main_map, AS_PROGRAM, 16, fitfight_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_WRITEONLY AM_BASE_MEMBER(fitfight_state, m_fof_100000)
@@ -175,7 +175,7 @@ static ADDRESS_MAP_START( fitfight_main_map, AS_PROGRAM, 16 )
AM_RANGE(0xe00000, 0xe0ffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bbprot_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bbprot_main_map, AS_PROGRAM, 16, fitfight_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_WRITEONLY AM_BASE_MEMBER(fitfight_state, m_fof_100000)
@@ -209,7 +209,7 @@ ADDRESS_MAP_END
/* 7810 (?) sound cpu */
-static ADDRESS_MAP_START( snd_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( snd_mem, AS_PROGRAM, 8, fitfight_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") /* ??? External ROM */
AM_RANGE(0x8000, 0x87ff) AM_RAM
@@ -249,7 +249,7 @@ static WRITE8_HANDLER(snd_portc_w)
//mame_printf_debug("PC W %x @%x\n",data,cpu_get_pc(&space->device()));
}
-static ADDRESS_MAP_START( snd_io, AS_IO, 8 )
+static ADDRESS_MAP_START( snd_io, AS_IO, 8, fitfight_state )
AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_READ(snd_porta_r) AM_WRITE(snd_porta_w)
AM_RANGE(UPD7810_PORTB, UPD7810_PORTB) AM_READ(snd_portb_r) AM_WRITE(snd_portb_w)
AM_RANGE(UPD7810_PORTC, UPD7810_PORTC) AM_READ(snd_portc_r) AM_WRITE(snd_portc_w)
diff --git a/src/mame/drivers/flkatck.c b/src/mame/drivers/flkatck.c
index 54623c5ec5d..32b51c5ba35 100644
--- a/src/mame/drivers/flkatck.c
+++ b/src/mame/drivers/flkatck.c
@@ -95,7 +95,7 @@ static WRITE8_HANDLER( multiply_w )
}
-static ADDRESS_MAP_START( flkatck_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( flkatck_map, AS_PROGRAM, 8, flkatck_state )
AM_RANGE(0x0000, 0x0007) AM_RAM_WRITE(flkatck_k007121_regs_w) /* 007121 registers */
AM_RANGE(0x0008, 0x03ff) AM_RAM /* RAM */
AM_RANGE(0x0400, 0x041f) AM_READWRITE(flkatck_ls138_r, flkatck_ls138_w) /* inputs, DIPS, bankswitch, counters, sound command */
@@ -106,7 +106,7 @@ static ADDRESS_MAP_START( flkatck_map, AS_PROGRAM, 8 )
AM_RANGE(0x6000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( flkatck_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( flkatck_sound_map, AS_PROGRAM, 8, flkatck_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
AM_RANGE(0x9000, 0x9000) AM_READWRITE(multiply_r, multiply_w) /* ??? */
diff --git a/src/mame/drivers/flower.c b/src/mame/drivers/flower.c
index 200c70b9c04..acff8f3241b 100644
--- a/src/mame/drivers/flower.c
+++ b/src/mame/drivers/flower.c
@@ -109,7 +109,7 @@ static WRITE8_HANDLER( sound_command_w )
cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
-static ADDRESS_MAP_START( flower_cpu1_2, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( flower_cpu1_2, AS_PROGRAM, 8, flower_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_WRITE(flower_coin_lockout_w)
AM_RANGE(0xa001, 0xa001) AM_WRITE(flower_flipscreen_w)
@@ -132,7 +132,7 @@ static ADDRESS_MAP_START( flower_cpu1_2, AS_PROGRAM, 8 )
AM_RANGE(0xfa00, 0xfa00) AM_SHARE("share8") AM_RAM AM_BASE_MEMBER(flower_state, m_bg1_scroll)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( flower_sound_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( flower_sound_cpu, AS_PROGRAM, 8, flower_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4000) AM_WRITE(flower_soundcpu_irq_ack)
AM_RANGE(0x4001, 0x4001) AM_WRITEONLY AM_BASE_MEMBER(flower_state, m_sn_nmi_enable)
diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c
index 792bfe6d5e9..0fe74958937 100644
--- a/src/mame/drivers/flstory.c
+++ b/src/mame/drivers/flstory.c
@@ -70,7 +70,7 @@ static WRITE8_HANDLER( nmi_enable_w )
}
}
-static ADDRESS_MAP_START( flstory_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( flstory_map, AS_PROGRAM, 8, flstory_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(flstory_videoram_w) AM_BASE_SIZE_MEMBER(flstory_state, m_videoram, m_videoram_size)
AM_RANGE(0xc800, 0xcfff) AM_RAM /* unknown */
@@ -96,7 +96,7 @@ static ADDRESS_MAP_START( flstory_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe7ff) AM_RAM /* work RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( onna34ro_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( onna34ro_map, AS_PROGRAM, 8, flstory_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(flstory_videoram_w) AM_BASE_SIZE_MEMBER(flstory_state, m_videoram, m_videoram_size)
AM_RANGE(0xc800, 0xcfff) AM_RAM /* unknown */
@@ -130,7 +130,7 @@ static CUSTOM_INPUT( victnine_mcu_status_bit01_r )
return (victnine_mcu_status_r(space, 0) & 3);
}
-static ADDRESS_MAP_START( victnine_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( victnine_map, AS_PROGRAM, 8, flstory_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(flstory_videoram_w) AM_BASE_SIZE_MEMBER(flstory_state, m_videoram, m_videoram_size)
AM_RANGE(0xc800, 0xcfff) AM_RAM /* unknown */
@@ -339,7 +339,7 @@ static WRITE8_HANDLER( rumba_mcu_w )
state->m_mcu_param = 1;
}
-static ADDRESS_MAP_START( rumba_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rumba_map, AS_PROGRAM, 8, flstory_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(flstory_videoram_w) AM_BASE_SIZE_MEMBER(flstory_state, m_videoram, m_videoram_size)
// AM_RANGE(0xc800, 0xcfff) AM_RAM /* unknown */
@@ -445,7 +445,7 @@ static WRITE8_DEVICE_HANDLER( sound_control_3_w ) /* unknown */
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, flstory_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc801) AM_DEVWRITE("aysnd", ay8910_address_data_w)
@@ -459,7 +459,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_ROM /* space for diagnostics ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( flstory_m68705_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( flstory_m68705_map, AS_PROGRAM, 8, flstory_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(flstory_68705_port_a_r, flstory_68705_port_a_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(flstory_68705_port_b_r, flstory_68705_port_b_w)
diff --git a/src/mame/drivers/flyball.c b/src/mame/drivers/flyball.c
index 14088327471..13816d5125f 100644
--- a/src/mame/drivers/flyball.c
+++ b/src/mame/drivers/flyball.c
@@ -245,7 +245,7 @@ static WRITE8_HANDLER( flyball_misc_w )
*
*************************************/
-static ADDRESS_MAP_START( flyball_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( flyball_map, AS_PROGRAM, 8, flyball_state )
ADDRESS_MAP_GLOBAL_MASK(0x1fff)
AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x100) AM_RAM
AM_RANGE(0x0800, 0x0800) AM_NOP
diff --git a/src/mame/drivers/foodf.c b/src/mame/drivers/foodf.c
index bdf0a030fbb..1e84051696f 100644
--- a/src/mame/drivers/foodf.c
+++ b/src/mame/drivers/foodf.c
@@ -211,7 +211,7 @@ static WRITE16_HANDLER( analog_w )
*************************************/
// complete memory map derived from schematics
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, foodf_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x00ffff) AM_MIRROR(0x3e0000) AM_ROM
AM_RANGE(0x014000, 0x014fff) AM_MIRROR(0x3e3000) AM_RAM
diff --git a/src/mame/drivers/forte2.c b/src/mame/drivers/forte2.c
index 1af74b97fd6..1a316d0204e 100644
--- a/src/mame/drivers/forte2.c
+++ b/src/mame/drivers/forte2.c
@@ -37,12 +37,12 @@ public:
-static ADDRESS_MAP_START( program_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( program_mem, AS_PROGRAM, 8, forte2_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_mem, AS_IO, 8 )
+static ADDRESS_MAP_START( io_mem, AS_IO, 8, forte2_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x98, 0x98) AM_DEVREADWRITE_MODERN( "tms9928a", tms9928a_device, vram_read, vram_write )
diff --git a/src/mame/drivers/fortecar.c b/src/mame/drivers/fortecar.c
index 07d9cacfe48..b52584c8747 100644
--- a/src/mame/drivers/fortecar.c
+++ b/src/mame/drivers/fortecar.c
@@ -558,14 +558,14 @@ static const eeprom_interface forte_eeprom_intf =
};
-static ADDRESS_MAP_START( fortecar_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fortecar_map, AS_PROGRAM, 8, fortecar_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_ROM
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xd800, 0xffff) AM_RAM AM_BASE_SIZE_MEMBER(fortecar_state, m_vram,m_vram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fortecar_ports, AS_IO, 8 )
+static ADDRESS_MAP_START( fortecar_ports, AS_IO, 8, fortecar_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x20, 0x20) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w) // pc=444
AM_RANGE(0x21, 0x21) AM_DEVWRITE_MODERN("crtc", mc6845_device, register_w)
diff --git a/src/mame/drivers/freekick.c b/src/mame/drivers/freekick.c
index 6f6f42308c7..f03f69a9811 100644
--- a/src/mame/drivers/freekick.c
+++ b/src/mame/drivers/freekick.c
@@ -162,7 +162,7 @@ static WRITE8_HANDLER( freekick_ff_w )
*
*************************************/
-static ADDRESS_MAP_START( pbillrd_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pbillrd_map, AS_PROGRAM, 8, freekick_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM
@@ -182,7 +182,7 @@ static ADDRESS_MAP_START( pbillrd_map, AS_PROGRAM, 8 )
AM_RANGE(0xfc03, 0xfc03) AM_DEVWRITE("sn4", sn76496_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( freekickb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( freekickb_map, AS_PROGRAM, 8, freekick_state )
AM_RANGE(0x0000, 0xcfff) AM_ROM
AM_RANGE(0xd000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(freek_videoram_w) AM_BASE_MEMBER(freekick_state, m_videoram) // tilemap
@@ -202,7 +202,7 @@ static ADDRESS_MAP_START( freekickb_map, AS_PROGRAM, 8 )
AM_RANGE(0xfc03, 0xfc03) AM_DEVWRITE("sn4", sn76496_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gigas_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gigas_map, AS_PROGRAM, 8, freekick_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(freek_videoram_w) AM_BASE_MEMBER(freekick_state, m_videoram)
@@ -221,13 +221,13 @@ static ADDRESS_MAP_START( gigas_map, AS_PROGRAM, 8 )
AM_RANGE(0xfc03, 0xfc03) AM_DEVWRITE("sn4", sn76496_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gigas_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( gigas_io_map, AS_IO, 8, freekick_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(spinner_r, spinner_select_w)
AM_RANGE(0x01, 0x01) AM_READNOP //unused dip 3
ADDRESS_MAP_END
-static ADDRESS_MAP_START( oigas_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( oigas_io_map, AS_IO, 8, freekick_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(spinner_r, spinner_select_w)
AM_RANGE(0x01, 0x01) AM_READNOP //unused dip 3
@@ -236,7 +236,7 @@ static ADDRESS_MAP_START( oigas_io_map, AS_IO, 8 )
AM_RANGE(0x05, 0x05) AM_WRITE(oigas_5_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( freekickb_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( freekickb_io_map, AS_IO, 8, freekick_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xff, 0xff) AM_READWRITE(freekick_ff_r, freekick_ff_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c
index 2ed6ef8220e..8111fd5b01e 100644
--- a/src/mame/drivers/fromanc2.c
+++ b/src/mame/drivers/fromanc2.c
@@ -186,7 +186,7 @@ static WRITE8_HANDLER( fromanc2_subcpu_rombank_w )
*
*************************************/
-static ADDRESS_MAP_START( fromanc2_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( fromanc2_main_map, AS_PROGRAM, 16, fromanc2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // MAIN ROM
AM_RANGE(0x802000, 0x802fff) AM_READNOP // ???
@@ -219,7 +219,7 @@ static ADDRESS_MAP_START( fromanc2_main_map, AS_PROGRAM, 16 )
AM_RANGE(0xd80000, 0xd8ffff) AM_RAM // WORK RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fromancr_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( fromancr_main_map, AS_PROGRAM, 16, fromanc2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // MAIN ROM
AM_RANGE(0x800000, 0x803fff) AM_WRITE(fromancr_videoram_0_w) // VRAM BG (1P/2P)
@@ -247,7 +247,7 @@ static ADDRESS_MAP_START( fromancr_main_map, AS_PROGRAM, 16 )
AM_RANGE(0xd80000, 0xd8ffff) AM_RAM // WORK RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fromanc4_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( fromanc4_main_map, AS_PROGRAM, 16, fromanc2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // MAIN ROM
AM_RANGE(0x400000, 0x7fffff) AM_ROM // DATA ROM
@@ -283,14 +283,14 @@ static ADDRESS_MAP_START( fromanc4_main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fromanc2_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fromanc2_sub_map, AS_PROGRAM, 8, fromanc2_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM // ROM
AM_RANGE(0x4000, 0x7fff) AM_RAMBANK("bank1") // ROM(BANK) (is this comment correct? It was in the split address maps in a RAM configuration...
AM_RANGE(0x8000, 0xbfff) AM_RAM // RAM(WORK)
AM_RANGE(0xc000, 0xffff) AM_RAMBANK("bank2") // RAM(BANK)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fromanc2_sub_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( fromanc2_sub_io_map, AS_IO, 8, fromanc2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(fromanc2_subcpu_rombank_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(fromanc2_maincpu_r_l, fromanc2_maincpu_w_l) // to/from MAIN CPU
@@ -299,12 +299,12 @@ static ADDRESS_MAP_START( fromanc2_sub_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fromanc2_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fromanc2_sound_map, AS_PROGRAM, 8, fromanc2_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fromanc2_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( fromanc2_sound_io_map, AS_IO, 8, fromanc2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r) AM_WRITENOP // snd cmd (1P) / ?
AM_RANGE(0x04, 0x04) AM_READ(soundlatch2_r) // snd cmd (2P)
diff --git a/src/mame/drivers/fromance.c b/src/mame/drivers/fromance.c
index 31780b0fc46..0a39a92b9d9 100644
--- a/src/mame/drivers/fromance.c
+++ b/src/mame/drivers/fromance.c
@@ -221,7 +221,7 @@ static WRITE8_HANDLER( fromance_coinctr_w )
*
*************************************/
-static ADDRESS_MAP_START( nekkyoku_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nekkyoku_main_map, AS_PROGRAM, 8, fromance_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xf000, 0xf000) AM_READ_PORT("SERVICE") AM_WRITE(fromance_portselect_w)
@@ -232,7 +232,7 @@ static ADDRESS_MAP_START( nekkyoku_main_map, AS_PROGRAM, 8 )
AM_RANGE(0xf005, 0xf005) AM_READ_PORT("DSW1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fromance_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fromance_main_map, AS_PROGRAM, 8, fromance_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0x9e89, 0x9e89) AM_READNOP // unknown (idolmj)
@@ -252,7 +252,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( nekkyoku_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nekkyoku_sub_map, AS_PROGRAM, 8, fromance_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xefff) AM_READWRITE(fromance_videoram_r, fromance_videoram_w)
@@ -260,7 +260,7 @@ static ADDRESS_MAP_START( nekkyoku_sub_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_READWRITE(fromance_paletteram_r, fromance_paletteram_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fromance_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fromance_sub_map, AS_PROGRAM, 8, fromance_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc7ff) AM_RAM
@@ -276,7 +276,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( nekkyoku_sub_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( nekkyoku_sub_io_map, AS_IO, 8, fromance_state )
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)
@@ -290,7 +290,7 @@ static ADDRESS_MAP_START( nekkyoku_sub_io_map, AS_IO, 8 )
AM_RANGE(0xe9, 0xea) AM_DEVWRITE("aysnd", ay8910_data_address_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( idolmj_sub_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( idolmj_sub_io_map, AS_IO, 8, fromance_state )
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)
@@ -304,7 +304,7 @@ static ADDRESS_MAP_START( idolmj_sub_io_map, AS_IO, 8 )
AM_RANGE(0x29, 0x2a) AM_DEVWRITE("aysnd", ay8910_data_address_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fromance_sub_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( fromance_sub_io_map, AS_IO, 8, fromance_state )
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)
diff --git a/src/mame/drivers/funkybee.c b/src/mame/drivers/funkybee.c
index b3bfc2cea19..198a4f6633b 100644
--- a/src/mame/drivers/funkybee.c
+++ b/src/mame/drivers/funkybee.c
@@ -88,7 +88,7 @@ static WRITE8_HANDLER( funkybee_coin_counter_w )
coin_counter_w(space->machine(), offset, data);
}
-static ADDRESS_MAP_START( funkybee_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( funkybee_map, AS_PROGRAM, 8, funkybee_state )
AM_RANGE(0x0000, 0x4fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xbfff) AM_RAM_WRITE(funkybee_videoram_w) AM_BASE_MEMBER(funkybee_state, m_videoram)
@@ -103,7 +103,7 @@ static ADDRESS_MAP_START( funkybee_map, AS_PROGRAM, 8 )
AM_RANGE(0xf802, 0xf802) AM_READ_PORT("IN2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, funkybee_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
AM_RANGE(0x02, 0x02) AM_DEVREAD("aysnd", ay8910_r)
diff --git a/src/mame/drivers/funkyjet.c b/src/mame/drivers/funkyjet.c
index 6d425afdfd2..a8710e66846 100644
--- a/src/mame/drivers/funkyjet.c
+++ b/src/mame/drivers/funkyjet.c
@@ -100,7 +100,7 @@ Notes:
/******************************************************************************/
-static ADDRESS_MAP_START( funkyjet_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( funkyjet_map, AS_PROGRAM, 16, funkyjet_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x140000, 0x143fff) AM_RAM
@@ -118,7 +118,7 @@ ADDRESS_MAP_END
/******************************************************************************/
/* Physical memory map (21 bits) */
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, funkyjet_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_NOP /* YM2203 - this board doesn't have one */
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/funworld.c b/src/mame/drivers/funworld.c
index ac4a2c44f4f..632bdfec263 100644
--- a/src/mame/drivers/funworld.c
+++ b/src/mame/drivers/funworld.c
@@ -848,7 +848,7 @@ static WRITE8_DEVICE_HANDLER(pia1_ca2_w)
* Memory map information *
*************************/
-static ADDRESS_MAP_START( funworld_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( funworld_map, AS_PROGRAM, 8, funworld_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x0800, 0x0803) AM_DEVREADWRITE_MODERN("pia0", pia6821_device, read, write)
AM_RANGE(0x0a00, 0x0a03) AM_DEVREADWRITE_MODERN("pia1", pia6821_device, read, write)
@@ -882,7 +882,7 @@ static WRITE8_HANDLER( question_bank_w )
funquiz_question_bank = data;
}
-static ADDRESS_MAP_START( funquiz_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( funquiz_map, AS_PROGRAM, 8, funworld_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x0800, 0x0803) AM_DEVREADWRITE_MODERN("pia0", pia6821_device, read, write)
AM_RANGE(0x0a00, 0x0a03) AM_DEVREADWRITE_MODERN("pia1", pia6821_device, read, write)
@@ -900,7 +900,7 @@ static ADDRESS_MAP_START( funquiz_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( magicrd2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( magicrd2_map, AS_PROGRAM, 8, funworld_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x0800, 0x0803) AM_DEVREADWRITE_MODERN("pia0", pia6821_device, read, write)
AM_RANGE(0x0a00, 0x0a03) AM_DEVREADWRITE_MODERN("pia1", pia6821_device, read, write)
@@ -916,7 +916,7 @@ static ADDRESS_MAP_START( magicrd2_map, AS_PROGRAM, 8 )
AM_RANGE(0x6000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cuoreuno_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cuoreuno_map, AS_PROGRAM, 8, funworld_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x0800, 0x0803) AM_DEVREADWRITE_MODERN("pia0", pia6821_device, read, write)
AM_RANGE(0x0a00, 0x0a03) AM_DEVREADWRITE_MODERN("pia1", pia6821_device, read, write)
@@ -931,7 +931,7 @@ static ADDRESS_MAP_START( cuoreuno_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( saloon_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( saloon_map, AS_PROGRAM, 8, funworld_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x0800, 0x0800) AM_READ_PORT("IN0")
AM_RANGE(0x0a01, 0x0a01) AM_READ_PORT("IN1")
@@ -959,7 +959,7 @@ ADDRESS_MAP_END
*/
-static ADDRESS_MAP_START( witchryl_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( witchryl_map, AS_PROGRAM, 8, funworld_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x0800, 0x0803) AM_DEVREADWRITE_MODERN("pia0", pia6821_device, read, write)
AM_RANGE(0x0a00, 0x0a03) AM_DEVREADWRITE_MODERN("pia1", pia6821_device, read, write)
diff --git a/src/mame/drivers/funybubl.c b/src/mame/drivers/funybubl.c
index ac7525843ed..7a31c7f796c 100644
--- a/src/mame/drivers/funybubl.c
+++ b/src/mame/drivers/funybubl.c
@@ -79,7 +79,7 @@ static WRITE8_DEVICE_HANDLER( funybubl_oki_bank_sw )
}
-static ADDRESS_MAP_START( funybubl_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( funybubl_map, AS_PROGRAM, 8, funybubl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2") // banked port 1?
AM_RANGE(0xc400, 0xcfff) AM_RAM_WRITE(funybubl_paldatawrite) AM_BASE_MEMBER(funybubl_state, m_paletteram) // palette
@@ -87,7 +87,7 @@ static ADDRESS_MAP_START( funybubl_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, funybubl_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("SYSTEM") AM_WRITE(funybubl_vidram_bank_w) // vidram bank
AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_WRITE(funybubl_cpurombank_w) // rom bank?
@@ -100,7 +100,7 @@ ADDRESS_MAP_END
/* Sound CPU */
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, funybubl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_DEVWRITE("oki", funybubl_oki_bank_sw)
diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c
index 6a3db5921a5..91e3696d8df 100644
--- a/src/mame/drivers/fuukifg2.c
+++ b/src/mame/drivers/fuukifg2.c
@@ -87,7 +87,7 @@ static WRITE16_HANDLER( fuuki16_sound_command_w )
}
}
-static ADDRESS_MAP_START( fuuki16_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( fuuki16_map, AS_PROGRAM, 16, fuuki16_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM // RAM
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(fuuki16_vram_0_w) AM_BASE_MEMBER(fuuki16_state, m_vram[0]) // Layers
@@ -133,13 +133,13 @@ static WRITE8_DEVICE_HANDLER( fuuki16_oki_banking_w )
oki->set_bank_base(((data & 6) >> 1) * 0x40000);
}
-static ADDRESS_MAP_START( fuuki16_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fuuki16_sound_map, AS_PROGRAM, 8, fuuki16_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
AM_RANGE(0x6000, 0x7fff) AM_RAM // RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // Banked ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fuuki16_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( fuuki16_sound_io_map, AS_IO, 8, fuuki16_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(fuuki16_sound_rombank_w) // ROM Bank
AM_RANGE(0x11, 0x11) AM_READ(soundlatch_r) AM_WRITENOP // From Main CPU / ? To Main CPU ?
diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c
index 621889773c2..b42f22d2bf7 100644
--- a/src/mame/drivers/fuukifg3.c
+++ b/src/mame/drivers/fuukifg3.c
@@ -237,7 +237,7 @@ static WRITE32_HANDLER( fuuki32_vregs_w )
}
}
-static ADDRESS_MAP_START( fuuki32_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( fuuki32_map, AS_PROGRAM, 32, fuuki32_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM // Work RAM
AM_RANGE(0x410000, 0x41ffff) AM_RAM // Work RAM (used by asurabus)
@@ -296,14 +296,14 @@ static WRITE8_HANDLER( snd_ymf278b_w )
ymf262_w(space->machine().device("ymf2"), offset, data);
}
-static ADDRESS_MAP_START( fuuki32_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fuuki32_sound_map, AS_PROGRAM, 8, fuuki32_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
AM_RANGE(0x7ff0, 0x7fff) AM_READWRITE(snd_z80_r, snd_z80_w)
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fuuki32_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( fuuki32_sound_io_map, AS_IO, 8, fuuki32_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(fuuki32_sound_bw_w)
AM_RANGE(0x30, 0x30) AM_WRITENOP // leftover/unused nmi handler related
diff --git a/src/mame/drivers/gaelco.c b/src/mame/drivers/gaelco.c
index 3a1b7af4a89..7e3ab8f1b03 100644
--- a/src/mame/drivers/gaelco.c
+++ b/src/mame/drivers/gaelco.c
@@ -121,7 +121,7 @@ static WRITE16_HANDLER(thoop_encrypted_w)
*
*************************************/
-static ADDRESS_MAP_START( bigkarnk_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bigkarnk_map, AS_PROGRAM, 16, gaelco_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(gaelco_vram_w) AM_BASE_MEMBER(gaelco_state, m_videoram) /* Video RAM */
AM_RANGE(0x102000, 0x103fff) AM_RAM /* Screen RAM */
@@ -139,7 +139,7 @@ static ADDRESS_MAP_START( bigkarnk_map, AS_PROGRAM, 16 )
AM_RANGE(0xff8000, 0xffffff) AM_RAM /* Work RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bigkarnk_snd_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bigkarnk_snd_map, AS_PROGRAM, 8, gaelco_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM /* RAM */
AM_RANGE(0x0800, 0x0801) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write) /* OKI6295 */
// AM_RANGE(0x0900, 0x0900) AM_WRITENOP /* enable sound output? */
@@ -148,7 +148,7 @@ static ADDRESS_MAP_START( bigkarnk_snd_map, AS_PROGRAM, 8 )
AM_RANGE(0x0c00, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( maniacsq_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( maniacsq_map, AS_PROGRAM, 16, gaelco_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(gaelco_vram_w) AM_BASE_MEMBER(gaelco_state, m_videoram) /* Video RAM */
AM_RANGE(0x102000, 0x103fff) AM_RAM /* Screen RAM */
@@ -165,7 +165,7 @@ static ADDRESS_MAP_START( maniacsq_map, AS_PROGRAM, 16 )
AM_RANGE(0xff0000, 0xffffff) AM_RAM /* Work RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( squash_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( squash_map, AS_PROGRAM, 16, gaelco_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(gaelco_vram_encrypted_w) AM_BASE_MEMBER(gaelco_state, m_videoram) /* Video RAM */
AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(gaelco_encrypted_w) AM_BASE_MEMBER(gaelco_state, m_screen) /* Screen RAM */
@@ -182,7 +182,7 @@ static ADDRESS_MAP_START( squash_map, AS_PROGRAM, 16 )
AM_RANGE(0xff0000, 0xffffff) AM_RAM /* Work RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( thoop_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( thoop_map, AS_PROGRAM, 16, gaelco_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(thoop_vram_encrypted_w) AM_BASE_MEMBER(gaelco_state, m_videoram) /* Video RAM */
AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(thoop_encrypted_w) AM_BASE_MEMBER(gaelco_state, m_screen) /* Screen RAM */
diff --git a/src/mame/drivers/gaelco2.c b/src/mame/drivers/gaelco2.c
index cdbbe3e7b93..ae4a3091a3a 100644
--- a/src/mame/drivers/gaelco2.c
+++ b/src/mame/drivers/gaelco2.c
@@ -54,7 +54,7 @@ GFXDECODEINFO(0x0400000, 128)
MANIAC SQUARE (FINAL)
============================================================================*/
-static ADDRESS_MAP_START( maniacsq_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( maniacsq_map, AS_PROGRAM, 16, gaelco2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
@@ -211,7 +211,7 @@ static READ16_HANDLER(p1_gun_y) {return (input_port_read(space->machine(), "LIGH
static READ16_HANDLER(p2_gun_x) {return (input_port_read(space->machine(), "LIGHT1_X") * 320 / 0x100) + 1;}
static READ16_HANDLER(p2_gun_y) {return (input_port_read(space->machine(), "LIGHT1_Y") * 240 / 0x100) - 4;}
-static ADDRESS_MAP_START( bang_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bang_map, AS_PROGRAM, 16, gaelco2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
@@ -429,7 +429,7 @@ ROM_END
============================================================================*/
-static ADDRESS_MAP_START( alighunt_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( alighunt_map, AS_PROGRAM, 16, gaelco2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
@@ -640,7 +640,7 @@ static READ16_HANDLER ( dallas_kludge_r )
return 0x0200;
}
-static ADDRESS_MAP_START( touchgo_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( touchgo_map, AS_PROGRAM, 16, gaelco2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
@@ -904,7 +904,7 @@ ROM_END
SNOW BOARD
============================================================================*/
-static ADDRESS_MAP_START( snowboar_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( snowboar_map, AS_PROGRAM, 16, gaelco2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
@@ -1089,7 +1089,7 @@ ROM_END
WORLD RALLY 2
============================================================================*/
-static ADDRESS_MAP_START( wrally2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( wrally2_map, AS_PROGRAM, 16, gaelco2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c
index 6d9f552506a..9d991b24b23 100644
--- a/src/mame/drivers/gaelco3d.c
+++ b/src/mame/drivers/gaelco3d.c
@@ -776,7 +776,7 @@ static WRITE32_HANDLER( unknown_13a_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, gaelco3d_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(gaelco3d_paletteram_w) AM_BASE_GENERIC(paletteram)
@@ -807,7 +807,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main020_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( main020_map, AS_PROGRAM, 32, gaelco3d_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(gaelco3d_paletteram_020_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x51000c, 0x51000f) AM_READ_PORT("IN0")
@@ -837,19 +837,19 @@ static ADDRESS_MAP_START( main020_map, AS_PROGRAM, 32 )
AM_RANGE(0xfe0000, 0xfeffff) AM_RAM AM_BASE_MEMBER(gaelco3d_state, m_m68k_ram_base)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tms_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( tms_map, AS_PROGRAM, 32, gaelco3d_state )
AM_RANGE(0x000000, 0x007fff) AM_READWRITE(tms_m68k_ram_r, tms_m68k_ram_w)
AM_RANGE(0x400000, 0x5fffff) AM_ROM AM_REGION("user2", 0)
AM_RANGE(0xc00000, 0xc00007) AM_WRITE(gaelco3d_render_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( adsp_program_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( adsp_program_map, AS_PROGRAM, 32, gaelco3d_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_BASE_MEMBER(gaelco3d_state, m_adsp_ram_base) /* 1k words internal RAM */
AM_RANGE(0x37ff, 0x37ff) AM_READNOP /* speedup hammers this for no apparent reason */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( adsp_data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( adsp_data_map, AS_DATA, 16, gaelco3d_state )
AM_RANGE(0x0000, 0x0001) AM_WRITE(adsp_rombank_w)
AM_RANGE(0x0000, 0x1fff) AM_ROMBANK("bank1")
AM_RANGE(0x2000, 0x2000) AM_READWRITE(sound_data_r, sound_status_w)
diff --git a/src/mame/drivers/gaiden.c b/src/mame/drivers/gaiden.c
index 27bf84aea46..16c6e7dce50 100644
--- a/src/mame/drivers/gaiden.c
+++ b/src/mame/drivers/gaiden.c
@@ -393,7 +393,7 @@ static READ16_HANDLER( raiga_protection_r )
return state->m_prot;
}
-static ADDRESS_MAP_START( gaiden_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gaiden_map, AS_PROGRAM, 16, gaiden_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x060000, 0x063fff) AM_RAM
AM_RANGE(0x070000, 0x070fff) AM_RAM_WRITE(gaiden_videoram_w) AM_BASE_MEMBER(gaiden_state, m_videoram)
@@ -419,7 +419,7 @@ static ADDRESS_MAP_START( gaiden_map, AS_PROGRAM, 16 )
AM_RANGE(0x07a808, 0x07a809) AM_WRITE(gaiden_flip_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( drgnbowl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( drgnbowl_map, AS_PROGRAM, 16, gaiden_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x060000, 0x063fff) AM_RAM
AM_RANGE(0x070000, 0x070fff) AM_RAM_WRITE(gaiden_videoram_w) AM_BASE_MEMBER(gaiden_state, m_videoram)
@@ -438,7 +438,7 @@ static ADDRESS_MAP_START( drgnbowl_map, AS_PROGRAM, 16 )
AM_RANGE(0x07f006, 0x07f007) AM_WRITE(gaiden_fgscrollx_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, gaiden_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xefff) AM_ROM /* raiga only */
AM_RANGE(0xf000, 0xf7ff) AM_RAM
@@ -449,12 +449,12 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xfc20, 0xfc20) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( drgnbowl_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( drgnbowl_sound_map, AS_PROGRAM, 8, gaiden_state )
AM_RANGE(0x0000, 0xf7ff) AM_ROM
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( drgnbowl_sound_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( drgnbowl_sound_port_map, AS_IO, 8, gaiden_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x80, 0x80) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
@@ -906,7 +906,7 @@ Others
2x 8x2 switches DIP
*/
-static ADDRESS_MAP_START( mastninj_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mastninj_sound_map, AS_PROGRAM, 8, gaiden_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xc400, 0xc401) AM_DEVWRITE("ym1", ym2203_w)
@@ -915,7 +915,7 @@ static ADDRESS_MAP_START( mastninj_sound_map, AS_PROGRAM, 8 )
// AM_RANGE(0xfc20, 0xfc20) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mastninj_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mastninj_map, AS_PROGRAM, 16, gaiden_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x060000, 0x063fff) AM_RAM
AM_RANGE(0x070000, 0x070fff) AM_RAM_WRITE(gaiden_videoram_w) AM_BASE_MEMBER(gaiden_state, m_videoram)
diff --git a/src/mame/drivers/gal3.c b/src/mame/drivers/gal3.c
index 782dce66e1f..5a1c1201bf4 100644
--- a/src/mame/drivers/gal3.c
+++ b/src/mame/drivers/gal3.c
@@ -350,7 +350,7 @@ static WRITE32_HANDLER(rso_w)
}
-static ADDRESS_MAP_START( cpu_mst_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( cpu_mst_map, AS_PROGRAM, 32, gal3_state )
AM_RANGE(0x00000000, 0x001fffff) AM_ROM
AM_RANGE(0x20000000, 0x20001fff) AM_RAM AM_BASE_MEMBER(gal3_state, m_nvmem) AM_SIZE_MEMBER(gal3_state, m_nvmem_size) //NVRAM
/// AM_RANGE(0x40000000, 0x4000ffff) AM_WRITE() //
@@ -367,7 +367,7 @@ static ADDRESS_MAP_START( cpu_mst_map, AS_PROGRAM, 32 )
AM_RANGE(0xf2800000, 0xf2800fff) AM_READWRITE(rso_r, rso_w) //RSO PCB
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu_slv_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( cpu_slv_map, AS_PROGRAM, 32, gal3_state )
AM_RANGE(0x00000000, 0x0007ffff) AM_ROM
/// AM_RANGE(0x40000000, 0x4000ffff) AM_WRITE() //
AM_RANGE(0x44000000, 0x44000003) AM_READ_PORT("DSW_CPU_slv" )
@@ -396,7 +396,7 @@ static ADDRESS_MAP_START( cpu_slv_map, AS_PROGRAM, 32 )
AM_RANGE(0xf2760000, 0xf2760003) AM_RAM //AM_READWRITE(namcos21_video_enable_r,namcos21_video_enable_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rs_cpu_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rs_cpu_map, AS_PROGRAM, 16, gal3_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM //64K working RAM
@@ -460,7 +460,7 @@ static ADDRESS_MAP_START( rs_cpu_map, AS_PROGRAM, 16 )
/// AM_RANGE(0xc44000, 0xffffff) AM_RAM /////////////
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_cpu_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sound_cpu_map, AS_PROGRAM, 16, gal3_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_RAM
/// AM_RANGE(0x0c0000, 0x0cffff) AM_RAM //00, 20, 30, 40, 50
@@ -476,7 +476,7 @@ static ADDRESS_MAP_START( sound_cpu_map, AS_PROGRAM, 16 )
/// AM_RANGE(0x090000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( psn_b1_cpu_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( psn_b1_cpu_map, AS_PROGRAM, 16, gal3_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0xffffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/galaga.c b/src/mame/drivers/galaga.c
index 22c5f09ba39..22c8941582c 100644
--- a/src/mame/drivers/galaga.c
+++ b/src/mame/drivers/galaga.c
@@ -917,7 +917,7 @@ static MACHINE_RESET( battles )
/* the same memory map is used by all three CPUs; all RAM areas are shared */
-static ADDRESS_MAP_START( bosco_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bosco_map, AS_PROGRAM, 8, digdug_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITENOP /* the only area different for each CPU */
AM_RANGE(0x6800, 0x6807) AM_READ(bosco_dsw_r)
AM_RANGE(0x6800, 0x681f) AM_DEVWRITE("namco", pacman_sound_w)
@@ -939,7 +939,7 @@ static ADDRESS_MAP_START( bosco_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( galaga_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( galaga_map, AS_PROGRAM, 8, digdug_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITENOP /* the only area different for each CPU */
AM_RANGE(0x6800, 0x6807) AM_READ(bosco_dsw_r)
AM_RANGE(0x6800, 0x681f) AM_DEVWRITE("namco", pacman_sound_w)
@@ -956,7 +956,7 @@ static ADDRESS_MAP_START( galaga_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( xevious_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( xevious_map, AS_PROGRAM, 8, digdug_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITENOP /* the only area different for each CPU */
AM_RANGE(0x6800, 0x6807) AM_READ(bosco_dsw_r)
AM_RANGE(0x6800, 0x681f) AM_DEVWRITE("namco", pacman_sound_w)
@@ -977,7 +977,7 @@ static ADDRESS_MAP_START( xevious_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( digdug_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( digdug_map, AS_PROGRAM, 8, digdug_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITENOP /* the only area different for each CPU */
AM_RANGE(0x6800, 0x681f) AM_DEVWRITE("namco", pacman_sound_w)
AM_RANGE(0x6820, 0x6827) AM_WRITE(bosco_latch_w) /* misc latches */
@@ -997,12 +997,12 @@ ADDRESS_MAP_END
/* bootleg 4th CPU replacing the 5xXX chips */
-static ADDRESS_MAP_START( galaga_mem4, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( galaga_mem4, AS_PROGRAM, 8, digdug_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1000, 0x107f) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( battles_mem4, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( battles_mem4, AS_PROGRAM, 8, digdug_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x4000, 0x4003) AM_READ(battles_input_port_r)
AM_RANGE(0x4001, 0x4001) AM_WRITE(battles_CPU4_coin_w)
@@ -1012,7 +1012,7 @@ static ADDRESS_MAP_START( battles_mem4, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0x80ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dzigzag_mem4, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dzigzag_mem4, AS_PROGRAM, 8, digdug_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1000, 0x107f) AM_RAM
AM_RANGE(0x4000, 0x4007) AM_READONLY // dip switches? bits 0 & 1 used
diff --git a/src/mame/drivers/galastrm.c b/src/mame/drivers/galastrm.c
index 2657a8d3da9..f3b7f510128 100644
--- a/src/mame/drivers/galastrm.c
+++ b/src/mame/drivers/galastrm.c
@@ -172,7 +172,7 @@ static WRITE32_HANDLER( galastrm_adstick_ctrl_w )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( galastrm_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( galastrm_map, AS_PROGRAM, 32, galastrm_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_BASE_MEMBER(galastrm_state, m_ram) /* main CPUA ram */
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_SIZE_MEMBER(galastrm_state, m_spriteram, m_spriteram_size)
diff --git a/src/mame/drivers/galaxi.c b/src/mame/drivers/galaxi.c
index 7cf41634321..f57342cbffa 100644
--- a/src/mame/drivers/galaxi.c
+++ b/src/mame/drivers/galaxi.c
@@ -272,7 +272,7 @@ static CUSTOM_INPUT( hopper_r )
}
-static ADDRESS_MAP_START( galaxi_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( galaxi_map, AS_PROGRAM, 16, galaxi_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x1003ff) AM_RAM_WRITE(galaxi_bg1_w) AM_BASE_MEMBER(galaxi_state, m_bg1_ram)
diff --git a/src/mame/drivers/galaxia.c b/src/mame/drivers/galaxia.c
index 02180bff047..c369fa06517 100644
--- a/src/mame/drivers/galaxia.c
+++ b/src/mame/drivers/galaxia.c
@@ -124,7 +124,7 @@ static READ8_HANDLER(galaxia_collision_clear)
return 0xff;
}
-static ADDRESS_MAP_START( galaxia_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( galaxia_mem_map, AS_PROGRAM, 8, galaxia_state )
AM_RANGE(0x0000, 0x13ff) AM_ROM
AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_RAM AM_BASE_MEMBER(galaxia_state, m_bullet_ram)
AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_DEVREADWRITE("s2636_0", s2636_work_ram_r, s2636_work_ram_w)
@@ -136,7 +136,7 @@ static ADDRESS_MAP_START( galaxia_mem_map, AS_PROGRAM, 8 )
AM_RANGE(0x7214, 0x7214) AM_READ_PORT("IN0")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( astrowar_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( astrowar_mem_map, AS_PROGRAM, 8, galaxia_state )
AM_RANGE(0x0000, 0x13ff) AM_ROM
AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_DEVREADWRITE("s2636_0", s2636_work_ram_r, s2636_work_ram_w)
@@ -145,7 +145,7 @@ static ADDRESS_MAP_START( astrowar_mem_map, AS_PROGRAM, 8 )
AM_RANGE(0x2000, 0x33ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( galaxia_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( galaxia_io_map, AS_IO, 8, galaxia_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00, 0x00) AM_WRITE(galaxia_scroll_w) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c
index d344809decc..4a53642ed9a 100644
--- a/src/mame/drivers/galaxian.c
+++ b/src/mame/drivers/galaxian.c
@@ -1351,13 +1351,13 @@ LATCH: (write 7000-77ff)
/* map derived from schematics */
-static ADDRESS_MAP_START( galaxian_map_discrete, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( galaxian_map_discrete, AS_PROGRAM, 8, galaxian_state )
AM_RANGE(0x6004, 0x6007) AM_MIRROR(0x07f8) AM_DEVWRITE(GAL_AUDIO, galaxian_lfo_freq_w)
AM_RANGE(0x6800, 0x6807) AM_MIRROR(0x07f8) AM_DEVWRITE(GAL_AUDIO, galaxian_sound_w)
AM_RANGE(0x7800, 0x7800) AM_MIRROR(0x07ff) AM_DEVWRITE(GAL_AUDIO, galaxian_pitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( galaxian_map_base, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( galaxian_map_base, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0400) AM_RAM
@@ -1379,20 +1379,20 @@ static ADDRESS_MAP_START( galaxian_map_base, AS_PROGRAM, 8 )
AM_RANGE(0x7800, 0x7800) AM_MIRROR(0x07ff) AM_READ(watchdog_reset_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( galaxian_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( galaxian_map, AS_PROGRAM, 8, galaxian_state )
AM_IMPORT_FROM(galaxian_map_base)
AM_IMPORT_FROM(galaxian_map_discrete)
ADDRESS_MAP_END
/* map derived from schematics */
-static ADDRESS_MAP_START( mooncrst_map_discrete, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mooncrst_map_discrete, AS_PROGRAM, 8, galaxian_state )
AM_RANGE(0xa004, 0xa007) AM_MIRROR(0x07f8) AM_DEVWRITE(GAL_AUDIO, galaxian_lfo_freq_w)
AM_RANGE(0xa800, 0xa807) AM_MIRROR(0x07f8) AM_DEVWRITE(GAL_AUDIO, galaxian_sound_w)
AM_RANGE(0xb800, 0xb800) AM_MIRROR(0x07ff) AM_DEVWRITE(GAL_AUDIO, galaxian_pitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mooncrst_map_base, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mooncrst_map_base, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x0400) AM_RAM
@@ -1413,13 +1413,13 @@ static ADDRESS_MAP_START( mooncrst_map_base, AS_PROGRAM, 8 )
AM_RANGE(0xb800, 0xb800) AM_MIRROR(0x07ff) AM_READ(watchdog_reset_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mooncrst_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mooncrst_map, AS_PROGRAM, 8, galaxian_state )
AM_IMPORT_FROM(mooncrst_map_base)
AM_IMPORT_FROM(mooncrst_map_discrete)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fantastc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fantastc_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
@@ -1440,7 +1440,7 @@ ADDRESS_MAP_END
/* map derived from schematics */
#if 0
-static ADDRESS_MAP_START( dambustr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dambustr_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
// AM_RANGE(0x8000, 0x8000) AM_WRITE(dambustr_bg_color_w)
@@ -1464,7 +1464,7 @@ ADDRESS_MAP_END
/* map derived from schematics */
-static ADDRESS_MAP_START( theend_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( theend_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
@@ -1483,7 +1483,7 @@ ADDRESS_MAP_END
/* map derived from schematics */
-static ADDRESS_MAP_START( scobra_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( scobra_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x4000) AM_RAM
@@ -1502,7 +1502,7 @@ static ADDRESS_MAP_START( scobra_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( anteateruk_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( anteateruk_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x03ff) AM_ROM
AM_RANGE(0x0400, 0x0bff) AM_RAM
@@ -1522,7 +1522,7 @@ static ADDRESS_MAP_START( anteateruk_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( anteaterg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( anteaterg_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x03ff) AM_ROM
AM_RANGE(0x0400, 0x0bff) AM_RAM
@@ -1544,7 +1544,7 @@ ADDRESS_MAP_END
/* map derived from schematics */
-static ADDRESS_MAP_START( frogger_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( frogger_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
@@ -1561,7 +1561,7 @@ ADDRESS_MAP_END
/* map derived from schematics */
-static ADDRESS_MAP_START( turtles_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( turtles_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x4000) AM_RAM
@@ -1583,7 +1583,7 @@ ADDRESS_MAP_END
/* this is the same as theend, except for separate RGB background controls
and some extra ROM space at $7000 and $C000 */
-static ADDRESS_MAP_START( sfx_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sfx_map, AS_PROGRAM, 8, galaxian_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, m_videoram)
@@ -1611,7 +1611,7 @@ ADDRESS_MAP_END
$8000-$afff: additional ROM area
$b000-$bfff: protection
*/
-static ADDRESS_MAP_START( jumpbug_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jumpbug_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
@@ -1633,7 +1633,7 @@ static ADDRESS_MAP_START( jumpbug_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( frogf_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( frogf_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
@@ -1650,7 +1650,7 @@ ADDRESS_MAP_END
/* mooncrst */
-static ADDRESS_MAP_START( mshuttle_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mshuttle_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
@@ -1669,7 +1669,7 @@ static ADDRESS_MAP_START( mshuttle_map, AS_PROGRAM, 8 )
AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mshuttle_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( mshuttle_portmap, AS_IO, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x0f)
AM_RANGE(0x08, 0x08) AM_WRITE(mshuttle_ay8910_control_w)
@@ -1693,7 +1693,7 @@ static WRITE8_HANDLER( tenspot_unk_e000_w )
logerror("tenspot_unk_e000_w %02x\n",data);
}
-static ADDRESS_MAP_START( tenspot_select_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tenspot_select_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x07ff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
@@ -1712,40 +1712,40 @@ ADDRESS_MAP_END
*************************************/
/* Konami Frogger with 1 x AY-8910A */
-static ADDRESS_MAP_START( frogger_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( frogger_sound_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x1c00) AM_RAM
AM_RANGE(0x6000, 0x6fff) AM_MIRROR(0x1000) AM_WRITE(konami_sound_filter_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( frogger_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( frogger_sound_portmap, AS_IO, 8, galaxian_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xff) AM_READWRITE(frogger_ay8910_r, frogger_ay8910_w)
ADDRESS_MAP_END
/* Konami generic with 2 x AY-8910A */
-static ADDRESS_MAP_START( konami_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( konami_sound_map, AS_PROGRAM, 8, galaxian_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x6c00) AM_RAM
AM_RANGE(0x9000, 0x9fff) AM_MIRROR(0x6000) AM_WRITE(konami_sound_filter_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( konami_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( konami_sound_portmap, AS_IO, 8, galaxian_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xff) AM_READWRITE(konami_ay8910_r, konami_ay8910_w)
ADDRESS_MAP_END
/* Checkman with 1 x AY-8910A */
-static ADDRESS_MAP_START( checkman_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( checkman_sound_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( checkman_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( checkman_sound_portmap, AS_IO, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x03, 0x03) AM_READ(soundlatch_r)
@@ -1755,7 +1755,7 @@ ADDRESS_MAP_END
/* Checkman alternate with 1 x AY-8910A */
-static ADDRESS_MAP_START( checkmaj_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( checkmaj_sound_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
@@ -1765,14 +1765,14 @@ ADDRESS_MAP_END
/* King and Balloon with DAC */
-static ADDRESS_MAP_START( kingball_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kingball_sound_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x1c00) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kingball_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( kingball_sound_portmap, AS_IO, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0xff) AM_READ(soundlatch_r) AM_DEVWRITE("dac", kingball_dac_w)
@@ -1780,12 +1780,12 @@ ADDRESS_MAP_END
/* SF-X sample player */
-static ADDRESS_MAP_START( sfx_sample_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sfx_sample_map, AS_PROGRAM, 8, galaxian_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x6c00) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sfx_sample_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sfx_sample_portmap, AS_IO, 8, galaxian_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xff) AM_READWRITE(sfx_sample_io_r, sfx_sample_io_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/galaxold.c b/src/mame/drivers/galaxold.c
index cf0590a4f69..d5ac3157af4 100644
--- a/src/mame/drivers/galaxold.c
+++ b/src/mame/drivers/galaxold.c
@@ -407,7 +407,7 @@ static READ8_HANDLER( drivfrcg_port0_r )
return 0;
}
-static ADDRESS_MAP_START( galaxold_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( galaxold_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x5000, 0x53ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -437,7 +437,7 @@ static ADDRESS_MAP_START( galaxold_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mooncrst_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mooncrst_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -463,7 +463,7 @@ static ADDRESS_MAP_START( mooncrst_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rockclim_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rockclim_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_READWRITE(rockclim_videoram_r, rockclim_videoram_w) AM_BASE_MEMBER(galaxold_state, m_rockclim_videoram)//4800 - 4803 = bg scroll ?
AM_RANGE(0x4800, 0x4803) AM_WRITE(rockclim_scroll_w)
@@ -495,7 +495,7 @@ static ADDRESS_MAP_START( rockclim_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ckongg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ckongg_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -522,7 +522,7 @@ static ADDRESS_MAP_START( ckongg_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* Memory map based on mooncrst_map according to Z80 code - seems to be good but needs further checking */
-static ADDRESS_MAP_START( ckongmc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ckongmc_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -549,7 +549,7 @@ static ADDRESS_MAP_START( ckongmc_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( scramblb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( scramblb_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -584,7 +584,7 @@ static READ8_HANDLER( scramb2_port0_r ) { return (input_port_read(space->machine
static READ8_HANDLER( scramb2_port1_r ) { return (input_port_read(space->machine(), "IN1") >> offset) & 0x1; }
static READ8_HANDLER( scramb2_port2_r ) { return (input_port_read(space->machine(), "IN2") >> offset) & 0x1; }
-static ADDRESS_MAP_START( scramb2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( scramb2_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -609,7 +609,7 @@ static ADDRESS_MAP_START( scramb2_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( _4in1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( _4in1_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1") /* banked game code */
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x5000, 0x53ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -640,7 +640,7 @@ static ADDRESS_MAP_START( _4in1_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bagmanmc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bagmanmc_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x67ff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -661,7 +661,7 @@ static ADDRESS_MAP_START( bagmanmc_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dkongjrm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dkongjrm_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
AM_RANGE(0x7000, 0x7fff) AM_ROM
@@ -687,7 +687,7 @@ static ADDRESS_MAP_START( dkongjrm_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tazzmang, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tazzmang, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x7000, 0x7000) AM_READ_PORT("DSW0") /* mirror */
AM_RANGE(0x8000, 0x87ff) AM_RAM
@@ -712,7 +712,7 @@ static ADDRESS_MAP_START( tazzmang, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bongo, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bongo, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
AM_RANGE(0x8400, 0x87ff) AM_WRITENOP // not used
@@ -731,14 +731,14 @@ static ADDRESS_MAP_START( bongo, AS_PROGRAM, 8 )
AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bongo_io, AS_IO, 8 )
+static ADDRESS_MAP_START( bongo_io, AS_IO, 8, galaxold_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
AM_RANGE(0x02, 0x02) AM_DEVREAD("aysnd", ay8910_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ozon1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ozon1_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x4000, 0x4200) AM_RAM
AM_RANGE(0x4300, 0x43ff) AM_RAM
@@ -756,7 +756,7 @@ static ADDRESS_MAP_START( ozon1_map, AS_PROGRAM, 8 )
AM_RANGE(0x8103, 0x8103) AM_WRITENOP //only one 9b at reset
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ozon1_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( ozon1_io_map, AS_IO, 8, galaxold_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_data_address_w)
ADDRESS_MAP_END
@@ -769,7 +769,7 @@ static WRITE8_HANDLER( harem_nmi_mask_w )
state->m_nmi_mask = data & 1;
}
-static ADDRESS_MAP_START( harem_cpu1, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( harem_cpu1, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x47ff) AM_RAM
@@ -785,13 +785,13 @@ static ADDRESS_MAP_START( harem_cpu1, AS_PROGRAM, 8 )
AM_RANGE(0xffe6, 0xffff) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( harem_cpu2, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( harem_cpu2, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( harem_cpu2_io, AS_IO, 8 )
+static ADDRESS_MAP_START( harem_cpu2_io, AS_IO, 8, galaxold_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x04) AM_DEVWRITE("ay1", ay8910_address_w)
AM_RANGE(0x08, 0x08) AM_DEVWRITE("ay1", ay8910_data_w)
@@ -802,7 +802,7 @@ static ADDRESS_MAP_START( harem_cpu2_io, AS_IO, 8 )
AM_RANGE(0x80, 0x80) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hunchbkg, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hunchbkg, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1480, 0x14bf) AM_MIRROR(0x6000) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0x6000) AM_WRITEONLY AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
@@ -831,13 +831,13 @@ ADDRESS_MAP_END
/* the nmi line seems to be inverted on the cpu plugin board */
READ8_DEVICE_HANDLER( ttl7474_trampoline ) { return downcast<ttl7474_device *>(device)->output_comp_r(); }
-static ADDRESS_MAP_START( hunchbkg_io, AS_IO, 8 )
+static ADDRESS_MAP_START( hunchbkg_io, AS_IO, 8, galaxold_state )
AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READNOP // not used
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_DEVREAD("7474_9m_1", ttl7474_trampoline)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( drivfrcg, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( drivfrcg, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1480, 0x14bf) AM_MIRROR(0x6000) AM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0x6000) AM_WRITEONLY AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
@@ -859,13 +859,13 @@ static ADDRESS_MAP_START( drivfrcg, AS_PROGRAM, 8 )
AM_RANGE(0x6000, 0x6fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( drivfrcg_io, AS_IO, 8 )
+static ADDRESS_MAP_START( drivfrcg_io, AS_IO, 8, galaxold_state )
AM_RANGE(0x00, 0x00) AM_READ(drivfrcg_port0_r)
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE") AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( racknrol, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( racknrol, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1400, 0x143f) AM_MIRROR(0x6000) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
AM_RANGE(0x1440, 0x14bf) AM_MIRROR(0x6000) AM_RAM AM_BASE_MEMBER(galaxold_state, m_spriteram) AM_SIZE_MEMBER(galaxold_state, m_spriteram_size)
@@ -886,7 +886,7 @@ static ADDRESS_MAP_START( racknrol, AS_PROGRAM, 8 )
AM_RANGE(0x6000, 0x6fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( racknrol_io, AS_IO, 8 )
+static ADDRESS_MAP_START( racknrol_io, AS_IO, 8, galaxold_state )
AM_RANGE(0x1d, 0x1d) AM_DEVWRITE("sn1", sn76496_w)
AM_RANGE(0x1e, 0x1e) AM_DEVWRITE("sn2", sn76496_w)
AM_RANGE(0x1f, 0x1f) AM_DEVWRITE("sn3", sn76496_w)
@@ -908,7 +908,7 @@ static READ8_HANDLER( hexpoola_data_port_r )
return 0;
}
-static ADDRESS_MAP_START( hexpoola_io, AS_IO, 8 )
+static ADDRESS_MAP_START( hexpoola_io, AS_IO, 8, galaxold_state )
AM_RANGE(0x00, 0x00) AM_READNOP
AM_RANGE(0x20, 0x3f) AM_WRITE(racknrol_tiles_bank_w) AM_BASE_MEMBER(galaxold_state, m_racknrol_tiles_bank)
AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ(hexpoola_data_port_r) AM_DEVWRITE("snsnd", sn76496_w)
diff --git a/src/mame/drivers/galgame.c b/src/mame/drivers/galgame.c
index 12fe38bfe73..74086ab5c5d 100644
--- a/src/mame/drivers/galgame.c
+++ b/src/mame/drivers/galgame.c
@@ -275,7 +275,7 @@ static WRITE16_HANDLER(clk_w)
state->m_clk = data;
}
-static ADDRESS_MAP_START( galaxygame_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( galaxygame_map, AS_PROGRAM, 16, galaxygame_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0xfec0, 0xfecf) AM_READWRITE(ke_r, ke_w)
AM_RANGE(0xff52, 0xff53) AM_READWRITE(y_r, y_w) // 177522 Y
diff --git a/src/mame/drivers/galivan.c b/src/mame/drivers/galivan.c
index da3f4004457..1d8f23aa3e4 100644
--- a/src/mame/drivers/galivan.c
+++ b/src/mame/drivers/galivan.c
@@ -53,7 +53,7 @@ static READ8_HANDLER( IO_port_c0_r )
-static ADDRESS_MAP_START( galivan_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( galivan_map, AS_PROGRAM, 8, galivan_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("bank1")
@@ -63,7 +63,7 @@ static ADDRESS_MAP_START( galivan_map, AS_PROGRAM, 8 )
AM_RANGE(0xe100, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ninjemak_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ninjemak_map, AS_PROGRAM, 8, galivan_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("bank1")
@@ -73,7 +73,7 @@ static ADDRESS_MAP_START( ninjemak_map, AS_PROGRAM, 8 )
AM_RANGE(0xe200, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, galivan_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
AM_RANGE(0x01, 0x01) AM_READ_PORT("P2")
@@ -96,7 +96,7 @@ static WRITE8_HANDLER( blit_trigger_w )
nb_1414m4_exec(space,(state->m_videoram[0] << 8) | (state->m_videoram[1] & 0xff),state->m_videoram,state->m_scrollx,state->m_scrolly,state->m_tx_tilemap);
}
-static ADDRESS_MAP_START( ninjemak_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( ninjemak_io_map, AS_IO, 8, galivan_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_READ_PORT("P1") AM_WRITE(ninjemak_gfxbank_w)
AM_RANGE(0x81, 0x81) AM_READ_PORT("P2")
@@ -108,12 +108,12 @@ static ADDRESS_MAP_START( ninjemak_io_map, AS_IO, 8 )
// AM_RANGE(0x87, 0x87) AM_WRITENOP // ??
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, galivan_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, galivan_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ymsnd", ym3526_w)
AM_RANGE(0x02, 0x02) AM_DEVWRITE("dac1", dac_w)
diff --git a/src/mame/drivers/galpani2.c b/src/mame/drivers/galpani2.c
index f5e92436fe5..b3d4689fabf 100644
--- a/src/mame/drivers/galpani2.c
+++ b/src/mame/drivers/galpani2.c
@@ -291,7 +291,7 @@ static WRITE8_DEVICE_HANDLER( galpani2_oki2_bank_w )
}
-static ADDRESS_MAP_START( galpani2_mem1, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( galpani2_mem1, AS_PROGRAM, 16, galpani2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE_MEMBER(galpani2_state, m_ram) // Work RAM
AM_RANGE(0x110000, 0x11000f) AM_RAM // ? corrupted? stack dumper on POST failure, pc+sr on gp2se
@@ -362,7 +362,7 @@ static READ16_HANDLER( galpani2_bankedrom_r )
else return 0xffff; //floating bus for absent ROMs
}
-static ADDRESS_MAP_START( galpani2_mem2, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( galpani2_mem2, AS_PROGRAM, 16, galpani2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAM AM_BASE_MEMBER(galpani2_state, m_ram2) // Work RAM
AM_RANGE(0x400000, 0x4fffff) AM_RAM_WRITE(galpani2_bg15_w) AM_BASE_MEMBER(galpani2_state, m_bg15) // bg15
diff --git a/src/mame/drivers/galpani3.c b/src/mame/drivers/galpani3.c
index 0d8083881d5..44f63182943 100644
--- a/src/mame/drivers/galpani3.c
+++ b/src/mame/drivers/galpani3.c
@@ -863,7 +863,7 @@ static WRITE16_HANDLER( galpani3_framebuffer3_bgcol_w )
-static ADDRESS_MAP_START( galpani3_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( galpani3_map, AS_PROGRAM, 16, galpani3_state )
AM_RANGE(0x000000, 0x17ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // area [B] - Work RAM
diff --git a/src/mame/drivers/galpanic.c b/src/mame/drivers/galpanic.c
index bf59d10f1c3..b1b24ccf1cc 100644
--- a/src/mame/drivers/galpanic.c
+++ b/src/mame/drivers/galpanic.c
@@ -225,7 +225,7 @@ static WRITE16_HANDLER( galpanic_bgvideoram_mirror_w )
}
}
-static ADDRESS_MAP_START( galpanic_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( galpanic_map, AS_PROGRAM, 16, galpanic_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM
AM_RANGE(0x400000, 0x400001) AM_DEVREADWRITE8_MODERN("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_BASE_MEMBER(galpanic_state, m_fgvideoram) AM_SIZE_MEMBER(galpanic_state, m_fgvideoram_size)
@@ -261,7 +261,7 @@ static READ8_DEVICE_HANDLER( comad_okim6295_r )
return retvalue;
}
-static ADDRESS_MAP_START( comad_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( comad_map, AS_PROGRAM, 16, galpanic_state )
AM_RANGE(0x000000, 0x4fffff) AM_ROM
AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_BASE_MEMBER(galpanic_state, m_fgvideoram) AM_SIZE_MEMBER(galpanic_state, m_fgvideoram_size)
AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_BASE_MEMBER(galpanic_state, m_bgvideoram) /* + work RAM */
@@ -280,7 +280,7 @@ static ADDRESS_MAP_START( comad_map, AS_PROGRAM, 16 )
AM_RANGE(0xf80000, 0xf80001) AM_DEVREAD8("oki", comad_okim6295_r, 0xff00) AM_DEVWRITE8_MODERN("oki", okim6295_device, write, 0xff00) /* newfant */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fantsia2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( fantsia2_map, AS_PROGRAM, 16, galpanic_state )
AM_RANGE(0x000000, 0x4fffff) AM_ROM
AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_BASE_MEMBER(galpanic_state, m_fgvideoram) AM_SIZE_MEMBER(galpanic_state, m_fgvideoram_size)
AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_BASE_MEMBER(galpanic_state, m_bgvideoram) /* + work RAM */
@@ -298,7 +298,7 @@ static ADDRESS_MAP_START( fantsia2_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( galhustl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( galhustl_map, AS_PROGRAM, 16, galpanic_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_BASE_MEMBER(galpanic_state, m_fgvideoram) AM_SIZE_MEMBER(galpanic_state, m_fgvideoram_size)
AM_RANGE(0x520000, 0x53ffff) AM_WRITE(galpanic_bgvideoram_w) AM_BASE_MEMBER(galpanic_state, m_bgvideoram)
@@ -324,7 +324,7 @@ READ16_HANDLER( zipzap_random_read )
}
#endif
-static ADDRESS_MAP_START( zipzap_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( zipzap_map, AS_PROGRAM, 16, galpanic_state )
AM_RANGE(0x000000, 0x4fffff) AM_ROM
AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_BASE_MEMBER(galpanic_state, m_fgvideoram) AM_SIZE_MEMBER(galpanic_state, m_fgvideoram_size)
AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_BASE_MEMBER(galpanic_state, m_bgvideoram)
@@ -345,7 +345,7 @@ static ADDRESS_MAP_START( zipzap_map, AS_PROGRAM, 16 )
AM_RANGE(0xc80000, 0xc8ffff) AM_RAM // main ram
ADDRESS_MAP_END
-static ADDRESS_MAP_START( supmodel_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( supmodel_map, AS_PROGRAM, 16, galpanic_state )
AM_RANGE(0x000000, 0x4fffff) AM_ROM
AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_BASE_MEMBER(galpanic_state, m_fgvideoram) AM_SIZE_MEMBER(galpanic_state, m_fgvideoram_size)
AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_BASE_MEMBER(galpanic_state, m_bgvideoram)
diff --git a/src/mame/drivers/galspnbl.c b/src/mame/drivers/galspnbl.c
index f106728d7b3..c1a921045c9 100644
--- a/src/mame/drivers/galspnbl.c
+++ b/src/mame/drivers/galspnbl.c
@@ -38,7 +38,7 @@ static WRITE16_HANDLER( soundcommand_w )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, galspnbl_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM
AM_RANGE(0x700000, 0x703fff) AM_RAM /* galspnbl work RAM */
AM_RANGE(0x708000, 0x70ffff) AM_RAM /* galspnbl work RAM, bitmaps are decompressed here */
@@ -62,7 +62,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0xa80050, 0xa80051) AM_WRITEONLY AM_BASE_MEMBER(galspnbl_state, m_scroll) /* ??? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, galspnbl_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
diff --git a/src/mame/drivers/gamecstl.c b/src/mame/drivers/gamecstl.c
index eaad7a2d875..c7d679f3490 100644
--- a/src/mame/drivers/gamecstl.c
+++ b/src/mame/drivers/gamecstl.c
@@ -514,7 +514,7 @@ static WRITE32_HANDLER(at_page32_w)
/*****************************************************************************/
-static ADDRESS_MAP_START( gamecstl_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( gamecstl_map, AS_PROGRAM, 32, gamecstl_state )
AM_RANGE(0x00000000, 0x0009ffff) AM_RAM
AM_RANGE(0x000a0000, 0x000affff) AM_RAM
AM_RANGE(0x000b0000, 0x000b7fff) AM_RAM AM_BASE_MEMBER(gamecstl_state, m_cga_ram)
@@ -525,7 +525,7 @@ static ADDRESS_MAP_START( gamecstl_map, AS_PROGRAM, 32 )
AM_RANGE(0xfffc0000, 0xffffffff) AM_ROM AM_REGION("bios", 0) /* System BIOS */
ADDRESS_MAP_END
-static ADDRESS_MAP_START(gamecstl_io, AS_IO, 32)
+static ADDRESS_MAP_START(gamecstl_io, AS_IO, 32, gamecstl_state )
AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_r, i8237_w, 0xffffffff)
AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8("pit8254", pit8253_r, pit8253_w, 0xffffffff)
diff --git a/src/mame/drivers/gameplan.c b/src/mame/drivers/gameplan.c
index f85e8e7ac4b..fc268ca294b 100644
--- a/src/mame/drivers/gameplan.c
+++ b/src/mame/drivers/gameplan.c
@@ -215,7 +215,7 @@ static const riot6532_interface r6532_interface =
*
*************************************/
-static ADDRESS_MAP_START( gameplan_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gameplan_main_map, AS_PROGRAM, 8, gameplan_state )
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x1c00) AM_RAM
AM_RANGE(0x2000, 0x200f) AM_MIRROR(0x07f0) AM_DEVREADWRITE_MODERN("via6522_0", via6522_device, read, write) /* VIA 1 */
AM_RANGE(0x2800, 0x280f) AM_MIRROR(0x07f0) AM_DEVREADWRITE_MODERN("via6522_1", via6522_device, read, write) /* VIA 2 */
@@ -231,7 +231,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( gameplan_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gameplan_audio_map, AS_PROGRAM, 8, gameplan_state )
AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x1780) AM_RAM /* 6532 internal RAM */
AM_RANGE(0x0800, 0x081f) AM_MIRROR(0x17e0) AM_DEVREADWRITE("riot", riot6532_r, riot6532_w)
AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1ffc) AM_DEVWRITE("aysnd", ay8910_address_w)
@@ -242,7 +242,7 @@ ADDRESS_MAP_END
/* same as Gameplan, but larger ROM */
-static ADDRESS_MAP_START( leprechn_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( leprechn_audio_map, AS_PROGRAM, 8, gameplan_state )
AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x1780) AM_RAM /* 6532 internal RAM */
AM_RANGE(0x0800, 0x081f) AM_MIRROR(0x17e0) AM_DEVREADWRITE("riot", riot6532_r, riot6532_w)
AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1ffc) AM_DEVWRITE("aysnd", ay8910_address_w)
diff --git a/src/mame/drivers/gamtor.c b/src/mame/drivers/gamtor.c
index 3552a5a97bf..f12973ac088 100644
--- a/src/mame/drivers/gamtor.c
+++ b/src/mame/drivers/gamtor.c
@@ -42,7 +42,7 @@ static WRITE32_HANDLER( gamtor_unk_w )
-static ADDRESS_MAP_START( gaminator_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( gaminator_map, AS_PROGRAM, 32, gaminator_state )
AM_RANGE(0x00000000, 0x07ffffff) AM_ROM
AM_RANGE(0x08000000, 0x0bffffff) AM_RAM
AM_RANGE(0x1e040008, 0x1e04000b) AM_WRITE( gamtor_unk_w )
diff --git a/src/mame/drivers/gaplus.c b/src/mame/drivers/gaplus.c
index 53774f52121..cb9619a9afd 100644
--- a/src/mame/drivers/gaplus.c
+++ b/src/mame/drivers/gaplus.c
@@ -290,7 +290,7 @@ static INTERRUPT_GEN( gaplus_vblank_sub2_irq )
}
-static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8, gaplus_state )
AM_RANGE(0x0000, 0x07ff) AM_READWRITE(gaplus_videoram_r, gaplus_videoram_w) AM_BASE_MEMBER(gaplus_state, m_videoram) /* tilemap RAM (shared with CPU #2) */
AM_RANGE(0x0800, 0x1fff) AM_READWRITE(gaplus_spriteram_r, gaplus_spriteram_w) AM_BASE_MEMBER(gaplus_state, m_spriteram) /* shared RAM with CPU #2 (includes sprite RAM) */
AM_RANGE(0x6000, 0x63ff) AM_DEVREADWRITE("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with CPU #3 */
@@ -305,7 +305,7 @@ static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gaplusa_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gaplusa_cpu1_map, AS_PROGRAM, 8, gaplus_state )
AM_RANGE(0x0000, 0x07ff) AM_READWRITE(gaplus_videoram_r, gaplus_videoram_w) AM_BASE_MEMBER(gaplus_state, m_videoram) /* tilemap RAM (shared with CPU #2) */
AM_RANGE(0x0800, 0x1fff) AM_READWRITE(gaplus_spriteram_r, gaplus_spriteram_w) AM_BASE_MEMBER(gaplus_state, m_spriteram) /* shared RAM with CPU #2 (includes sprite RAM) */
AM_RANGE(0x6000, 0x63ff) AM_DEVREADWRITE("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with CPU #3 */
@@ -320,7 +320,7 @@ static ADDRESS_MAP_START( gaplusa_cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, gaplus_state )
AM_RANGE(0x0000, 0x07ff) AM_READWRITE(gaplus_videoram_r, gaplus_videoram_w) /* tilemap RAM (shared with CPU #1) */
AM_RANGE(0x0800, 0x1fff) AM_READWRITE(gaplus_spriteram_r, gaplus_spriteram_w) /* shared RAM with CPU #1 */
// AM_RANGE(0x500f, 0x500f) AM_WRITENOP /* ??? written 256 times on startup */
@@ -328,7 +328,7 @@ static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu3_map, AS_PROGRAM, 8, gaplus_state )
AM_RANGE(0x0000, 0x03ff) AM_DEVREADWRITE("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with the main CPU + sound registers */
AM_RANGE(0x2000, 0x3fff) AM_READWRITE(watchdog_reset_r, watchdog_reset_w) /* watchdog? */
AM_RANGE(0x4000, 0x7fff) AM_WRITE(gaplus_irq_3_ctrl_w) /* interrupt enable/disable */
diff --git a/src/mame/drivers/gatron.c b/src/mame/drivers/gatron.c
index 371ff849050..7502ea72d78 100644
--- a/src/mame/drivers/gatron.c
+++ b/src/mame/drivers/gatron.c
@@ -337,7 +337,7 @@ static const ppi8255_interface ppi8255_intf =
* Memory Map Information *
*************************/
-static ADDRESS_MAP_START( gat_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gat_map, AS_PROGRAM, 8, gatron_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_RAM_WRITE(gat_videoram_w) AM_BASE_MEMBER(gatron_state, m_videoram)
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */
@@ -345,7 +345,7 @@ static ADDRESS_MAP_START( gat_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe000) AM_WRITE(output_port_0_w) /* lamps */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gat_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( gat_portmap, AS_IO, 8, gatron_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ppi8255", ppi8255_r, ppi8255_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gauntlet.c b/src/mame/drivers/gauntlet.c
index d0685cd8e9c..82a3b7ae8d5 100644
--- a/src/mame/drivers/gauntlet.c
+++ b/src/mame/drivers/gauntlet.c
@@ -303,7 +303,7 @@ static WRITE8_HANDLER( mixer_w )
*************************************/
/* full map verified from schematics */
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, gauntlet_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x037fff) AM_MIRROR(0x280000) AM_ROM
AM_RANGE(0x038000, 0x03ffff) AM_MIRROR(0x280000) AM_ROM /* slapstic maps here */
@@ -344,7 +344,7 @@ ADDRESS_MAP_END
*************************************/
/* full map verified from schematics */
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, gauntlet_state )
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)
diff --git a/src/mame/drivers/gberet.c b/src/mame/drivers/gberet.c
index 8f8d7a1f04a..8f140229129 100644
--- a/src/mame/drivers/gberet.c
+++ b/src/mame/drivers/gberet.c
@@ -150,7 +150,7 @@ static WRITE8_HANDLER( gberet_sound_w )
sn76496_w(space->machine().device("snsnd"), 0, *state->m_soundlatch);
}
-static ADDRESS_MAP_START( gberet_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gberet_map, AS_PROGRAM, 8, gberet_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(gberet_colorram_w) AM_BASE_MEMBER(gberet_state, m_colorram)
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(gberet_videoram_w) AM_BASE_MEMBER(gberet_state, m_videoram)
@@ -170,7 +170,7 @@ static ADDRESS_MAP_START( gberet_map, AS_PROGRAM, 8 )
AM_RANGE(0xf603, 0xf603) AM_READ_PORT("SYSTEM")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mrgoemon_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mrgoemon_map, AS_PROGRAM, 8, gberet_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(gberet_colorram_w) AM_BASE_MEMBER(gberet_state, m_colorram)
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(gberet_videoram_w) AM_BASE_MEMBER(gberet_state, m_videoram)
@@ -208,7 +208,7 @@ static WRITE8_HANDLER( gberetb_nmi_ack_w )
cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
}
-static ADDRESS_MAP_START( gberetb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gberetb_map, AS_PROGRAM, 8, gberet_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(gberet_colorram_w) AM_BASE_MEMBER(gberet_state, m_colorram)
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(gberet_videoram_w) AM_BASE_MEMBER(gberet_state, m_videoram)
diff --git a/src/mame/drivers/gbusters.c b/src/mame/drivers/gbusters.c
index 06f837dc383..075779dcf3a 100644
--- a/src/mame/drivers/gbusters.c
+++ b/src/mame/drivers/gbusters.c
@@ -155,7 +155,7 @@ static WRITE8_HANDLER( k052109_051960_w )
}
-static ADDRESS_MAP_START( gbusters_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gbusters_map, AS_PROGRAM, 8, gbusters_state )
AM_RANGE(0x1f80, 0x1f80) AM_WRITE(gbusters_coin_counter_w) /* coin counters */
AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w) /* sound code # */
AM_RANGE(0x1f88, 0x1f88) AM_WRITE(gbusters_sh_irqtrigger_w) /* cause interrupt on audio CPU */
@@ -175,7 +175,7 @@ static ADDRESS_MAP_START( gbusters_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM 878n02.rom */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gbusters_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gbusters_sound_map, AS_PROGRAM, 8, gbusters_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM 878h01.rom */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) /* soundlatch_r */
diff --git a/src/mame/drivers/gcpinbal.c b/src/mame/drivers/gcpinbal.c
index 2656ddaa0a9..d8a7b8b7af8 100644
--- a/src/mame/drivers/gcpinbal.c
+++ b/src/mame/drivers/gcpinbal.c
@@ -231,7 +231,7 @@ static void gcp_adpcm_int( device_t *device )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( gcpinbal_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gcpinbal_map, AS_PROGRAM, 16, gcpinbal_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(gcpinbal_tilemaps_word_r, gcpinbal_tilemaps_word_w) AM_BASE_MEMBER(gcpinbal_state, m_tilemapram)
AM_RANGE(0xc80000, 0xc80fff) AM_RAM AM_BASE_SIZE_MEMBER(gcpinbal_state, m_spriteram, m_spriteram_size) /* sprite ram */
diff --git a/src/mame/drivers/gei.c b/src/mame/drivers/gei.c
index 630040c5b26..9569dea0bbc 100644
--- a/src/mame/drivers/gei.c
+++ b/src/mame/drivers/gei.c
@@ -401,7 +401,7 @@ static WRITE8_HANDLER( signature2_w )
}
}
-static ADDRESS_MAP_START( getrivia_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( getrivia_map, AS_PROGRAM, 8, gei_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram")
@@ -423,7 +423,7 @@ static ADDRESS_MAP_START( getrivia_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(gei_bitmap_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gselect_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gselect_map, AS_PROGRAM, 8, gei_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0x40ff) AM_RAM AM_SHARE("nvram")
@@ -438,7 +438,7 @@ static ADDRESS_MAP_START( gselect_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
// TODO: where are mapped the lower 0x2000 bytes of the banks?
-static ADDRESS_MAP_START( amuse_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( amuse_map, AS_PROGRAM, 8, gei_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram")
@@ -454,7 +454,7 @@ static ADDRESS_MAP_START( amuse_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(gei_bitmap_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gepoker_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gepoker_map, AS_PROGRAM, 8, gei_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram")
@@ -471,7 +471,7 @@ static ADDRESS_MAP_START( gepoker_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(gei_bitmap_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( amuse1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( amuse1_map, AS_PROGRAM, 8, gei_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_SHARE("nvram")
@@ -488,7 +488,7 @@ static ADDRESS_MAP_START( amuse1_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(gei_bitmap_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( findout_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( findout_map, AS_PROGRAM, 8, gei_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r,ppi8255_w)
@@ -509,7 +509,7 @@ static ADDRESS_MAP_START( findout_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0xffff) AM_READ(catchall)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( quizvid_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( quizvid_map, AS_PROGRAM, 8, gei_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r,ppi8255_w)
@@ -527,7 +527,7 @@ static ADDRESS_MAP_START( quizvid_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0xffff) AM_READ(catchall)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( suprpokr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( suprpokr_map, AS_PROGRAM, 8, gei_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
@@ -539,7 +539,7 @@ static ADDRESS_MAP_START( suprpokr_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( geimulti_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( geimulti_map, AS_PROGRAM, 8, gei_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
@@ -552,7 +552,7 @@ static ADDRESS_MAP_START( geimulti_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(gei_bitmap_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sprtauth_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sprtauth_map, AS_PROGRAM, 8, gei_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
diff --git a/src/mame/drivers/ggconnie.c b/src/mame/drivers/ggconnie.c
index 2414ea15d49..ae429758836 100644
--- a/src/mame/drivers/ggconnie.c
+++ b/src/mame/drivers/ggconnie.c
@@ -123,7 +123,7 @@ static WRITE8_HANDLER(output_w)
// written in "Output Test" in test mode
}
-static ADDRESS_MAP_START( sgx_mem , AS_PROGRAM, 8)
+static ADDRESS_MAP_START( sgx_mem , AS_PROGRAM, 8, ggconnie_state )
AM_RANGE( 0x000000, 0x0fffff) AM_ROM
AM_RANGE( 0x110000, 0x1edfff) AM_NOP
AM_RANGE( 0x1ee800, 0x1effff) AM_NOP
@@ -143,7 +143,7 @@ static ADDRESS_MAP_START( sgx_mem , AS_PROGRAM, 8)
AM_RANGE( 0x1ff400, 0x1ff7ff) AM_READWRITE(h6280_irq_status_r, h6280_irq_status_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sgx_io , AS_IO, 8)
+static ADDRESS_MAP_START( sgx_io , AS_IO, 8, ggconnie_state )
AM_RANGE( 0x00, 0x03) AM_READWRITE( sgx_vdc_r, sgx_vdc_w )
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ghosteo.c b/src/mame/drivers/ghosteo.c
index c54cd36aae5..d8bdd29806e 100644
--- a/src/mame/drivers/ghosteo.c
+++ b/src/mame/drivers/ghosteo.c
@@ -345,7 +345,7 @@ static WRITE32_HANDLER( sound_w )
}
}
-static ADDRESS_MAP_START( bballoon_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( bballoon_map, AS_PROGRAM, 32, ghosteo_state )
AM_RANGE(0x10000000, 0x10000003) AM_READ_PORT("10000000")
AM_RANGE(0x10100000, 0x10100003) AM_READ_PORT("10100000")
AM_RANGE(0x10200000, 0x10200003) AM_READ_PORT("10200000")
diff --git a/src/mame/drivers/gijoe.c b/src/mame/drivers/gijoe.c
index 19ec8ebe123..15911f6e3ad 100644
--- a/src/mame/drivers/gijoe.c
+++ b/src/mame/drivers/gijoe.c
@@ -165,7 +165,7 @@ static void sound_nmi( device_t *device )
device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
-static ADDRESS_MAP_START( gijoe_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gijoe_map, AS_PROGRAM, 16, gijoe_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_RAM AM_BASE_MEMBER(gijoe_state, m_spriteram) // Sprites
AM_RANGE(0x110000, 0x110007) AM_DEVWRITE("k053246", k053246_word_w)
@@ -196,7 +196,7 @@ static ADDRESS_MAP_START( gijoe_map, AS_PROGRAM, 16 )
#endif
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, gijoe_state )
AM_RANGE(0x0000, 0xebff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xfa2f) AM_DEVREADWRITE_MODERN("k054539", k054539_device, read, write)
diff --git a/src/mame/drivers/ginganin.c b/src/mame/drivers/ginganin.c
index ea87cf4c35a..8a99e7a279c 100644
--- a/src/mame/drivers/ginganin.c
+++ b/src/mame/drivers/ginganin.c
@@ -70,7 +70,7 @@ f5d6 print 7 digit BCD number: d0.l to (a1)+ color $3000
*/
-static ADDRESS_MAP_START( ginganin_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ginganin_map, AS_PROGRAM, 16, ginganin_state )
/* The ROM area: 10000-13fff is written with: 0000 0000 0000 0001, at startup only. Why? */
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x020000, 0x023fff) AM_RAM
@@ -90,7 +90,7 @@ ADDRESS_MAP_END
**
*/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, ginganin_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0807) AM_DEVREADWRITE_MODERN("6840ptm", ptm6840_device, read, write)
AM_RANGE(0x1800, 0x1800) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/gladiatr.c b/src/mame/drivers/gladiatr.c
index 3e226d57668..aa0161a5742 100644
--- a/src/mame/drivers/gladiatr.c
+++ b/src/mame/drivers/gladiatr.c
@@ -374,7 +374,7 @@ static MACHINE_RESET( ppking )
state->m_flag1 = state->m_flag2 = 1;
}
-static ADDRESS_MAP_START( ppking_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ppking_cpu1_map, AS_PROGRAM, 8, gladiatr_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcbff) AM_RAM AM_BASE_MEMBER(gladiatr_state, m_spriteram)
AM_RANGE(0xcc00, 0xcfff) AM_WRITE(ppking_video_registers_w)
@@ -386,12 +386,12 @@ static ADDRESS_MAP_START( ppking_cpu1_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ppking_cpu3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ppking_cpu3_map, AS_PROGRAM, 8, gladiatr_state )
AM_RANGE(0x2000, 0x2fff) AM_ROM
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ppking_cpu1_io, AS_IO, 8 )
+static ADDRESS_MAP_START( ppking_cpu1_io, AS_IO, 8, gladiatr_state )
// ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xc000, 0xc000) AM_WRITE(gladiatr_spritebuffer_w)
AM_RANGE(0xc004, 0xc004) AM_NOP // WRITE(ppking_irq_patch_w)
@@ -399,7 +399,7 @@ static ADDRESS_MAP_START( ppking_cpu1_io, AS_IO, 8 )
AM_RANGE(0xc0bf, 0xc0bf) AM_NOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ppking_cpu2_io, AS_IO, 8 )
+static ADDRESS_MAP_START( ppking_cpu2_io, AS_IO, 8, gladiatr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0x20, 0x21) AM_READ(qx1_r) AM_WRITE(qx1_w)
@@ -411,7 +411,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( gladiatr_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gladiatr_cpu1_map, AS_PROGRAM, 8, gladiatr_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcbff) AM_RAM AM_BASE_MEMBER(gladiatr_state, m_spriteram)
@@ -423,19 +423,19 @@ static ADDRESS_MAP_START( gladiatr_cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, gladiatr_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gladiatr_cpu3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gladiatr_cpu3_map, AS_PROGRAM, 8, gladiatr_state )
AM_RANGE(0x1000, 0x1fff) AM_DEVWRITE("msm", glad_adpcm_w)
AM_RANGE(0x2000, 0x2fff) AM_READ(glad_cpu_sound_command_r)
AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gladiatr_cpu1_io, AS_IO, 8 )
+static ADDRESS_MAP_START( gladiatr_cpu1_io, AS_IO, 8, gladiatr_state )
// ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xc000, 0xc000) AM_WRITE(gladiatr_spritebuffer_w)
AM_RANGE(0xc001, 0xc001) AM_WRITE(gladiatr_spritebank_w)
@@ -446,7 +446,7 @@ static ADDRESS_MAP_START( gladiatr_cpu1_io, AS_IO, 8 )
AM_RANGE(0xc0bf, 0xc0bf) AM_NOP // watchdog_reset_w doesn't work
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gladiatr_cpu2_io, AS_IO, 8 )
+static ADDRESS_MAP_START( gladiatr_cpu2_io, AS_IO, 8, gladiatr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0x20, 0x21) AM_READWRITE(TAITO8741_1_r, TAITO8741_1_w)
diff --git a/src/mame/drivers/glass.c b/src/mame/drivers/glass.c
index 472764a73a9..91c97a7ba5d 100644
--- a/src/mame/drivers/glass.c
+++ b/src/mame/drivers/glass.c
@@ -78,7 +78,7 @@ static WRITE16_HANDLER( glass_coin_w )
}
}
-static ADDRESS_MAP_START( glass_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( glass_map, AS_PROGRAM, 16, glass_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(glass_vram_w) AM_BASE_MEMBER(glass_state, m_videoram) /* Video RAM */
AM_RANGE(0x102000, 0x102fff) AM_RAM /* Extra Video RAM */
diff --git a/src/mame/drivers/gng.c b/src/mame/drivers/gng.c
index 5b9b10735a7..44300659667 100644
--- a/src/mame/drivers/gng.c
+++ b/src/mame/drivers/gng.c
@@ -40,7 +40,7 @@ static WRITE8_HANDLER( gng_coin_counter_w )
coin_counter_w(space->machine(), offset, data);
}
-static ADDRESS_MAP_START( gng_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gng_map, AS_PROGRAM, 8, gng_state )
AM_RANGE(0x0000, 0x1dff) AM_RAM
AM_RANGE(0x1e00, 0x1fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(gng_fgvideoram_w) AM_BASE_MEMBER(gng_state, m_fgvideoram)
@@ -66,7 +66,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, gng_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc800) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/go2000.c b/src/mame/drivers/go2000.c
index c080f3c7fa9..7ab614cf5e6 100644
--- a/src/mame/drivers/go2000.c
+++ b/src/mame/drivers/go2000.c
@@ -57,7 +57,7 @@ static WRITE16_HANDLER( sound_cmd_w )
device_set_input_line(state->m_soundcpu, 0, HOLD_LINE);
}
-static ADDRESS_MAP_START( go2000_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( go2000_map, AS_PROGRAM, 16, go2000_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x200000, 0x203fff) AM_RAM
AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_BASE_MEMBER(go2000_state, m_videoram)
@@ -76,12 +76,12 @@ static WRITE8_HANDLER( go2000_pcm_1_bankswitch_w )
memory_set_bank(space->machine(), "bank1", data & 0x07);
}
-static ADDRESS_MAP_START( go2000_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( go2000_sound_map, AS_PROGRAM, 8, go2000_state )
AM_RANGE(0x0000, 0x03ff) AM_ROM
AM_RANGE(0x0400, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( go2000_sound_io, AS_IO, 8 )
+static ADDRESS_MAP_START( go2000_sound_io, AS_IO, 8, go2000_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
AM_RANGE(0x00, 0x00) AM_DEVWRITE("dac1", dac_w)
diff --git a/src/mame/drivers/goal92.c b/src/mame/drivers/goal92.c
index 41ea74949dc..c254eddec36 100644
--- a/src/mame/drivers/goal92.c
+++ b/src/mame/drivers/goal92.c
@@ -47,7 +47,7 @@ static READ16_HANDLER( goal92_inputs_r )
return 0;
}
-static ADDRESS_MAP_START( goal92_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( goal92_map, AS_PROGRAM, 16, goal92_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x1007ff) AM_RAM
AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(goal92_background_w) AM_BASE_MEMBER(goal92_state, m_bg_data)
@@ -81,7 +81,7 @@ static WRITE8_HANDLER( adpcm_data_w )
state->m_msm5205next = data;
}
-static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8, goal92_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("msm", adpcm_control_w)
diff --git a/src/mame/drivers/goindol.c b/src/mame/drivers/goindol.c
index 3e212f56354..d273679ff53 100644
--- a/src/mame/drivers/goindol.c
+++ b/src/mame/drivers/goindol.c
@@ -87,7 +87,7 @@ static WRITE8_HANDLER( prot_fcb0_w )
-static ADDRESS_MAP_START( goindol_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( goindol_map, AS_PROGRAM, 8, goindol_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE_MEMBER(goindol_state, m_ram)
@@ -113,7 +113,7 @@ static ADDRESS_MAP_START( goindol_map, AS_PROGRAM, 8 )
AM_RANGE(0xfd99, 0xfd99) AM_WRITE(prot_fd99_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, goindol_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ymsnd", ym2203_w)
AM_RANGE(0xc000, 0xc7ff) AM_RAM
diff --git a/src/mame/drivers/goldngam.c b/src/mame/drivers/goldngam.c
index 140431e30d8..822072c4d07 100644
--- a/src/mame/drivers/goldngam.c
+++ b/src/mame/drivers/goldngam.c
@@ -297,7 +297,7 @@ static READ16_HANDLER(unk_r)
return test1;
}
-static ADDRESS_MAP_START( swisspkr_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( swisspkr_map, AS_PROGRAM, 16, goldngam_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
AM_RANGE(0x400002, 0x400003) AM_NOP // hopper status read ?
@@ -347,7 +347,7 @@ ADDRESS_MAP_END
*/
-static ADDRESS_MAP_START( moviecrd_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( moviecrd_map, AS_PROGRAM, 16, goldngam_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_BASE_MEMBER(goldngam_state, m_videoram)
diff --git a/src/mame/drivers/goldnpkr.c b/src/mame/drivers/goldnpkr.c
index b1519565419..2ff12abecd6 100644
--- a/src/mame/drivers/goldnpkr.c
+++ b/src/mame/drivers/goldnpkr.c
@@ -1338,7 +1338,7 @@ static WRITE8_DEVICE_HANDLER( sound_w )
* Memory Map Information *
*********************************************/
-static ADDRESS_MAP_START( goldnpkr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( goldnpkr_map, AS_PROGRAM, 8, goldnpkr_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */
AM_RANGE(0x0800, 0x0800) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
@@ -1350,7 +1350,7 @@ static ADDRESS_MAP_START( goldnpkr_map, AS_PROGRAM, 8 )
AM_RANGE(0x2000, 0x7fff) AM_ROM /* superdbl uses 0x2000..0x3fff address space */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pottnpkr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pottnpkr_map, AS_PROGRAM, 8, goldnpkr_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */
AM_RANGE(0x0800, 0x0800) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
@@ -1362,7 +1362,7 @@ static ADDRESS_MAP_START( pottnpkr_map, AS_PROGRAM, 8 )
AM_RANGE(0x2000, 0x3fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( witchcrd_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( witchcrd_map, AS_PROGRAM, 8, goldnpkr_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */
AM_RANGE(0x0800, 0x0800) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
@@ -1389,7 +1389,7 @@ ADDRESS_MAP_END
*/
-static ADDRESS_MAP_START( witchcrd_falcon_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( witchcrd_falcon_map, AS_PROGRAM, 8, goldnpkr_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */
AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE_MODERN("pia0", pia6821_device, read, write)
@@ -1402,7 +1402,7 @@ static ADDRESS_MAP_START( witchcrd_falcon_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0x7fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wildcard_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wildcard_map, AS_PROGRAM, 8, goldnpkr_state )
// ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */
AM_RANGE(0x0800, 0x0800) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
@@ -1424,7 +1424,7 @@ ADDRESS_MAP_END
*/
-static ADDRESS_MAP_START( wcrdxtnd_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wcrdxtnd_map, AS_PROGRAM, 8, goldnpkr_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM //AM_SHARE("nvram") /* battery backed RAM */
AM_RANGE(0x0800, 0x0800) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE_MODERN("crtc", mc6845_device, register_r, register_w)
@@ -1444,7 +1444,7 @@ ADDRESS_MAP_END
*/
-static ADDRESS_MAP_START( wildcrdb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wildcrdb_map, AS_PROGRAM, 8, goldnpkr_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */
AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE_MODERN("pia0", pia6821_device, read, write)
@@ -1458,13 +1458,13 @@ static ADDRESS_MAP_START( wildcrdb_map, AS_PROGRAM, 8 )
AM_RANGE(0x3000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wildcrdb_mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wildcrdb_mcu_map, AS_PROGRAM, 8, goldnpkr_state )
// ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1000, 0x2fff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wildcrdb_mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( wildcrdb_mcu_io_map, AS_IO, 8, goldnpkr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
@@ -1477,7 +1477,7 @@ ADDRESS_MAP_END
*/
-static ADDRESS_MAP_START( genie_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( genie_map, AS_PROGRAM, 8, goldnpkr_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */
AM_RANGE(0x0800, 0x0800) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
diff --git a/src/mame/drivers/goldstar.c b/src/mame/drivers/goldstar.c
index b7edc524757..6665046f88c 100644
--- a/src/mame/drivers/goldstar.c
+++ b/src/mame/drivers/goldstar.c
@@ -138,7 +138,7 @@ static READ8_HANDLER( protection_r )
return data[state->m_dataoffset++];
}
-static ADDRESS_MAP_START( goldstar_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( goldstar_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0x0000, 0xb7ff) AM_ROM
AM_RANGE(0xb800, 0xbfff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xc000, 0xc7ff) AM_ROM
@@ -169,7 +169,7 @@ static ADDRESS_MAP_START( goldstar_map, AS_PROGRAM, 8 )
AM_RANGE(0xfe00, 0xfe00) AM_READWRITE(protection_r,protection_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( goldstar_readport, AS_IO, 8 )
+static ADDRESS_MAP_START( goldstar_readport, AS_IO, 8, goldstar_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW6")
ADDRESS_MAP_END
@@ -181,7 +181,7 @@ static WRITE8_HANDLER( ncb3_port81_w )
}
-static ADDRESS_MAP_START( ncb3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ncb3_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0x0000, 0xb7ff) AM_ROM
AM_RANGE(0xb800, 0xbfff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xc000, 0xc7ff) AM_ROM
@@ -206,7 +206,7 @@ static ADDRESS_MAP_START( ncb3_map, AS_PROGRAM, 8 )
AM_RANGE(0xf870, 0xf870) AM_DEVWRITE("snsnd", sn76496_w) /* guess... device is initialized, but doesn't seems to be used.*/
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ncb3_readwriteport, AS_IO, 8 )
+static ADDRESS_MAP_START( ncb3_readwriteport, AS_IO, 8, goldstar_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE(0x00, 0x00) AM_READ(ncb3_unkread_r) // read from 0x00 when controls set1 is used...
// AM_RANGE(0x02, 0x02) AM_READ(ncb3_unkread_r) // read from 0x02 when controls set2 is used...
@@ -253,7 +253,7 @@ static WRITE8_HANDLER( cm_outport1_w )
/* lamps? */
}
-static ADDRESS_MAP_START( cm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cm_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0x0000, 0xcfff) AM_ROM AM_WRITENOP
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("nvram")
@@ -275,7 +275,7 @@ static ADDRESS_MAP_START( cm_map, AS_PROGRAM, 8 )
AM_RANGE(0xfc80, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nfm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nfm_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0x0000, 0xd7ff) AM_ROM AM_WRITENOP
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_SHARE("nvram")
@@ -299,7 +299,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( cm_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( cm_portmap, AS_IO, 8, goldstar_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x02, 0x03) AM_DEVWRITE("aysnd", ay8910_data_address_w)
@@ -313,7 +313,7 @@ static ADDRESS_MAP_START( cm_portmap, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cmast91_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( cmast91_portmap, AS_IO, 8, goldstar_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) /* Input Ports */
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) /* DIP switches */
@@ -322,7 +322,7 @@ static ADDRESS_MAP_START( cmast91_portmap, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( amcoe1_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( amcoe1_portmap, AS_IO, 8, goldstar_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x02, 0x03) AM_DEVWRITE("aysnd", ay8910_data_address_w)
@@ -335,7 +335,7 @@ static ADDRESS_MAP_START( amcoe1_portmap, AS_IO, 8 )
AM_RANGE(0x20, 0x20) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( amcoe2_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( amcoe2_portmap, AS_IO, 8, goldstar_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x02, 0x03) AM_DEVWRITE("aysnd", ay8910_data_address_w)
@@ -361,7 +361,7 @@ static WRITE8_HANDLER( lucky8_outport_w )
}
-static ADDRESS_MAP_START( lucky8_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lucky8_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_BASE_MEMBER(goldstar_state,m_fg_vidram)
@@ -405,7 +405,7 @@ static WRITE8_HANDLER( magodds_outb860_w )
// popmessage("magodds_outb860_w %02x\n", data);
}
-static ADDRESS_MAP_START(magodds_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START(magodds_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
// where does the extra rom data map?? it seems like it should come straight after the existing rom, but it can't if this is a plain z80?
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("share1") AM_SHARE("nvram")
@@ -429,7 +429,7 @@ static ADDRESS_MAP_START(magodds_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION("maincpu",0xc000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kkotnoli_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kkotnoli_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM /* definitely no NVRAM */
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_BASE_MEMBER(goldstar_state,m_fg_vidram)
@@ -468,7 +468,7 @@ ADDRESS_MAP_END
// popmessage("Output: %02X", data);
//}
-static ADDRESS_MAP_START( ladylinr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ladylinr_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_BASE_MEMBER(goldstar_state,m_fg_vidram)
@@ -489,7 +489,7 @@ static ADDRESS_MAP_START( ladylinr_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wcat3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wcat3_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_BASE_MEMBER(goldstar_state,m_fg_vidram)
@@ -523,7 +523,7 @@ static READ8_HANDLER( unkch_unk_r )
/* newer / more capable hw */
-static ADDRESS_MAP_START( unkch_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( unkch_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xc000, 0xc1ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_split1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xc800, 0xc9ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_split2_w) AM_BASE_GENERIC(paletteram2)
@@ -575,7 +575,7 @@ static WRITE8_HANDLER( unkcm_0x12_w )
}
-static ADDRESS_MAP_START( unkch_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( unkch_portmap, AS_IO, 8, goldstar_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE(0x01, 0x01) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x02, 0x02) AM_WRITE(unkcm_0x02_w)
diff --git a/src/mame/drivers/gomoku.c b/src/mame/drivers/gomoku.c
index e22704fbda2..9d75923ca83 100644
--- a/src/mame/drivers/gomoku.c
+++ b/src/mame/drivers/gomoku.c
@@ -38,7 +38,7 @@ static READ8_HANDLER( input_port_r )
}
-static ADDRESS_MAP_START( gomoku_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gomoku_map, AS_PROGRAM, 8, gomoku_state )
AM_RANGE(0x0000, 0x47ff) AM_ROM
AM_RANGE(0x4800, 0x4fff) AM_RAM
AM_RANGE(0x5000, 0x53ff) AM_RAM_WRITE(gomoku_videoram_w) AM_BASE_MEMBER(gomoku_state, m_videoram)
diff --git a/src/mame/drivers/good.c b/src/mame/drivers/good.c
index 74f9969ab7c..2bab97bb5e8 100644
--- a/src/mame/drivers/good.c
+++ b/src/mame/drivers/good.c
@@ -101,7 +101,7 @@ static SCREEN_UPDATE_IND16( good )
return 0;
}
-static ADDRESS_MAP_START( good_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( good_map, AS_PROGRAM, 16, good_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
//AM_RANGE(0x270000, 0x270007) AM_RAM // scroll?
diff --git a/src/mame/drivers/goodejan.c b/src/mame/drivers/goodejan.c
index 3211e172fc4..5683f1807ab 100644
--- a/src/mame/drivers/goodejan.c
+++ b/src/mame/drivers/goodejan.c
@@ -102,7 +102,7 @@ static WRITE16_HANDLER( mahjong_panel_w )
state->m_mux_data = data;
}
-static ADDRESS_MAP_START( goodejan_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( goodejan_map, AS_PROGRAM, 16, goodejan_state )
AM_RANGE(0x00000, 0x0afff) AM_RAM
AM_RANGE(0x0c000, 0x0c7ff) AM_RAM_WRITE(seibucrtc_sc0vram_w) AM_BASE(&seibucrtc_sc0vram)
AM_RANGE(0x0c800, 0x0cfff) AM_RAM_WRITE(seibucrtc_sc3vram_w) AM_BASE(&seibucrtc_sc3vram)
@@ -115,7 +115,7 @@ static ADDRESS_MAP_START( goodejan_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
/*totmejan CRT is at 8000-804f,goodejan is at 8040-807f(808f but not tested)*/
-static ADDRESS_MAP_START( common_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( common_io_map, AS_IO, 16, goodejan_state )
AM_RANGE(0x9000, 0x9001) AM_WRITE(goodejan_gfxbank_w)
AM_RANGE(0xb000, 0xb003) AM_WRITENOP
AM_RANGE(0xb004, 0xb005) AM_WRITE(mahjong_panel_w)
@@ -126,12 +126,12 @@ static ADDRESS_MAP_START( common_io_map, AS_IO, 16 )
AM_RANGE(0xd000, 0xd00f) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( totmejan_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( totmejan_io_map, AS_IO, 16, goodejan_state )
AM_RANGE(0x8000, 0x804f) AM_RAM_WRITE(seibucrtc_vregs_w) AM_BASE(&seibucrtc_vregs)
AM_IMPORT_FROM(common_io_map)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( goodejan_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( goodejan_io_map, AS_IO, 16, goodejan_state )
AM_RANGE(0x8040, 0x807f) AM_RAM_WRITE(seibucrtc_vregs_w) AM_BASE(&seibucrtc_vregs)
AM_IMPORT_FROM(common_io_map)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gotcha.c b/src/mame/drivers/gotcha.c
index 76de1756a6e..29adda25c5a 100644
--- a/src/mame/drivers/gotcha.c
+++ b/src/mame/drivers/gotcha.c
@@ -95,7 +95,7 @@ static WRITE16_DEVICE_HANDLER( gotcha_oki_bank_w )
}
-static ADDRESS_MAP_START( gotcha_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gotcha_map, AS_PROGRAM, 16, gotcha_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_WRITE(soundlatch_word_w)
AM_RANGE(0x100002, 0x100003) AM_WRITE(gotcha_lamps_w)
@@ -115,7 +115,7 @@ static ADDRESS_MAP_START( gotcha_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, gotcha_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xc002, 0xc003) AM_DEVWRITE_MODERN("oki", okim6295_device, write) // TWO addresses!
diff --git a/src/mame/drivers/gottlieb.c b/src/mame/drivers/gottlieb.c
index 6606873a015..31c98a1e566 100644
--- a/src/mame/drivers/gottlieb.c
+++ b/src/mame/drivers/gottlieb.c
@@ -702,7 +702,7 @@ static WRITE8_HANDLER( gottlieb_sh_w )
state->m_r2_sound->write(*space, offset, data);
}
-static ADDRESS_MAP_START( reactor_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( reactor_map, AS_PROGRAM, 8, gottlieb_state )
ADDRESS_MAP_GLOBAL_MASK(0xffff)
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x20ff) AM_MIRROR(0x0f00) AM_WRITEONLY AM_BASE_MEMBER(gottlieb_state, m_spriteram) /* FRSEL */
@@ -723,7 +723,7 @@ static ADDRESS_MAP_START( reactor_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gottlieb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gottlieb_map, AS_PROGRAM, 8, gottlieb_state )
ADDRESS_MAP_GLOBAL_MASK(0xffff)
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x1000, 0x1fff) AM_RAM AM_REGION("maincpu", 0x1000) /* or ROM */
diff --git a/src/mame/drivers/gotya.c b/src/mame/drivers/gotya.c
index 65a5c434459..b064c53559f 100644
--- a/src/mame/drivers/gotya.c
+++ b/src/mame/drivers/gotya.c
@@ -39,7 +39,7 @@ TODO: Emulated sound
#include "includes/gotya.h"
-static ADDRESS_MAP_START( gotya_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gotya_map, AS_PROGRAM, 8, gotya_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x5000, 0x5fff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ_PORT("P1")
diff --git a/src/mame/drivers/gpworld.c b/src/mame/drivers/gpworld.c
index f87ca864db5..5ca15bedd46 100644
--- a/src/mame/drivers/gpworld.c
+++ b/src/mame/drivers/gpworld.c
@@ -291,7 +291,7 @@ static WRITE8_HANDLER( palette_write )
}
/* PROGRAM MAP */
-static ADDRESS_MAP_START( mainmem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mainmem, AS_PROGRAM, 8, gpworld_state )
AM_RANGE(0x0000,0xbfff) AM_ROM
AM_RANGE(0xc000,0xc7ff) AM_RAM AM_BASE_MEMBER(gpworld_state, m_sprite_RAM)
AM_RANGE(0xc800,0xcfff) AM_WRITE(palette_write) AM_BASE_MEMBER(gpworld_state, m_palette_RAM) /* The memory test reads at 0xc800 */
@@ -308,7 +308,7 @@ ADDRESS_MAP_END
/* I/O MAP */
-static ADDRESS_MAP_START( mainport, AS_IO, 8 )
+static ADDRESS_MAP_START( mainport, AS_IO, 8, gpworld_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01,0x01) AM_WRITE(misc_io_write)
AM_RANGE(0x80,0x80) AM_READ_PORT("IN0")
diff --git a/src/mame/drivers/gradius3.c b/src/mame/drivers/gradius3.c
index 71108b4f03b..b5696dfd026 100644
--- a/src/mame/drivers/gradius3.c
+++ b/src/mame/drivers/gradius3.c
@@ -164,7 +164,7 @@ static WRITE8_DEVICE_HANDLER( sound_bank_w )
-static ADDRESS_MAP_START( gradius3_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gradius3_map, AS_PROGRAM, 16, gradius3_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_RAM
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
@@ -185,7 +185,7 @@ static ADDRESS_MAP_START( gradius3_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gradius3_map2, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gradius3_map2, AS_PROGRAM, 16, gradius3_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x140000, 0x140001) AM_WRITE(cpuB_irqenable_w)
@@ -198,7 +198,7 @@ static ADDRESS_MAP_START( gradius3_map2, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gradius3_s_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gradius3_s_map, AS_PROGRAM, 8, gradius3_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf000) AM_DEVWRITE("k007232", sound_bank_w) /* 007232 bankswitch */
AM_RANGE(0xf010, 0xf010) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c
index 14de0ad5b24..0a3ddfe9bb9 100644
--- a/src/mame/drivers/grchamp.c
+++ b/src/mame/drivers/grchamp.c
@@ -517,7 +517,7 @@ GFXDECODE_END
*************************************/
/* complete memory map derived from schematics */
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, grchamp_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0400) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x0400) AM_RAM AM_BASE_MEMBER(grchamp_state, m_radarram)
@@ -526,7 +526,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, AS_IO, 8, grchamp_state )
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)
@@ -545,7 +545,7 @@ ADDRESS_MAP_END
/* complete memory map derived from schematics */
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, grchamp_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(grchamp_left_w) AM_BASE_MEMBER(grchamp_state, m_leftram)
AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(grchamp_right_w) AM_BASE_MEMBER(grchamp_state, m_rightram)
@@ -555,7 +555,7 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sub_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sub_portmap, AS_IO, 8, grchamp_state )
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)
@@ -563,7 +563,7 @@ ADDRESS_MAP_END
/* complete memory map derived from schematics */
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, grchamp_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x4800, 0x4801) AM_MIRROR(0x07f8) AM_DEVWRITE("ay1", ay8910_address_data_w)
diff --git a/src/mame/drivers/gridlee.c b/src/mame/drivers/gridlee.c
index 87b0d8be2ae..19583db42fb 100644
--- a/src/mame/drivers/gridlee.c
+++ b/src/mame/drivers/gridlee.c
@@ -306,7 +306,7 @@ static WRITE8_HANDLER( gridlee_coin_counter_w )
*************************************/
/* CPU 1 read addresses */
-static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8, gridlee_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_MEMBER(gridlee_state, m_spriteram)
AM_RANGE(0x0800, 0x7fff) AM_RAM_WRITE(gridlee_videoram_w) AM_BASE_MEMBER(gridlee_state, m_videoram)
AM_RANGE(0x9000, 0x9000) AM_WRITE(led_0_w)
diff --git a/src/mame/drivers/groundfx.c b/src/mame/drivers/groundfx.c
index a0d2382d88b..75abcec0918 100644
--- a/src/mame/drivers/groundfx.c
+++ b/src/mame/drivers/groundfx.c
@@ -215,7 +215,7 @@ static WRITE32_HANDLER( motor_control_w )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( groundfx_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( groundfx_map, AS_PROGRAM, 32, groundfx_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_BASE_MEMBER(groundfx_state, m_ram) /* main CPUA ram */
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_SIZE_MEMBER(groundfx_state, m_spriteram, m_spriteram_size) /* sprite ram */
diff --git a/src/mame/drivers/gstream.c b/src/mame/drivers/gstream.c
index 1bb12d20cdf..db1f792b6e2 100644
--- a/src/mame/drivers/gstream.c
+++ b/src/mame/drivers/gstream.c
@@ -265,7 +265,7 @@ static WRITE32_HANDLER( gstream_tilemap3_scrolly_w )
state->m_tmap3_scrolly = data;
}
-static ADDRESS_MAP_START( gstream_32bit_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( gstream_32bit_map, AS_PROGRAM, 32, gstream_state )
AM_RANGE(0x00000000, 0x003FFFFF) AM_RAM AM_BASE_MEMBER(gstream_state, m_workram) // work ram
// AM_RANGE(0x40000000, 0x40FFFFFF) AM_RAM // ?? lots of data gets copied here if present, but game runs without it??
AM_RANGE(0x80000000, 0x80003FFF) AM_RAM_WRITE(gstream_vram_w) AM_BASE_MEMBER(gstream_state, m_vram) // video ram
@@ -351,7 +351,7 @@ static WRITE32_HANDLER( gstream_oki_4040_w )
// data == 0 or data == 0x81
}
-static ADDRESS_MAP_START( gstream_io, AS_IO, 32 )
+static ADDRESS_MAP_START( gstream_io, AS_IO, 32, gstream_state )
AM_RANGE(0x4000, 0x4003) AM_READ_PORT("IN0")
AM_RANGE(0x4010, 0x4013) AM_READ_PORT("IN1")
AM_RANGE(0x4020, 0x4023) AM_READ_PORT("IN2") // extra coin switches etc
diff --git a/src/mame/drivers/gstriker.c b/src/mame/drivers/gstriker.c
index 6f5b872a862..14ebb6ac7a9 100644
--- a/src/mame/drivers/gstriker.c
+++ b/src/mame/drivers/gstriker.c
@@ -280,7 +280,7 @@ static const ym2610_interface ym2610_config =
-static ADDRESS_MAP_START( gstriker_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gstriker_map, AS_PROGRAM, 16, gstriker_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(MB60553_0_vram_w) AM_BASE_MEMBER(gstriker_state, m_MB60553[0].vram)
AM_RANGE(0x140000, 0x141fff) AM_RAM AM_BASE_MEMBER(gstriker_state, m_CG10103[0].vram)
@@ -302,13 +302,13 @@ static ADDRESS_MAP_START( gstriker_map, AS_PROGRAM, 16 )
AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_BASE_MEMBER(gstriker_state, m_work_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, gstriker_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, gstriker_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
AM_RANGE(0x04, 0x04) AM_WRITE(gs_sh_bankswitch_w)
@@ -317,7 +317,7 @@ static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( vgoal_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( vgoal_map, AS_PROGRAM, 16, gstriker_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(MB60553_0_vram_w) AM_BASE_MEMBER(gstriker_state, m_MB60553[0].vram)
AM_RANGE(0x140000, 0x141fff) AM_RAM AM_BASE_MEMBER(gstriker_state, m_CG10103[0].vram)
diff --git a/src/mame/drivers/gsword.c b/src/mame/drivers/gsword.c
index d77bd3745aa..e685ca738bd 100644
--- a/src/mame/drivers/gsword.c
+++ b/src/mame/drivers/gsword.c
@@ -330,7 +330,7 @@ static WRITE8_HANDLER( adpcm_soundcommand_w )
cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
-static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM , 8 )
+static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM , 8, gsword_state )
AM_RANGE(0x0000, 0x8fff) AM_ROM
AM_RANGE(0x9000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xa37f) AM_RAM
@@ -344,24 +344,24 @@ static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM , 8 )
AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(gsword_videoram_w) AM_BASE_MEMBER(gsword_state, m_videoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu1_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( cpu1_io_map, AS_IO, 8, gsword_state )
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, AS_IO, 8 )
+static ADDRESS_MAP_START( josvolly_cpu1_io_map, AS_IO, 8, gsword_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x7e, 0x7f) AM_WRITE(josvolly_8741_0_w) AM_READ(josvolly_8741_0_r)
ADDRESS_MAP_END
//
-static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, gsword_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE_MEMBER(gsword_state, m_cpu2_ram)
AM_RANGE(0x6000, 0x6000) AM_WRITE(adpcm_soundcommand_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( cpu2_io_map, AS_IO, 8, gsword_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_READWRITE(TAITO8741_2_r,TAITO8741_2_w)
AM_RANGE(0x20, 0x21) AM_READWRITE(TAITO8741_3_r,TAITO8741_3_w)
@@ -378,14 +378,14 @@ ADDRESS_MAP_END
//
-static ADDRESS_MAP_START( cpu3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu3_map, AS_PROGRAM, 8, gsword_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8000) AM_DEVWRITE("msm", gsword_adpcm_data_w)
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( josvolly_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( josvolly_cpu2_map, AS_PROGRAM, 8, gsword_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE_MEMBER(gsword_state, m_cpu2_ram)
@@ -398,7 +398,7 @@ static ADDRESS_MAP_START( josvolly_cpu2_map, AS_PROGRAM, 8 )
AM_RANGE(0xA000, 0xA001) AM_WRITE(josvolly_8741_1_w) AM_READ(josvolly_8741_1_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( josvolly_cpu2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( josvolly_cpu2_io_map, AS_IO, 8, gsword_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("ay1", gsword_fake_0_r, gsword_AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_DEVREADWRITE("ay1", ay8910_r, ay8910_data_w)
diff --git a/src/mame/drivers/gticlub.c b/src/mame/drivers/gticlub.c
index 808a65b4b15..afaa7db71db 100644
--- a/src/mame/drivers/gticlub.c
+++ b/src/mame/drivers/gticlub.c
@@ -400,7 +400,7 @@ static MACHINE_START( gticlub )
ppcdrc_add_fastram(machine.device("maincpu"), 0x00000000, 0x000fffff, FALSE, state->m_work_ram);
}
-static ADDRESS_MAP_START( gticlub_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( gticlub_map, AS_PROGRAM, 32, gticlub_state )
AM_RANGE(0x00000000, 0x000fffff) AM_RAM AM_BASE_MEMBER(gticlub_state, m_work_ram) /* Work RAM */
AM_RANGE(0x74000000, 0x740000ff) AM_READWRITE(gticlub_k001604_reg_r, gticlub_k001604_reg_w)
AM_RANGE(0x74010000, 0x7401ffff) AM_RAM_WRITE(paletteram32_w) AM_BASE_GENERIC(paletteram)
@@ -423,7 +423,7 @@ ADDRESS_MAP_END
/**********************************************************************/
-static ADDRESS_MAP_START( sound_memmap, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sound_memmap, AS_PROGRAM, 16, gticlub_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE("k056800", k056800_sound_r, k056800_sound_w)
@@ -458,14 +458,14 @@ static WRITE32_HANDLER( dsp_dataram1_w )
state->m_sharc_dataram_1[offset] = data;
}
-static ADDRESS_MAP_START( sharc_map, AS_DATA, 32 )
+static ADDRESS_MAP_START( sharc_map, AS_DATA, 32, gticlub_state )
AM_RANGE(0x400000, 0x41ffff) AM_READWRITE(cgboard_0_shared_sharc_r, cgboard_0_shared_sharc_w)
AM_RANGE(0x500000, 0x5fffff) AM_READWRITE(dsp_dataram0_r, dsp_dataram0_w)
AM_RANGE(0x600000, 0x6fffff) AM_READWRITE(K001005_r, K001005_w)
AM_RANGE(0x700000, 0x7000ff) AM_READWRITE(cgboard_0_comm_sharc_r, cgboard_0_comm_sharc_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hangplt_sharc0_map, AS_DATA, 32 )
+static ADDRESS_MAP_START( hangplt_sharc0_map, AS_DATA, 32, gticlub_state )
AM_RANGE(0x0400000, 0x041ffff) AM_READWRITE(cgboard_0_shared_sharc_r, cgboard_0_shared_sharc_w)
AM_RANGE(0x0500000, 0x05fffff) AM_READWRITE(dsp_dataram0_r, dsp_dataram0_w)
AM_RANGE(0x1400000, 0x14fffff) AM_RAM
@@ -476,7 +476,7 @@ static ADDRESS_MAP_START( hangplt_sharc0_map, AS_DATA, 32 )
AM_RANGE(0x3600000, 0x37fffff) AM_ROMBANK("bank5")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hangplt_sharc1_map, AS_DATA, 32 )
+static ADDRESS_MAP_START( hangplt_sharc1_map, AS_DATA, 32, gticlub_state )
AM_RANGE(0x0400000, 0x041ffff) AM_READWRITE(cgboard_1_shared_sharc_r, cgboard_1_shared_sharc_w)
AM_RANGE(0x0500000, 0x05fffff) AM_READWRITE(dsp_dataram1_r, dsp_dataram1_w)
AM_RANGE(0x1400000, 0x14fffff) AM_RAM
diff --git a/src/mame/drivers/guab.c b/src/mame/drivers/guab.c
index 56557e19810..cb3fbcfa979 100644
--- a/src/mame/drivers/guab.c
+++ b/src/mame/drivers/guab.c
@@ -679,7 +679,7 @@ static WRITE16_HANDLER( io_w )
*
*************************************/
-static ADDRESS_MAP_START( guab_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( guab_map, AS_PROGRAM, 16, guab_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x040000, 0x04ffff) AM_ROM AM_REGION("maincpu", 0x10000)
AM_RANGE(0x0c0000, 0x0c007f) AM_READWRITE(io_r, io_w)
diff --git a/src/mame/drivers/gumbo.c b/src/mame/drivers/gumbo.c
index 45ee9de7516..d73e1d56f85 100644
--- a/src/mame/drivers/gumbo.c
+++ b/src/mame/drivers/gumbo.c
@@ -46,7 +46,7 @@ PCB Layout
#include "sound/okim6295.h"
#include "includes/gumbo.h"
-static ADDRESS_MAP_START( gumbo_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gumbo_map, AS_PROGRAM, 16, gumbo_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM // main ram
AM_RANGE(0x1b0000, 0x1b03ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
@@ -59,7 +59,7 @@ ADDRESS_MAP_END
/* Miss Puzzle has a different memory map */
-static ADDRESS_MAP_START( mspuzzle_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mspuzzle_map, AS_PROGRAM, 16, gumbo_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM // main ram
AM_RANGE(0x190000, 0x197fff) AM_RAM_WRITE(gumbo_fg_videoram_w) AM_BASE_MEMBER(gumbo_state, m_fg_videoram) // fg tilemap
@@ -70,7 +70,7 @@ static ADDRESS_MAP_START( mspuzzle_map, AS_PROGRAM, 16 )
AM_RANGE(0x1c0000, 0x1c1fff) AM_RAM_WRITE(gumbo_bg_videoram_w) AM_BASE_MEMBER(gumbo_state, m_bg_videoram) // bg tilemap
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dblpoint_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dblpoint_map, AS_PROGRAM, 16, gumbo_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM // main ram
AM_RANGE(0x1b0000, 0x1b03ff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
diff --git a/src/mame/drivers/gunbustr.c b/src/mame/drivers/gunbustr.c
index caa66d0d430..756a0789eaa 100644
--- a/src/mame/drivers/gunbustr.c
+++ b/src/mame/drivers/gunbustr.c
@@ -191,7 +191,7 @@ static WRITE32_HANDLER( gunbustr_gun_w )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( gunbustr_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( gunbustr_map, AS_PROGRAM, 32, gunbustr_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_BASE_MEMBER(gunbustr_state, m_ram) /* main CPUA ram */
AM_RANGE(0x300000, 0x301fff) AM_RAM AM_BASE_SIZE_MEMBER(gunbustr_state, m_spriteram, m_spriteram_size) /* Sprite ram */
diff --git a/src/mame/drivers/gundealr.c b/src/mame/drivers/gundealr.c
index 48e2d24da74..1e160853168 100644
--- a/src/mame/drivers/gundealr.c
+++ b/src/mame/drivers/gundealr.c
@@ -58,7 +58,7 @@ static WRITE8_HANDLER( yamyam_bankswitch_w )
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, gundealr_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("DSW0")
@@ -76,7 +76,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM AM_BASE_MEMBER(gundealr_state, m_rambase)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, AS_IO, 8, gundealr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gunpey.c b/src/mame/drivers/gunpey.c
index b948045f0e5..1b9ce39dba9 100644
--- a/src/mame/drivers/gunpey.c
+++ b/src/mame/drivers/gunpey.c
@@ -181,14 +181,14 @@ static WRITE8_HANDLER( gunpey_blitter_w )
/***************************************************************************************/
-static ADDRESS_MAP_START( mem_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mem_map, AS_PROGRAM, 16, gunpey_state )
AM_RANGE(0x00000, 0x0ffff) AM_RAM
// AM_RANGE(0x50000, 0x500ff) AM_RAM
// AM_RANGE(0x50100, 0x502ff) AM_NOP
AM_RANGE(0x80000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( io_map, AS_IO, 16, gunpey_state )
AM_RANGE(0x7f40, 0x7f45) AM_READ8(gunpey_inputs_r,0xffff)
// AM_RANGE(0x7f48, 0x7f48) AM_WRITE(output_w)
diff --git a/src/mame/drivers/gunsmoke.c b/src/mame/drivers/gunsmoke.c
index d215920a1a7..598d97ef8b5 100644
--- a/src/mame/drivers/gunsmoke.c
+++ b/src/mame/drivers/gunsmoke.c
@@ -97,7 +97,7 @@ static READ8_HANDLER( gunsmoke_protection_r )
/* Memory Maps */
-static ADDRESS_MAP_START( gunsmoke_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gunsmoke_map, AS_PROGRAM, 8, gunsmoke_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("SYSTEM")
@@ -118,7 +118,7 @@ static ADDRESS_MAP_START( gunsmoke_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_SIZE_MEMBER(gunsmoke_state, m_spriteram, m_spriteram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, gunsmoke_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc800) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/gyruss.c b/src/mame/drivers/gyruss.c
index d8aa77a6772..d133c48e696 100644
--- a/src/mame/drivers/gyruss.c
+++ b/src/mame/drivers/gyruss.c
@@ -158,7 +158,7 @@ static WRITE8_HANDLER( slave_irq_mask_w )
state->m_slave_irq_mask = data & 1;
}
-static ADDRESS_MAP_START( main_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_cpu1_map, AS_PROGRAM, 8, gyruss_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM AM_BASE_MEMBER(gyruss_state, m_colorram)
AM_RANGE(0x8400, 0x87ff) AM_RAM AM_BASE_MEMBER(gyruss_state, m_videoram)
@@ -174,7 +174,7 @@ static ADDRESS_MAP_START( main_cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0xc185, 0xc185) AM_WRITEONLY AM_BASE_MEMBER(gyruss_state, m_flipscreen)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_cpu2_map, AS_PROGRAM, 8, gyruss_state )
AM_RANGE(0x0000, 0x0000) AM_READ(gyruss_scanline_r)
AM_RANGE(0x2000, 0x2000) AM_WRITE(slave_irq_mask_w)
AM_RANGE(0x4000, 0x403f) AM_RAM
@@ -184,13 +184,13 @@ static ADDRESS_MAP_START( main_cpu2_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_cpu1_map, AS_PROGRAM, 8, gyruss_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_RAM
AM_RANGE(0x8000, 0x8000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_cpu1_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( audio_cpu1_io_map, AS_IO, 8, gyruss_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVWRITE("ay1", ay8910_address_w)
AM_RANGE(0x01, 0x01) AM_DEVREAD("ay1", ay8910_r)
@@ -211,11 +211,11 @@ static ADDRESS_MAP_START( audio_cpu1_io_map, AS_IO, 8 )
AM_RANGE(0x18, 0x18) AM_WRITE(soundlatch2_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_cpu2_map, AS_PROGRAM, 8, gyruss_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_cpu2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( audio_cpu2_io_map, AS_IO, 8, gyruss_state )
AM_RANGE(0x00, 0xff) AM_READ(soundlatch2_r)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE("discrete", gyruss_dac_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(gyruss_irq_clear_w)
diff --git a/src/mame/drivers/halleys.c b/src/mame/drivers/halleys.c
index 90678002777..d5e8902501b 100644
--- a/src/mame/drivers/halleys.c
+++ b/src/mame/drivers/halleys.c
@@ -1644,7 +1644,7 @@ static READ8_HANDLER( io_mirror_r )
//**************************************************************************
// Memory Maps
-static ADDRESS_MAP_START( halleys_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( halleys_map, AS_PROGRAM, 8, halleys_state )
AM_RANGE(0x0000, 0x0fff) AM_READWRITE(blitter_r, blitter_w) AM_BASE_MEMBER(halleys_state, m_blitter_ram) AM_SIZE_MEMBER(halleys_state, m_blitter_ramsize)
AM_RANGE(0x1f00, 0x1fff) AM_WRITE(bgtile_w) // background tiles?(Ben Bero Beh only)
AM_RANGE(0x1000, 0xefff) AM_ROM
@@ -1670,7 +1670,7 @@ static ADDRESS_MAP_START( halleys_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, halleys_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4801) AM_DEVWRITE("ay2", ay8910_address_data_w)
diff --git a/src/mame/drivers/hanaawas.c b/src/mame/drivers/hanaawas.c
index 217e6bce000..a69fab852bf 100644
--- a/src/mame/drivers/hanaawas.c
+++ b/src/mame/drivers/hanaawas.c
@@ -70,7 +70,7 @@ static WRITE8_HANDLER( hanaawas_inputs_mux_w )
state->m_mux = data;
}
-static ADDRESS_MAP_START( hanaawas_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hanaawas_map, AS_PROGRAM, 8, hanaawas_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x4000, 0x4fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_ROM
@@ -80,7 +80,7 @@ static ADDRESS_MAP_START( hanaawas_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, hanaawas_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(hanaawas_input_port_0_r, hanaawas_inputs_mux_w)
AM_RANGE(0x01, 0x01) AM_READNOP /* it must return 0 */
diff --git a/src/mame/drivers/harddriv.c b/src/mame/drivers/harddriv.c
index 2a69bdc5a9e..66c5da1a5c3 100644
--- a/src/mame/drivers/harddriv.c
+++ b/src/mame/drivers/harddriv.c
@@ -404,7 +404,7 @@ static const dsp32_config dsp32c_config =
*
*************************************/
-static ADDRESS_MAP_START( driver_68k_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( driver_68k_map, AS_PROGRAM, 16, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x600000, 0x603fff) AM_READ(hd68k_port0_r)
@@ -423,7 +423,7 @@ static ADDRESS_MAP_START( driver_68k_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( driver_gsp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( driver_gsp_map, AS_PROGRAM, 16, harddriv_state )
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)
@@ -436,7 +436,7 @@ static ADDRESS_MAP_START( driver_gsp_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( driver_msp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( driver_msp_map, AS_PROGRAM, 16, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x000fffff) AM_RAM AM_SHARE("share1") AM_BASE_MEMBER(harddriv_state, m_msp_ram)
AM_RANGE(0x00700000, 0x007fffff) AM_RAM AM_SHARE("share1")
@@ -452,7 +452,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( multisync_68k_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( multisync_68k_map, AS_PROGRAM, 16, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x600000, 0x603fff) AM_READWRITE(atarigen_sound_upper_r, atarigen_sound_upper_w)
@@ -471,7 +471,7 @@ static ADDRESS_MAP_START( multisync_68k_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( multisync_gsp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( multisync_gsp_map, AS_PROGRAM, 16, harddriv_state )
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)
@@ -491,7 +491,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( multisync2_68k_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( multisync2_68k_map, AS_PROGRAM, 16, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x604000, 0x607fff) AM_WRITE(hd68k_nwr_w)
@@ -510,7 +510,7 @@ ADDRESS_MAP_END
/* GSP is identical to original multisync */
-static ADDRESS_MAP_START( multisync2_gsp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( multisync2_gsp_map, AS_PROGRAM, 16, harddriv_state )
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)
@@ -530,13 +530,13 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( adsp_program_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( adsp_program_map, AS_PROGRAM, 32, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_MEMBER(harddriv_state, m_adsp_pgm_memory)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( adsp_data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( adsp_data_map, AS_DATA, 16, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_MEMBER(harddriv_state, m_adsp_data_memory)
AM_RANGE(0x2000, 0x2fff) AM_READWRITE(hdadsp_special_r, hdadsp_special_w)
@@ -550,13 +550,13 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( ds3_program_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( ds3_program_map, AS_PROGRAM, 32, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_RAM AM_BASE_MEMBER(harddriv_state, m_adsp_pgm_memory)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ds3_data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( ds3_data_map, AS_DATA, 16, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_MEMBER(harddriv_state, m_adsp_data_memory)
AM_RANGE(0x3800, 0x3bff) AM_RAM /* internal RAM */
@@ -565,13 +565,13 @@ static ADDRESS_MAP_START( ds3_data_map, AS_DATA, 16 )
ADDRESS_MAP_END
#if 0
-static ADDRESS_MAP_START( ds3snd_program_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( ds3snd_program_map, AS_PROGRAM, 32, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ds3snd_data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( ds3snd_data_map, AS_DATA, 16, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x3800, 0x3bff) AM_RAM /* internal RAM */
@@ -608,7 +608,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( dsk_dsp32_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( dsk_dsp32_map, AS_PROGRAM, 32, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x001fff) AM_RAM
AM_RANGE(0x600000, 0x63ffff) AM_RAM
@@ -623,7 +623,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( dsk2_dsp32_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( dsk2_dsp32_map, AS_PROGRAM, 32, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x001fff) AM_RAM
AM_RANGE(0x200000, 0x23ffff) AM_RAM
@@ -639,7 +639,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( driversnd_68k_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( driversnd_68k_map, AS_PROGRAM, 16, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0xff0000, 0xff0fff) AM_READWRITE(hdsnd68k_data_r, hdsnd68k_data_w)
@@ -653,7 +653,7 @@ static ADDRESS_MAP_START( driversnd_68k_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( driversnd_dsp_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( driversnd_dsp_program_map, AS_PROGRAM, 16, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000, 0xfff) AM_RAM AM_BASE_MEMBER(harddriv_state, m_sounddsp_ram)
ADDRESS_MAP_END
@@ -662,7 +662,7 @@ ADDRESS_MAP_END
/* $000 - 08F TMS32010 Internal Data RAM in Data Address Space */
-static ADDRESS_MAP_START( driversnd_dsp_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( driversnd_dsp_io_map, AS_IO, 16, harddriv_state )
AM_RANGE(0, 0) AM_READ(hdsnddsp_rom_r) AM_DEVWRITE("dac", hdsnddsp_dac_w)
AM_RANGE(1, 1) AM_READ(hdsnddsp_comram_r)
AM_RANGE(2, 2) AM_READ(hdsnddsp_compare_r)
diff --git a/src/mame/drivers/hcastle.c b/src/mame/drivers/hcastle.c
index 88887f43bfe..eeac939635c 100644
--- a/src/mame/drivers/hcastle.c
+++ b/src/mame/drivers/hcastle.c
@@ -36,7 +36,7 @@ static WRITE8_HANDLER( hcastle_coin_w )
-static ADDRESS_MAP_START( hcastle_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hcastle_map, AS_PROGRAM, 8, hcastle_state )
AM_RANGE(0x0000, 0x0007) AM_WRITE(hcastle_pf1_control_w)
AM_RANGE(0x0020, 0x003f) AM_RAM /* rowscroll? */
AM_RANGE(0x0200, 0x0207) AM_WRITE(hcastle_pf2_control_w)
@@ -71,7 +71,7 @@ static WRITE8_DEVICE_HANDLER( sound_bank_w )
k007232_set_bank(device, bank_A, bank_B );
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, hcastle_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9800, 0x987f) AM_DEVREADWRITE("konami2", k051649_waveform_r, k051649_waveform_w)
diff --git a/src/mame/drivers/hexion.c b/src/mame/drivers/hexion.c
index 6af3b22b3ba..241faf393f0 100644
--- a/src/mame/drivers/hexion.c
+++ b/src/mame/drivers/hexion.c
@@ -112,7 +112,7 @@ static WRITE_LINE_DEVICE_HANDLER( hexion_nmi_ack_w )
cputag_set_input_line(device->machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
}
-static ADDRESS_MAP_START( hexion_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hexion_map, AS_PROGRAM, 8, hexion_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xbfff) AM_RAM
diff --git a/src/mame/drivers/higemaru.c b/src/mame/drivers/higemaru.c
index 6ebc70c1b59..62f7de504b4 100644
--- a/src/mame/drivers/higemaru.c
+++ b/src/mame/drivers/higemaru.c
@@ -28,7 +28,7 @@ static TIMER_DEVICE_CALLBACK( higemaru_scanline )
}
-static ADDRESS_MAP_START( higemaru_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( higemaru_map, AS_PROGRAM, 8, higemaru_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("P1")
AM_RANGE(0xc001, 0xc001) AM_READ_PORT("P2")
diff --git a/src/mame/drivers/highvdeo.c b/src/mame/drivers/highvdeo.c
index 4e3675cf2a3..6d6d4b22adc 100644
--- a/src/mame/drivers/highvdeo.c
+++ b/src/mame/drivers/highvdeo.c
@@ -278,7 +278,7 @@ static WRITE16_HANDLER( write1_w )
// popmessage("%04x %04x",t1,t3);
}
-static ADDRESS_MAP_START( tv_vcf_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tv_vcf_map, AS_PROGRAM, 16, highvdeo_state )
AM_RANGE(0x00000, 0x003ff) AM_RAM /*irq vector area*/
AM_RANGE(0x00400, 0x03fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x40000, 0x4ffff) AM_RAM AM_BASE_MEMBER(highvdeo_state, m_blit_ram) /*blitter ram*/
@@ -286,7 +286,7 @@ static ADDRESS_MAP_START( tv_vcf_map, AS_PROGRAM, 16 )
AM_RANGE(0xc0000, 0xfffff) AM_ROM AM_REGION("boot_prg",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tv_vcf_io, AS_IO, 16 )
+static ADDRESS_MAP_START( tv_vcf_io, AS_IO, 16, highvdeo_state )
AM_RANGE(0x0000, 0x0001) AM_WRITE( write1_w ) // lamps
AM_RANGE(0x0006, 0x0007) AM_DEVWRITE( "oki", tv_oki6376_w )
AM_RANGE(0x0008, 0x0009) AM_READ( read1_r )
@@ -325,7 +325,7 @@ static WRITE16_DEVICE_HANDLER( tv_ncf_oki6376_st_w )
}
}
-static ADDRESS_MAP_START( tv_ncf_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tv_ncf_map, AS_PROGRAM, 16, highvdeo_state )
AM_RANGE(0x00000, 0x003ff) AM_RAM /*irq vector area*/
AM_RANGE(0x00400, 0x03fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x20000, 0x2ffff) AM_RAM AM_BASE_MEMBER(highvdeo_state, m_blit_ram) /*blitter ram*/
@@ -333,7 +333,7 @@ static ADDRESS_MAP_START( tv_ncf_map, AS_PROGRAM, 16 )
AM_RANGE(0xc0000, 0xfffff) AM_ROM AM_REGION("boot_prg",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tv_ncf_io, AS_IO, 16 )
+static ADDRESS_MAP_START( tv_ncf_io, AS_IO, 16, highvdeo_state )
AM_RANGE(0x0000, 0x0001) AM_WRITE( write1_w ) // lamps
AM_RANGE(0x0008, 0x0009) AM_DEVWRITE( "oki", tv_ncf_oki6376_w )
AM_RANGE(0x000a, 0x000b) AM_DEVWRITE( "oki", tv_ncf_oki6376_st_w )
@@ -369,7 +369,7 @@ static WRITE16_HANDLER( tv_tcf_bankselect_w )
memory_set_bankptr(space->machine(), "bank1", &ROM[bankaddress]);
}
-static ADDRESS_MAP_START( tv_tcf_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tv_tcf_map, AS_PROGRAM, 16, highvdeo_state )
AM_RANGE(0x00000, 0x003ff) AM_RAM /*irq vector area*/
AM_RANGE(0x00400, 0x03fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x40000, 0x5d4bf) AM_RAM AM_BASE_MEMBER(highvdeo_state, m_blit_ram) /*blitter ram*/
@@ -378,7 +378,7 @@ static ADDRESS_MAP_START( tv_tcf_map, AS_PROGRAM, 16 )
AM_RANGE(0xc0000, 0xfffff) AM_ROM AM_REGION("boot_prg",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tv_tcf_io, AS_IO, 16 )
+static ADDRESS_MAP_START( tv_tcf_io, AS_IO, 16, highvdeo_state )
AM_RANGE(0x0000, 0x0001) AM_WRITE( write1_w ) // lamps
AM_RANGE(0x0006, 0x0007) AM_DEVWRITE( "oki", tv_oki6376_w )
AM_RANGE(0x0008, 0x0009) AM_READ( read1_r )
@@ -428,7 +428,7 @@ static WRITE16_HANDLER( write2_w )
}
}
-static ADDRESS_MAP_START( newmcard_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( newmcard_map, AS_PROGRAM, 16, highvdeo_state )
AM_RANGE(0x00000, 0x003ff) AM_RAM /*irq vector area*/
AM_RANGE(0x00400, 0x0ffff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x40000, 0x7ffff) AM_RAM AM_BASE_MEMBER(highvdeo_state, m_blit_ram) /*blitter ram*/
@@ -436,7 +436,7 @@ static ADDRESS_MAP_START( newmcard_map, AS_PROGRAM, 16 )
AM_RANGE(0xc0000, 0xfffff) AM_ROM AM_REGION("boot_prg",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( newmcard_io, AS_IO, 16 )
+static ADDRESS_MAP_START( newmcard_io, AS_IO, 16, highvdeo_state )
AM_RANGE(0x0030, 0x0033) AM_READ( newmcard_status_r )
AM_RANGE(0x0030, 0x0031) AM_WRITE( tv_tcf_bankselect_w )
AM_RANGE(0x0000, 0x0001) AM_WRITE( write1_w ) // lamps
@@ -497,7 +497,7 @@ static WRITE16_HANDLER( brasil_status_w )
// popmessage("%04x",data);
}
-static ADDRESS_MAP_START( brasil_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( brasil_map, AS_PROGRAM, 16, highvdeo_state )
AM_RANGE(0x00000, 0x003ff) AM_RAM /*irq vector area*/
AM_RANGE(0x00400, 0x0ffff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x40000, 0x7ffff) AM_RAM AM_BASE_MEMBER(highvdeo_state, m_blit_ram) /*blitter ram*/
@@ -505,7 +505,7 @@ static ADDRESS_MAP_START( brasil_map, AS_PROGRAM, 16 )
AM_RANGE(0xc0000, 0xfffff) AM_ROM AM_REGION("boot_prg",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( brasil_io, AS_IO, 16 )
+static ADDRESS_MAP_START( brasil_io, AS_IO, 16, highvdeo_state )
AM_RANGE(0x0030, 0x0033) AM_READ( brasil_status_r )
AM_RANGE(0x0030, 0x0031) AM_WRITE( brasil_status_w )
AM_RANGE(0x0000, 0x0001) AM_WRITE( write1_w ) // lamps
diff --git a/src/mame/drivers/hikaru.c b/src/mame/drivers/hikaru.c
index 86084497fbc..7ec9ab2d9bf 100644
--- a/src/mame/drivers/hikaru.c
+++ b/src/mame/drivers/hikaru.c
@@ -326,6 +326,13 @@ Notes:
/* MD2 MD1 MD0 MD6 MD4 MD3 MD5 MD7 MD8 */
//static const struct sh4_config sh4cpu_config = { 1, 0, 1, 0, 0, 0, 1, 1, 0, CPU_CLOCK };
+class hikaru_state : public driver_device
+{
+public:
+ hikaru_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ { }
+};
static VIDEO_START(hikaru)
{
@@ -371,7 +378,7 @@ INPUT_PORTS_END
*/
-static ADDRESS_MAP_START( hikaru_map, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( hikaru_map, AS_PROGRAM, 64, hikaru_state )
// Area 0
AM_RANGE(0x00000000, 0x001fffff) AM_ROM AM_SHARE("share1") // boot ROM
AM_RANGE(0x00400000, 0x00400007) AM_NOP // unknown
@@ -400,7 +407,7 @@ static ADDRESS_MAP_START( hikaru_map, AS_PROGRAM, 64 )
AM_RANGE(0x1b000000, 0x1b7fffff) AM_NOP // GPU Texture RAM and framebuffer (a 2048x2048x16-bit sheet?)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hikaru_map_slave, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( hikaru_map_slave, AS_PROGRAM, 64, hikaru_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x001FFFFF) AM_ROM AM_SHARE("share1")
AM_RANGE(0x0C000000, 0x0DFFFFFF) AM_RAM
@@ -410,7 +417,7 @@ static ADDRESS_MAP_START( hikaru_map_slave, AS_PROGRAM, 64 )
ADDRESS_MAP_END
-static MACHINE_CONFIG_START( hikaru, driver_device )
+static MACHINE_CONFIG_START( hikaru, hikaru_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", SH4LE, CPU_CLOCK)
// MCFG_CPU_CONFIG(sh4cpu_config)
diff --git a/src/mame/drivers/himesiki.c b/src/mame/drivers/himesiki.c
index 5689e98a0f1..8f34d787897 100644
--- a/src/mame/drivers/himesiki.c
+++ b/src/mame/drivers/himesiki.c
@@ -106,7 +106,7 @@ static WRITE8_HANDLER( himesiki_sound_w )
/****************************************************************************/
-static ADDRESS_MAP_START( himesiki_prm0, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( himesiki_prm0, AS_PROGRAM, 8, himesiki_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_BASE_MEMBER(himesiki_state, m_spriteram)
@@ -115,7 +115,7 @@ static ADDRESS_MAP_START( himesiki_prm0, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( himesiki_iom0, AS_IO, 8 )
+static ADDRESS_MAP_START( himesiki_iom0, AS_IO, 8, himesiki_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("1P")
AM_RANGE(0x01, 0x01) AM_READ_PORT("2P")
@@ -130,12 +130,12 @@ static ADDRESS_MAP_START( himesiki_iom0, AS_IO, 8 )
AM_RANGE(0x0b, 0x0b) AM_WRITE(himesiki_sound_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( himesiki_prm1, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( himesiki_prm1, AS_PROGRAM, 8, himesiki_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( himesiki_iom1, AS_IO, 8 )
+static ADDRESS_MAP_START( himesiki_iom1, AS_IO, 8, himesiki_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ym2203", ym2203_r, ym2203_w)
AM_RANGE(0x04, 0x04) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c
index 74adc25850a..454fcc5053c 100644
--- a/src/mame/drivers/hitme.c
+++ b/src/mame/drivers/hitme.c
@@ -224,7 +224,7 @@ static WRITE8_DEVICE_HANDLER( output_port_1_w )
upper 8 bits.
*/
-static ADDRESS_MAP_START( hitme_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hitme_map, AS_PROGRAM, 8, hitme_state )
ADDRESS_MAP_GLOBAL_MASK(0x1fff)
AM_RANGE(0x0000, 0x09ff) AM_ROM
AM_RANGE(0x0c00, 0x0eff) AM_RAM_WRITE(hitme_vidram_w) AM_BASE_MEMBER(hitme_state, m_videoram)
@@ -240,7 +240,7 @@ static ADDRESS_MAP_START( hitme_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hitme_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( hitme_portmap, AS_IO, 8, hitme_state )
AM_RANGE(0x14, 0x14) AM_READ(hitme_port_0_r)
AM_RANGE(0x15, 0x15) AM_READ(hitme_port_1_r)
AM_RANGE(0x16, 0x16) AM_READ(hitme_port_2_r)
diff --git a/src/mame/drivers/hitpoker.c b/src/mame/drivers/hitpoker.c
index 7b473e486a4..43f03c65823 100644
--- a/src/mame/drivers/hitpoker.c
+++ b/src/mame/drivers/hitpoker.c
@@ -237,7 +237,7 @@ static READ8_HANDLER( test_r )
#endif
/* overlap empty rom addresses */
-static ADDRESS_MAP_START( hitpoker_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hitpoker_map, AS_PROGRAM, 8, hitpoker_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM // stack ram
AM_RANGE(0x1000, 0x103f) AM_RAM // internal I/O
AM_RANGE(0x8000, 0xb5ff) AM_READWRITE(hitpoker_vram_r,hitpoker_vram_w)
@@ -259,7 +259,7 @@ static ADDRESS_MAP_START( hitpoker_map, AS_PROGRAM, 8 )
AM_RANGE(0xbf00, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hitpoker_io, AS_IO, 8 )
+static ADDRESS_MAP_START( hitpoker_io, AS_IO, 8, hitpoker_state )
AM_RANGE(MC68HC11_IO_PORTA, MC68HC11_IO_PORTA) AM_READWRITE(hitpoker_pic_r,hitpoker_pic_w) AM_BASE_MEMBER(hitpoker_state, m_sys_regs)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/hnayayoi.c b/src/mame/drivers/hnayayoi.c
index 53baf169ac0..61c8918131e 100644
--- a/src/mame/drivers/hnayayoi.c
+++ b/src/mame/drivers/hnayayoi.c
@@ -90,13 +90,13 @@ static WRITE8_DEVICE_HANDLER( adpcm_reset_inv_w )
}
-static ADDRESS_MAP_START( hnayayoi_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hnayayoi_map, AS_PROGRAM, 8, hnayayoi_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hnayayoi_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( hnayayoi_io_map, AS_IO, 8, hnayayoi_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ymsnd", ym2203_w)
AM_RANGE(0x02, 0x03) AM_DEVREAD("ymsnd", ym2203_r)
@@ -116,7 +116,7 @@ static ADDRESS_MAP_START( hnayayoi_io_map, AS_IO, 8 )
AM_RANGE(0x62, 0x67) AM_WRITE(dynax_blitter_rev1_param_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hnfubuki_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hnfubuki_map, AS_PROGRAM, 8, hnayayoi_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x8000, 0xfeff) AM_ROM
@@ -138,13 +138,13 @@ static ADDRESS_MAP_START( hnfubuki_map, AS_PROGRAM, 8 )
AM_RANGE(0xff62, 0xff67) AM_WRITE(dynax_blitter_rev1_param_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( untoucha_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( untoucha_map, AS_PROGRAM, 8, hnayayoi_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( untoucha_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( untoucha_io_map, AS_IO, 8, hnayayoi_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_DEVWRITE("ymsnd", ym2203_control_port_w)
AM_RANGE(0x11, 0x11) AM_DEVREAD("ymsnd", ym2203_status_port_r)
diff --git a/src/mame/drivers/hng64.c b/src/mame/drivers/hng64.c
index ae3915c6b46..45fa147eb3b 100644
--- a/src/mame/drivers/hng64.c
+++ b/src/mame/drivers/hng64.c
@@ -1046,7 +1046,7 @@ static WRITE32_HANDLER( hng64_sprite_clear_odd_w )
<ElSemi> 0xBF800000-0xBF808000 S-RAM
<ElSemi> 0x60000000-0x60001000 Comm dualport ram
*/
-static ADDRESS_MAP_START( hng_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( hng_map, AS_PROGRAM, 32, hng64_state )
AM_RANGE(0x00000000, 0x00ffffff) AM_RAM AM_BASE_MEMBER(hng64_state, m_mainram)
AM_RANGE(0x04000000, 0x05ffffff) AM_WRITENOP AM_ROM AM_REGION("user3", 0) AM_BASE_MEMBER(hng64_state, m_cart)
@@ -1258,11 +1258,11 @@ WRITE8_HANDLER( hng64_comm_shared_w )
}
#endif
-static ADDRESS_MAP_START( hng_comm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hng_comm_map, AS_PROGRAM, 8, hng64_state )
AM_RANGE(0x0000,0xffff) AM_READWRITE( hng64_comm_memory_r, hng64_comm_memory_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hng_comm_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( hng_comm_io_map, AS_IO, 8, hng64_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
/* Reserved for the KL5C80 internal hardware */
AM_RANGE(0x00, 0x07) AM_WRITE( hng64_comm_io_mmu ) AM_BASE_MEMBER(hng64_state, m_com_mmu_mem)
@@ -1283,7 +1283,7 @@ static ADDRESS_MAP_START( hng_comm_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hng_sound_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hng_sound_map, AS_PROGRAM, 16, hng64_state )
AM_RANGE(0x00000, 0x3ffff) AM_ROMBANK("bank2")
AM_RANGE(0xe0000, 0xfffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
diff --git a/src/mame/drivers/holeland.c b/src/mame/drivers/holeland.c
index 10bbf81ad52..b3ef7f9560b 100644
--- a/src/mame/drivers/holeland.c
+++ b/src/mame/drivers/holeland.c
@@ -18,7 +18,7 @@
#include "includes/holeland.h"
-static ADDRESS_MAP_START( holeland_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( holeland_map, AS_PROGRAM, 8, holeland_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xbfff) AM_ROM
@@ -29,7 +29,7 @@ static ADDRESS_MAP_START( holeland_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf3ff) AM_RAM AM_BASE_SIZE_MEMBER(holeland_state, m_spriteram, m_spriteram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( crzrally_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( crzrally_map, AS_PROGRAM, 8, holeland_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xe000, 0xe3ff) AM_WRITE(holeland_colorram_w) AM_BASE_MEMBER(holeland_state, m_colorram)
@@ -39,7 +39,7 @@ static ADDRESS_MAP_START( crzrally_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xf801) AM_WRITE(holeland_pal_offs_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, holeland_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(watchdog_reset_r) /* ? */
AM_RANGE(0x04, 0x04) AM_DEVREAD("ay1", ay8910_r)
diff --git a/src/mame/drivers/homedata.c b/src/mame/drivers/homedata.c
index 9141fb8f606..4fe071c4a66 100644
--- a/src/mame/drivers/homedata.c
+++ b/src/mame/drivers/homedata.c
@@ -542,7 +542,7 @@ static WRITE8_HANDLER( bankswitch_w )
/********************************************************************************/
-static ADDRESS_MAP_START( mrokumei_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mrokumei_map, AS_PROGRAM, 8, homedata_state )
AM_RANGE(0x0000, 0x3fff) AM_RAM_WRITE(mrokumei_videoram_w) AM_BASE_MEMBER(homedata_state, m_videoram)
AM_RANGE(0x4000, 0x5fff) AM_RAM
AM_RANGE(0x6000, 0x6fff) AM_RAM /* work ram */
@@ -563,20 +563,20 @@ static ADDRESS_MAP_START( mrokumei_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mrokumei_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mrokumei_sound_map, AS_PROGRAM, 8, homedata_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xfffc, 0xfffd) AM_WRITENOP /* stack writes happen here, but there's no RAM */
AM_RANGE(0x8080, 0x8080) AM_WRITE(mrokumei_sound_bank_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mrokumei_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mrokumei_sound_io_map, AS_IO, 8, homedata_state )
AM_RANGE(0x0000, 0xffff) AM_READWRITE(mrokumei_sound_io_r, mrokumei_sound_io_w) /* read address is 16-bit, write address is only 8-bit */
ADDRESS_MAP_END
/********************************************************************************/
-static ADDRESS_MAP_START( reikaids_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( reikaids_map, AS_PROGRAM, 8, homedata_state )
AM_RANGE(0x0000, 0x3fff) AM_RAM_WRITE(reikaids_videoram_w) AM_BASE_MEMBER(homedata_state, m_videoram)
AM_RANGE(0x4000, 0x5fff) AM_RAM
AM_RANGE(0x6000, 0x6fff) AM_RAM /* work RAM */
@@ -595,12 +595,12 @@ static ADDRESS_MAP_START( reikaids_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( reikaids_upd7807_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( reikaids_upd7807_map, AS_PROGRAM, 8, homedata_state )
AM_RANGE(0x0000, 0xfeff) AM_ROMBANK("bank2") /* External ROM (Banked) */
AM_RANGE(0xff00, 0xffff) AM_RAM /* Internal RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( reikaids_upd7807_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( reikaids_upd7807_io_map, AS_IO, 8, homedata_state )
AM_RANGE(UPD7807_PORTA, UPD7807_PORTA) AM_READWRITE(reikaids_upd7807_porta_r, reikaids_upd7807_porta_w)
AM_RANGE(UPD7807_PORTB, UPD7807_PORTB) AM_DEVWRITE("dac", dac_signed_w)
AM_RANGE(UPD7807_PORTC, UPD7807_PORTC) AM_WRITE(reikaids_upd7807_portc_w)
@@ -610,7 +610,7 @@ ADDRESS_MAP_END
/**************************************************************************/
-static ADDRESS_MAP_START( pteacher_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pteacher_map, AS_PROGRAM, 8, homedata_state )
AM_RANGE(0x0000, 0x3fff) AM_RAM_WRITE(mrokumei_videoram_w) AM_BASE_MEMBER(homedata_state, m_videoram)
AM_RANGE(0x4000, 0x5eff) AM_RAM
AM_RANGE(0x5f00, 0x5fff) AM_RAM
@@ -629,13 +629,13 @@ static ADDRESS_MAP_START( pteacher_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pteacher_upd7807_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pteacher_upd7807_map, AS_PROGRAM, 8, homedata_state )
AM_RANGE(0x0000, 0x0000) AM_WRITE(pteacher_snd_answer_w)
AM_RANGE(0x0000, 0xfeff) AM_ROMBANK("bank2") /* External ROM (Banked) */
AM_RANGE(0xff00, 0xffff) AM_RAM /* Internal RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pteacher_upd7807_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( pteacher_upd7807_io_map, AS_IO, 8, homedata_state )
AM_RANGE(UPD7807_PORTA, UPD7807_PORTA) AM_READWRITE(pteacher_upd7807_porta_r, pteacher_upd7807_porta_w)
AM_RANGE(UPD7807_PORTB, UPD7807_PORTB) AM_DEVWRITE("dac", dac_signed_w)
AM_RANGE(UPD7807_PORTC, UPD7807_PORTC) AM_READ_PORT("COIN") AM_WRITE(pteacher_upd7807_portc_w)
@@ -1429,11 +1429,11 @@ static INPUT_PORTS_START( mirderby )
INPUT_PORTS_END
-static ADDRESS_MAP_START( cpu0_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu0_map, AS_PROGRAM, 8, homedata_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8, homedata_state )
AM_RANGE(0x0000, 0x3fff) AM_RAM // videoram
AM_RANGE(0x4000, 0x5fff) AM_RAM
AM_RANGE(0x6000, 0x6fff) AM_RAM /* work ram */
@@ -1458,7 +1458,7 @@ static WRITE8_HANDLER( mirderby_prot_w )
}
-static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, homedata_state )
AM_RANGE(0x0000, 0x3fff) AM_RAM_WRITE(mrokumei_videoram_w) AM_BASE_MEMBER(homedata_state, m_videoram)
AM_RANGE(0x4000, 0x5fff) AM_RAM
AM_RANGE(0x6000, 0x6fff) AM_RAM /* work ram */
diff --git a/src/mame/drivers/homerun.c b/src/mame/drivers/homerun.c
index 3a1e9e861f0..dce3249908b 100644
--- a/src/mame/drivers/homerun.c
+++ b/src/mame/drivers/homerun.c
@@ -53,7 +53,7 @@ static const ppi8255_interface ppi8255_intf =
};
-static ADDRESS_MAP_START( homerun_memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( homerun_memmap, AS_PROGRAM, 8, homerun_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x9fff) AM_RAM_WRITE(homerun_videoram_w) AM_BASE_MEMBER(homerun_state, m_videoram)
@@ -69,7 +69,7 @@ static CUSTOM_INPUT( homerun_40_r )
return ret;
}
-static ADDRESS_MAP_START( homerun_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( homerun_iomap, AS_IO, 8, homerun_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITENOP /* ?? */
AM_RANGE(0x20, 0x20) AM_WRITENOP /* ?? */
diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c
index dee15b4a6d4..f65edad4adc 100644
--- a/src/mame/drivers/hornet.c
+++ b/src/mame/drivers/hornet.c
@@ -604,7 +604,7 @@ static WRITE32_HANDLER(gun_w)
/*****************************************************************************/
-static ADDRESS_MAP_START( hornet_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( hornet_map, AS_PROGRAM, 32, hornet_state )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_BASE_MEMBER(hornet_state, m_workram) /* Work RAM */
AM_RANGE(0x74000000, 0x740000ff) AM_READWRITE(hornet_k037122_reg_r, hornet_k037122_reg_w)
AM_RANGE(0x74020000, 0x7403ffff) AM_READWRITE(hornet_k037122_sram_r, hornet_k037122_sram_w)
@@ -628,7 +628,7 @@ ADDRESS_MAP_END
/*****************************************************************************/
-static ADDRESS_MAP_START( sound_memmap, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sound_memmap, AS_PROGRAM, 16, hornet_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* Work RAM */
AM_RANGE(0x200000, 0x200fff) AM_DEVREADWRITE("rfsnd", rf5c400_r, rf5c400_w) /* Ricoh RF5C400 */
@@ -671,7 +671,7 @@ static WRITE16_HANDLER(gn680_latch_w)
// WORD at 30000e: IRQ 4 tests bits 6 and 7, IRQ5 tests bits 4 and 5
// (vsync and hsync status for each of the two screens?)
-static ADDRESS_MAP_START( gn680_memmap, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gn680_memmap, AS_PROGRAM, 16, hornet_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x200000, 0x203fff) AM_RAM
AM_RANGE(0x300000, 0x300001) AM_WRITE(gn680_sysctrl)
@@ -706,7 +706,7 @@ static WRITE32_HANDLER( dsp_dataram1_w )
state->m_sharc_dataram[1][offset] = data;
}
-static ADDRESS_MAP_START( sharc0_map, AS_DATA, 32 )
+static ADDRESS_MAP_START( sharc0_map, AS_DATA, 32, hornet_state )
AM_RANGE(0x0400000, 0x041ffff) AM_READWRITE(cgboard_0_shared_sharc_r, cgboard_0_shared_sharc_w)
AM_RANGE(0x0500000, 0x05fffff) AM_READWRITE(dsp_dataram0_r, dsp_dataram0_w) AM_BASE_MEMBER(hornet_state, m_sharc_dataram[0])
AM_RANGE(0x1400000, 0x14fffff) AM_RAM
@@ -716,7 +716,7 @@ static ADDRESS_MAP_START( sharc0_map, AS_DATA, 32 )
AM_RANGE(0x3600000, 0x37fffff) AM_ROMBANK("bank5")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sharc1_map, AS_DATA, 32 )
+static ADDRESS_MAP_START( sharc1_map, AS_DATA, 32, hornet_state )
AM_RANGE(0x0400000, 0x041ffff) AM_READWRITE(cgboard_1_shared_sharc_r, cgboard_1_shared_sharc_w)
AM_RANGE(0x0500000, 0x05fffff) AM_READWRITE(dsp_dataram1_r, dsp_dataram1_w) AM_BASE_MEMBER(hornet_state, m_sharc_dataram[1])
AM_RANGE(0x1400000, 0x14fffff) AM_RAM
diff --git a/src/mame/drivers/hotblock.c b/src/mame/drivers/hotblock.c
index 936ab364676..1a30e9b6a2b 100644
--- a/src/mame/drivers/hotblock.c
+++ b/src/mame/drivers/hotblock.c
@@ -117,13 +117,13 @@ static WRITE8_HANDLER( hotblock_video_write )
}
}
-static ADDRESS_MAP_START( hotblock_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hotblock_map, AS_PROGRAM, 8, hotblock_state )
AM_RANGE(0x00000, 0x0ffff) AM_RAM
AM_RANGE(0x10000, 0x1ffff) AM_READWRITE(hotblock_video_read, hotblock_video_write) AM_BASE_MEMBER(hotblock_state, m_vram)
AM_RANGE(0x20000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hotblock_io, AS_IO, 8 )
+static ADDRESS_MAP_START( hotblock_io, AS_IO, 8, hotblock_state )
AM_RANGE(0x0000, 0x0000) AM_WRITE(hotblock_port0_w)
AM_RANGE(0x0004, 0x0004) AM_READWRITE(hotblock_port4_r, hotblock_port4_w)
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("aysnd", ay8910_address_data_w)
diff --git a/src/mame/drivers/hotstuff.c b/src/mame/drivers/hotstuff.c
index 401283628f1..a6725a2da06 100644
--- a/src/mame/drivers/hotstuff.c
+++ b/src/mame/drivers/hotstuff.c
@@ -103,7 +103,7 @@ static WRITE8_HANDLER( ioboard_reg_w )
printf("REG %02x\n",data);
}
-static ADDRESS_MAP_START( hotstuff_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hotstuff_map, AS_PROGRAM, 16, hotstuff_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x0fffff) AM_NOP //ROM AM_REGION("data", 0)
diff --git a/src/mame/drivers/hvyunit.c b/src/mame/drivers/hvyunit.c
index 3d29bb81a35..141cf91c9a4 100644
--- a/src/mame/drivers/hvyunit.c
+++ b/src/mame/drivers/hvyunit.c
@@ -408,7 +408,7 @@ static WRITE8_HANDLER( mermaid_p3_w )
*
*************************************/
-static ADDRESS_MAP_START( master_memory, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( master_memory, AS_PROGRAM, 8, hvyunit_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_DEVREADWRITE("pandora", pandora_spriteram_r, pandora_spriteram_w)
@@ -416,7 +416,7 @@ static ADDRESS_MAP_START( master_memory, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( master_io, AS_IO, 8 )
+static ADDRESS_MAP_START( master_io, AS_IO, 8, hvyunit_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(master_bankswitch_w)
AM_RANGE(0x01, 0x01) AM_WRITE(master_bankswitch_w) // correct?
@@ -424,7 +424,7 @@ static ADDRESS_MAP_START( master_io, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_memory, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slave_memory, AS_PROGRAM, 8, hvyunit_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(hu_videoram_w) AM_BASE_MEMBER(hvyunit_state, m_videoram)
@@ -435,7 +435,7 @@ static ADDRESS_MAP_START( slave_memory, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_io, AS_IO, 8 )
+static ADDRESS_MAP_START( slave_io, AS_IO, 8, hvyunit_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(slave_bankswitch_w)
AM_RANGE(0x02, 0x02) AM_WRITE(trigger_nmi_on_sound_cpu2)
@@ -450,13 +450,13 @@ static ADDRESS_MAP_START( slave_io, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_memory, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_memory, AS_PROGRAM, 8, hvyunit_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank3")
AM_RANGE(0xc000, 0xc7ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io, AS_IO, 8, hvyunit_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(sound_bankswitch_w)
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
@@ -464,7 +464,7 @@ static ADDRESS_MAP_START( sound_io, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_io, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_io, AS_IO, 8, hvyunit_state )
AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P0) AM_READWRITE(mermaid_p0_r, mermaid_p0_w)
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_READWRITE(mermaid_p1_r, mermaid_p1_w)
AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_READWRITE(mermaid_p2_r, mermaid_p2_w)
diff --git a/src/mame/drivers/hyhoo.c b/src/mame/drivers/hyhoo.c
index 02702c70c8b..7c182b87723 100644
--- a/src/mame/drivers/hyhoo.c
+++ b/src/mame/drivers/hyhoo.c
@@ -48,12 +48,12 @@ static DRIVER_INIT( hyhoo2 )
}
-static ADDRESS_MAP_START( hyhoo_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hyhoo_map, AS_PROGRAM, 8, hyhoo_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hyhoo_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( hyhoo_io_map, AS_IO, 8, hyhoo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
diff --git a/src/mame/drivers/hyperspt.c b/src/mame/drivers/hyperspt.c
index 9a353ced352..6827039d8ff 100644
--- a/src/mame/drivers/hyperspt.c
+++ b/src/mame/drivers/hyperspt.c
@@ -33,7 +33,7 @@ static WRITE8_HANDLER( irq_mask_w )
state->m_irq_mask = data & 1;
}
-static ADDRESS_MAP_START( hyperspt_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hyperspt_map, AS_PROGRAM, 8, hyperspt_state )
AM_RANGE(0x1000, 0x10bf) AM_RAM AM_BASE_SIZE_MEMBER(hyperspt_state, m_spriteram, m_spriteram_size)
AM_RANGE(0x10c0, 0x10ff) AM_RAM AM_BASE_MEMBER(hyperspt_state, m_scroll) /* Scroll amount */
AM_RANGE(0x1400, 0x1400) AM_WRITE(watchdog_reset_w)
@@ -54,7 +54,7 @@ static ADDRESS_MAP_START( hyperspt_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( roadf_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( roadf_map, AS_PROGRAM, 8, hyperspt_state )
AM_RANGE(0x1000, 0x10bf) AM_RAM AM_BASE_SIZE_MEMBER(hyperspt_state, m_spriteram, m_spriteram_size)
AM_RANGE(0x10c0, 0x10ff) AM_RAM AM_BASE_MEMBER(hyperspt_state, m_scroll) /* Scroll amount */
AM_RANGE(0x1400, 0x1400) AM_WRITE(watchdog_reset_w)
@@ -75,7 +75,7 @@ static ADDRESS_MAP_START( roadf_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, hyperspt_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4fff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
@@ -87,7 +87,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe002, 0xe002) AM_DEVWRITE("snsnd", konami_SN76496_w) /* This address triggers the SN chip to read the data port. */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( soundb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( soundb_map, AS_PROGRAM, 8, hyperspt_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4fff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/hyprduel.c b/src/mame/drivers/hyprduel.c
index 25bad50cbfc..101a38c87a3 100644
--- a/src/mame/drivers/hyprduel.c
+++ b/src/mame/drivers/hyprduel.c
@@ -422,7 +422,7 @@ static WRITE16_HANDLER( hyprduel_blitter_w )
Memory Maps
***************************************************************************/
-static ADDRESS_MAP_START( hyprduel_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hyprduel_map, AS_PROGRAM, 16, hyprduel_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x400000, 0x41ffff) AM_RAM_WRITE(hyprduel_vram_0_w) AM_BASE_MEMBER(hyprduel_state, m_vram_0) /* Layer 0 */
AM_RANGE(0x420000, 0x43ffff) AM_RAM_WRITE(hyprduel_vram_1_w) AM_BASE_MEMBER(hyprduel_state, m_vram_1) /* Layer 1 */
@@ -454,7 +454,7 @@ static ADDRESS_MAP_START( hyprduel_map, AS_PROGRAM, 16 )
AM_RANGE(0xfe4000, 0xffffff) AM_RAM AM_SHARE("share3") AM_BASE_MEMBER(hyprduel_state, m_sharedram3)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hyprduel_map2, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hyprduel_map2, AS_PROGRAM, 16, hyprduel_state )
AM_RANGE(0x000000, 0x003fff) AM_RAM AM_SHARE("share1") /* shadow ($c00000 - $c03fff : vector) */
AM_RANGE(0x004000, 0x007fff) AM_READONLY AM_WRITENOP AM_SHARE("share3") /* shadow ($fe4000 - $fe7fff : read only) */
AM_RANGE(0x400000, 0x400003) AM_DEVREADWRITE8("ymsnd", ym2151_r, ym2151_w, 0x00ff )
@@ -468,7 +468,7 @@ ADDRESS_MAP_END
/* Magical Error - video is at 8x now */
-static ADDRESS_MAP_START( magerror_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( magerror_map, AS_PROGRAM, 16, hyprduel_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x400000, 0x400001) AM_WRITE(hyprduel_subcpu_control_w)
AM_RANGE(0x800000, 0x81ffff) AM_RAM_WRITE(hyprduel_vram_0_w) AM_BASE_MEMBER(hyprduel_state, m_vram_0) /* Layer 0 */
@@ -500,7 +500,7 @@ static ADDRESS_MAP_START( magerror_map, AS_PROGRAM, 16 )
AM_RANGE(0xfe4000, 0xffffff) AM_RAM AM_SHARE("share3") AM_BASE_MEMBER(hyprduel_state, m_sharedram3)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( magerror_map2, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( magerror_map2, AS_PROGRAM, 16, hyprduel_state )
AM_RANGE(0x000000, 0x003fff) AM_RAM AM_SHARE("share1") /* shadow ($c00000 - $c03fff : vector) */
AM_RANGE(0x004000, 0x007fff) AM_READONLY AM_WRITENOP AM_SHARE("share3") /* shadow ($fe4000 - $fe7fff : read only) */
AM_RANGE(0x400000, 0x400003) AM_NOP
diff --git a/src/mame/drivers/igs009.c b/src/mame/drivers/igs009.c
index f7e04bdf75b..db8784c46f5 100644
--- a/src/mame/drivers/igs009.c
+++ b/src/mame/drivers/igs009.c
@@ -443,12 +443,12 @@ static READ8_HANDLER( jingbell_magic_r )
-static ADDRESS_MAP_START( jingbell_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jingbell_map, AS_PROGRAM, 8, igs009_state )
AM_RANGE( 0x00000, 0x0f3ff ) AM_ROM
AM_RANGE( 0x0f400, 0x0ffff ) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jingbell_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( jingbell_portmap, AS_IO, 8, igs009_state )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // Z180 internal regs
AM_RANGE( 0x1000, 0x11ff ) AM_RAM_WRITE( bg_scroll_w ) AM_BASE_MEMBER(igs009_state, m_bg_scroll )
diff --git a/src/mame/drivers/igs011.c b/src/mame/drivers/igs011.c
index 68f185f4c99..de4f320630e 100644
--- a/src/mame/drivers/igs011.c
+++ b/src/mame/drivers/igs011.c
@@ -2118,7 +2118,7 @@ static DRIVER_INIT( nkishusp )
***************************************************************************/
-static ADDRESS_MAP_START( drgnwrld, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( drgnwrld, AS_PROGRAM, 16, igs011_state )
// drgnwrld: IGS011 protection dynamically mapped at 1dd7x
// AM_RANGE( 0x01dd70, 0x01dd77 ) AM_WRITE( igs011_prot1_w )
// AM_RANGE( 0x01dd78, 0x01dd79 ) AM_READ ( igs011_prot1_r )
@@ -2152,7 +2152,7 @@ static ADDRESS_MAP_START( drgnwrld, AS_PROGRAM, 16 )
AM_RANGE( 0xa88000, 0xa88001 ) AM_READ( igs_3_dips_r )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( drgnwrld_igs012, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( drgnwrld_igs012, AS_PROGRAM, 16, igs011_state )
// IGS012
AM_RANGE( 0x001600, 0x00160f ) AM_WRITE( igs012_prot_swap_w ) AM_MIRROR(0x01c000) // swap (a5 / 55)
AM_RANGE( 0x001610, 0x00161f ) AM_READ ( igs012_prot_r ) AM_MIRROR(0x01c000) // read (mode 0)
@@ -2197,7 +2197,7 @@ static WRITE16_DEVICE_HANDLER( lhb_okibank_w )
// popmessage("oki %04x",data);
}
-static ADDRESS_MAP_START( lhb, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( lhb, AS_PROGRAM, 16, igs011_state )
// lhb: IGS011 protection dynamically mapped at 834x
// AM_RANGE( 0x008340, 0x008347 ) AM_WRITE( igs011_prot1_w )
// AM_RANGE( 0x008348, 0x008349 ) AM_READ ( igs011_prot1_r )
@@ -2237,7 +2237,7 @@ static ADDRESS_MAP_START( lhb, AS_PROGRAM, 16 )
AM_RANGE( 0x888000, 0x888001 ) AM_READ( igs_5_dips_r )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( xymg, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( xymg, AS_PROGRAM, 16, igs011_state )
// xymg: IGS011 protection dynamically mapped at 834x
// AM_RANGE( 0x008340, 0x008347 ) AM_WRITE( igs011_prot1_w )
// AM_RANGE( 0x008348, 0x008349 ) AM_READ ( igs011_prot1_r )
@@ -2276,7 +2276,7 @@ static ADDRESS_MAP_START( xymg, AS_PROGRAM, 16 )
AM_RANGE( 0x888000, 0x888001 ) AM_READ( igs_3_dips_r )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wlcc, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( wlcc, AS_PROGRAM, 16, igs011_state )
// wlcc: IGS011 protection dynamically mapped at 834x
// AM_RANGE( 0x008340, 0x008347 ) AM_WRITE( igs011_prot1_w )
// AM_RANGE( 0x008348, 0x008349 ) AM_READ ( igs011_prot1_r )
@@ -2315,7 +2315,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( lhb2, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( lhb2, AS_PROGRAM, 16, igs011_state )
// lhb2: IGS011 protection dynamically mapped at 1ff8x
// AM_RANGE( 0x01ff80, 0x01ff87 ) AM_WRITE( igs011_prot1_w )
// AM_RANGE( 0x01ff88, 0x01ff89 ) AM_READ ( igs011_prot1_r )
@@ -2416,7 +2416,7 @@ static WRITE16_HANDLER( vbowl_link_1_w ) { }
static WRITE16_HANDLER( vbowl_link_2_w ) { }
static WRITE16_HANDLER( vbowl_link_3_w ) { }
-static ADDRESS_MAP_START( vbowl, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( vbowl, AS_PROGRAM, 16, igs011_state )
// vbowl: IGS011 protection dynamically mapped at 834x
// AM_RANGE( 0x008340, 0x008347 ) AM_WRITE( igs011_prot1_w )
// AM_RANGE( 0x008348, 0x008349 ) AM_READ ( igs011_prot1_r )
diff --git a/src/mame/drivers/igs017.c b/src/mame/drivers/igs017.c
index 75bb317fdbe..0a558471f31 100644
--- a/src/mame/drivers/igs017.c
+++ b/src/mame/drivers/igs017.c
@@ -1092,7 +1092,7 @@ static DRIVER_INIT( slqz2 )
Memory Maps
***************************************************************************/
-static ADDRESS_MAP_START( iqblocka_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( iqblocka_map, AS_PROGRAM, 8, igs017_state )
AM_RANGE( 0x00000, 0x0dfff ) AM_ROM
AM_RANGE( 0x0e000, 0x0efff ) AM_RAM
AM_RANGE( 0x0f000, 0x0ffff ) AM_RAM
@@ -1160,7 +1160,7 @@ static READ8_HANDLER( input_r )
}
}
-static ADDRESS_MAP_START( iqblocka_io, AS_IO, 8 )
+static ADDRESS_MAP_START( iqblocka_io, AS_IO, 8, igs017_state )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs
AM_RANGE( 0x1000, 0x17ff ) AM_RAM AM_BASE_MEMBER(igs017_state, m_spriteram)
@@ -1288,7 +1288,7 @@ static WRITE16_HANDLER( mgcs_paletteram_w )
palette_set_color_rgb(space->machine(), offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10));
}
-static ADDRESS_MAP_START( mgcs, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mgcs, AS_PROGRAM, 16, igs017_state )
AM_RANGE( 0x000000, 0x07ffff ) AM_ROM
AM_RANGE( 0x300000, 0x303fff ) AM_RAM
AM_RANGE( 0x49c000, 0x49c003 ) AM_WRITE( mgcs_magic_w )
@@ -1389,7 +1389,7 @@ static READ16_HANDLER( sdmg2_magic_r )
return 0xffff;
}
-static ADDRESS_MAP_START( sdmg2, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sdmg2, AS_PROGRAM, 16, igs017_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x1f0000, 0x1fffff) AM_RAM
AM_RANGE(0x202000, 0x202fff) AM_READWRITE( spriteram_lsb_r, spriteram_lsb_w ) AM_BASE_MEMBER(igs017_state, m_spriteram)
@@ -1510,7 +1510,7 @@ static READ16_HANDLER( mgdha_magic_r )
return 0xffff;
}
-static ADDRESS_MAP_START( mgdha_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mgdha_map, AS_PROGRAM, 16, igs017_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x600000, 0x603fff) AM_RAM
AM_RANGE(0x876000, 0x876003) AM_WRITE( mgdha_magic_w )
@@ -1593,7 +1593,7 @@ static READ8_HANDLER( tjsb_input_r )
}
}
-static ADDRESS_MAP_START( tjsb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tjsb_map, AS_PROGRAM, 8, igs017_state )
AM_RANGE( 0x00000, 0x0dfff ) AM_ROM
AM_RANGE( 0x0e000, 0x0e000 ) AM_WRITE( input_select_w )
AM_RANGE( 0x0e001, 0x0e001 ) AM_READWRITE( tjsb_input_r, tjsb_output_w )
@@ -1602,7 +1602,7 @@ static ADDRESS_MAP_START( tjsb_map, AS_PROGRAM, 8 )
AM_RANGE( 0x10000, 0x3ffff ) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tjsb_io, AS_IO, 8 )
+static ADDRESS_MAP_START( tjsb_io, AS_IO, 8, igs017_state )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs
AM_RANGE( 0x1000, 0x17ff ) AM_RAM AM_BASE_MEMBER(igs017_state, m_spriteram)
diff --git a/src/mame/drivers/igs_m027.c b/src/mame/drivers/igs_m027.c
index 46d2eaf7e95..1a10c9faa1c 100644
--- a/src/mame/drivers/igs_m027.c
+++ b/src/mame/drivers/igs_m027.c
@@ -191,7 +191,7 @@ static SCREEN_UPDATE_IND16(igs_majhong)
***************************************************************************/
-static ADDRESS_MAP_START( igs_majhong_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( igs_majhong_map, AS_PROGRAM, 32, igs_m027_state )
AM_RANGE(0x00000000, 0x00003fff) AM_ROM /* Internal ROM */
AM_RANGE(0x08000000, 0x0807ffff) AM_ROM AM_REGION("user1", 0)/* Game ROM */
AM_RANGE(0x10000000, 0x100003ff) AM_RAM AM_BASE_MEMBER(igs_m027_state, m_igs_mainram)// main ram for asic?
diff --git a/src/mame/drivers/igspoker.c b/src/mame/drivers/igspoker.c
index a7a5b7062c5..8ce8eb52269 100644
--- a/src/mame/drivers/igspoker.c
+++ b/src/mame/drivers/igspoker.c
@@ -342,12 +342,12 @@ static READ8_HANDLER( exp_rom_r )
return rom[offset+0x10000];
}
-static ADDRESS_MAP_START( igspoker_prg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( igspoker_prg_map, AS_PROGRAM, 8, igspoker_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xffff) AM_RAM AM_REGION("maincpu", 0xf000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( igspoker_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( igspoker_io_map, AS_IO, 8, igspoker_state )
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE( paletteram_xBBBBBGGGGGRRRRR_split1_w ) AM_BASE_GENERIC( paletteram )
AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE( paletteram_xBBBBBGGGGGRRRRR_split2_w ) AM_BASE_GENERIC( paletteram2 )
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */
@@ -1101,7 +1101,7 @@ static INPUT_PORTS_START( igs_ncs )
INPUT_PORTS_END
-static ADDRESS_MAP_START( number10_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( number10_io_map, AS_IO, 8, igspoker_state )
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE( paletteram_xBBBBBGGGGGRRRRR_split1_w ) AM_BASE_GENERIC( paletteram )
AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE( paletteram_xBBBBBGGGGGRRRRR_split2_w ) AM_BASE_GENERIC( paletteram2 )
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */
@@ -1124,7 +1124,7 @@ static ADDRESS_MAP_START( number10_io_map, AS_IO, 8 )
AM_RANGE(0x0000, 0xffff) AM_READ( exp_rom_r )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpokerpk_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( cpokerpk_io_map, AS_IO, 8, igspoker_state )
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE( paletteram_xBBBBBGGGGGRRRRR_split1_w ) AM_BASE_GENERIC( paletteram )
AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE( paletteram_xBBBBBGGGGGRRRRR_split2_w ) AM_BASE_GENERIC( paletteram2 )
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */
diff --git a/src/mame/drivers/ikki.c b/src/mame/drivers/ikki.c
index f6a3abc2d79..360b3449ca2 100644
--- a/src/mame/drivers/ikki.c
+++ b/src/mame/drivers/ikki.c
@@ -45,7 +45,7 @@ static WRITE8_HANDLER( ikki_coin_counters )
*
*************************************/
-static ADDRESS_MAP_START( ikki_cpu1, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ikki_cpu1, AS_PROGRAM, 8, ikki_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1")
@@ -61,7 +61,7 @@ static ADDRESS_MAP_START( ikki_cpu1, AS_PROGRAM, 8 )
AM_RANGE(0xe00a, 0xe00b) AM_WRITEONLY AM_BASE_MEMBER(ikki_state, m_scroll)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ikki_cpu2, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ikki_cpu2, AS_PROGRAM, 8, ikki_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE_SIZE_MEMBER(ikki_state, m_spriteram, m_spriteram_size)
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1")
diff --git a/src/mame/drivers/imolagp.c b/src/mame/drivers/imolagp.c
index 7c2f4ce552f..ed512fe99b1 100644
--- a/src/mame/drivers/imolagp.c
+++ b/src/mame/drivers/imolagp.c
@@ -352,12 +352,12 @@ static WRITE8_HANDLER( vreg_data_w )
}
}
-static ADDRESS_MAP_START( readport_master, AS_IO, 8 )
+static ADDRESS_MAP_START( readport_master, AS_IO, 8, imolagp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(trigger_slave_nmi_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( imolagp_master, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( imolagp_master, AS_PROGRAM, 8, imolagp_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x2800, 0x2800) AM_READ_PORT("2800") /* gas */
@@ -374,7 +374,7 @@ static ADDRESS_MAP_START( imolagp_master, AS_PROGRAM, 8 )
AM_RANGE(0x6000, 0x6000) AM_READ_PORT("DSWB") /* DSWB */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( readport_slave, AS_IO, 8 )
+static ADDRESS_MAP_START( readport_slave, AS_IO, 8, imolagp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x05,0x05) AM_READ(imola_slave_port05r)
AM_RANGE(0x06,0x06) AM_READ(imola_slave_port06r)
@@ -382,7 +382,7 @@ static ADDRESS_MAP_START( readport_slave, AS_IO, 8 )
AM_RANGE(0x82,0x82) AM_READ(imola_slave_port82r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( imolagp_slave, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( imolagp_slave, AS_PROGRAM, 8, imolagp_state )
AM_RANGE(0x0000, 0x03ff) AM_ROM
AM_RANGE(0x0800, 0x0bff) AM_ROM
AM_RANGE(0x1000, 0x13ff) AM_ROM
diff --git a/src/mame/drivers/intrscti.c b/src/mame/drivers/intrscti.c
index bfa4ed03ad5..b60118a1b3b 100644
--- a/src/mame/drivers/intrscti.c
+++ b/src/mame/drivers/intrscti.c
@@ -30,14 +30,14 @@ static READ8_HANDLER( unk_r )
return space->machine().rand();
}
-static ADDRESS_MAP_START( intrscti_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( intrscti_map, AS_PROGRAM, 8, intrscti_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x6000, 0x67ff) AM_RAM
AM_RANGE(0x7000, 0x77ff) AM_RAM AM_BASE_MEMBER(intrscti_state, m_ram) // video ram
AM_RANGE(0x8000, 0x8fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( readport, AS_IO, 8 )
+static ADDRESS_MAP_START( readport, AS_IO, 8, intrscti_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ( unk_r )
AM_RANGE(0x01, 0x01) AM_READ( unk_r )
diff --git a/src/mame/drivers/inufuku.c b/src/mame/drivers/inufuku.c
index 39fb92a4589..c67925d6f14 100644
--- a/src/mame/drivers/inufuku.c
+++ b/src/mame/drivers/inufuku.c
@@ -127,7 +127,7 @@ static CUSTOM_INPUT( soundflag_r )
******************************************************************************/
-static ADDRESS_MAP_START( inufuku_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( inufuku_map, AS_PROGRAM, 16, inufuku_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // main rom
AM_RANGE(0x100000, 0x100007) AM_WRITENOP // ?
@@ -164,13 +164,13 @@ ADDRESS_MAP_END
******************************************************************************/
-static ADDRESS_MAP_START( inufuku_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( inufuku_sound_map, AS_PROGRAM, 8, inufuku_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( inufuku_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( inufuku_sound_io_map, AS_IO, 8, inufuku_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(inufuku_soundrombank_w)
AM_RANGE(0x04, 0x04) AM_READWRITE(soundlatch_r, pending_command_clear_w)
diff --git a/src/mame/drivers/iqblock.c b/src/mame/drivers/iqblock.c
index 704234df08c..d8784a0d0a2 100644
--- a/src/mame/drivers/iqblock.c
+++ b/src/mame/drivers/iqblock.c
@@ -126,13 +126,13 @@ static const ppi8255_interface ppi8255_intf =
};
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, iqblock_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_MEMBER(iqblock_state, m_rambase)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, AS_IO, 8, iqblock_state )
AM_RANGE(0x2000, 0x23ff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_split1_w)
AM_RANGE(0x2800, 0x2bff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_split2_w)
AM_RANGE(0x6000, 0x603f) AM_WRITE(iqblock_fgscroll_w)
diff --git a/src/mame/drivers/irobot.c b/src/mame/drivers/irobot.c
index 79657711056..34c6ab92236 100644
--- a/src/mame/drivers/irobot.c
+++ b/src/mame/drivers/irobot.c
@@ -125,7 +125,7 @@ static WRITE8_HANDLER( irobot_clearfirq_w )
*
*************************************/
-static ADDRESS_MAP_START( irobot_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( irobot_map, AS_PROGRAM, 8, irobot_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0fff) AM_RAMBANK("bank2")
AM_RANGE(0x1000, 0x103f) AM_READ_PORT("IN0")
diff --git a/src/mame/drivers/ironhors.c b/src/mame/drivers/ironhors.c
index f1478975953..3476ed6073b 100644
--- a/src/mame/drivers/ironhors.c
+++ b/src/mame/drivers/ironhors.c
@@ -57,7 +57,7 @@ static WRITE8_DEVICE_HANDLER( ironhors_filter_w )
*
*************************************/
-static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, ironhors_state )
AM_RANGE(0x0000, 0x0002) AM_RAM
AM_RANGE(0x0003, 0x0003) AM_RAM_WRITE(ironhors_charbank_w)
AM_RANGE(0x0004, 0x0004) AM_RAM AM_BASE_MEMBER(ironhors_state, m_interrupt_enable)
@@ -85,18 +85,18 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8, ironhors_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x8000, 0x8000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( slave_io_map, AS_IO, 8, ironhors_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ym2203", ym2203_r, ym2203_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( farwest_master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( farwest_master_map, AS_PROGRAM, 8, ironhors_state )
AM_RANGE(0x0000, 0x0002) AM_RAM
//20=31db
@@ -130,7 +130,7 @@ static ADDRESS_MAP_START( farwest_master_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( farwest_slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( farwest_slave_map, AS_PROGRAM, 8, ironhors_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x8000, 0x8001) AM_DEVREADWRITE("ym2203", ym2203_r, ym2203_w)
diff --git a/src/mame/drivers/istellar.c b/src/mame/drivers/istellar.c
index a7c817c32a3..5c796139d7c 100644
--- a/src/mame/drivers/istellar.c
+++ b/src/mame/drivers/istellar.c
@@ -166,7 +166,7 @@ static WRITE8_HANDLER(z80_2_ldp_write)
/* PROGRAM MAPS */
-static ADDRESS_MAP_START( z80_0_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( z80_0_mem, AS_PROGRAM, 8, istellar_state )
AM_RANGE(0x0000,0x9fff) AM_ROM
AM_RANGE(0xa000,0xa7ff) AM_RAM
AM_RANGE(0xa800,0xabff) AM_RAM AM_BASE_MEMBER(istellar_state, m_tile_ram)
@@ -174,12 +174,12 @@ static ADDRESS_MAP_START( z80_0_mem, AS_PROGRAM, 8 )
AM_RANGE(0xb000,0xb3ff) AM_RAM AM_BASE_MEMBER(istellar_state, m_sprite_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( z80_1_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( z80_1_mem, AS_PROGRAM, 8, istellar_state )
AM_RANGE(0x0000,0x1fff) AM_ROM
AM_RANGE(0x4000,0x47ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( z80_2_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( z80_2_mem, AS_PROGRAM, 8, istellar_state )
AM_RANGE(0x0000,0x17ff) AM_ROM
AM_RANGE(0x1800,0x1fff) AM_RAM
AM_RANGE(0xc000,0xc000) AM_READ(z80_2_unknown_read) /* Seems to be thrown away every time it's read - maybe interrupt related? */
@@ -187,7 +187,7 @@ ADDRESS_MAP_END
/* IO MAPS */
-static ADDRESS_MAP_START( z80_0_io, AS_IO, 8 )
+static ADDRESS_MAP_START( z80_0_io, AS_IO, 8, istellar_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00,0x00) AM_READ_PORT("IN0")
AM_RANGE(0x02,0x02) AM_READ_PORT("DSW1")
@@ -196,14 +196,14 @@ static ADDRESS_MAP_START( z80_0_io, AS_IO, 8 )
AM_RANGE(0x05,0x05) AM_READWRITE(z80_0_latch1_read,z80_0_latch2_write)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( z80_1_io, AS_IO, 8 )
+static ADDRESS_MAP_START( z80_1_io, AS_IO, 8, istellar_state )
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, AS_IO, 8 )
+static ADDRESS_MAP_START( z80_2_io, AS_IO, 8, istellar_state )
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)
diff --git a/src/mame/drivers/itech32.c b/src/mame/drivers/itech32.c
index 782b11c046d..5a60598b936 100644
--- a/src/mame/drivers/itech32.c
+++ b/src/mame/drivers/itech32.c
@@ -913,7 +913,7 @@ void itech32_state::nvram_init(nvram_device &nvram, void *base, size_t length)
*************************************/
/*------ Time Killers memory layout ------*/
-static ADDRESS_MAP_START( timekill_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( timekill_map, AS_PROGRAM, 16, itech32_state )
AM_RANGE(0x000000, 0x003fff) AM_RAM AM_BASE_MEMBER(itech32_state, m_main_ram) AM_SHARE("nvram")
AM_RANGE(0x040000, 0x040001) AM_READ_PORT("P1")
AM_RANGE(0x048000, 0x048001) AM_READ_PORT("P2")
@@ -931,7 +931,7 @@ ADDRESS_MAP_END
/*------ BloodStorm and later games memory layout ------*/
-static ADDRESS_MAP_START( bloodstm_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bloodstm_map, AS_PROGRAM, 16, itech32_state )
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_BASE_MEMBER(itech32_state, m_main_ram) AM_SHARE("nvram")
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("P1") AM_WRITE(int1_ack_w)
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("P2")
@@ -995,7 +995,7 @@ static WRITE32_HANDLER( test2_w )
}
#endif
-static ADDRESS_MAP_START( drivedge_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( drivedge_map, AS_PROGRAM, 32, itech32_state )
#if LOG_DRIVEDGE_UNINIT_RAM
AM_RANGE(0x000100, 0x0003ff) AM_MIRROR(0x40000) AM_READWRITE(test1_r, test1_w)
AM_RANGE(0x000c00, 0x007fff) AM_MIRROR(0x40000) AM_READWRITE(test2_r, test2_w)
@@ -1023,20 +1023,20 @@ AM_RANGE(0x000c00, 0x007fff) AM_MIRROR(0x40000) AM_READWRITE(test2_r, test2_w)
AM_RANGE(0x600000, 0x607fff) AM_ROM AM_REGION("user1", 0) AM_BASE_MEMBER(itech32_state, m_main_rom)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( drivedge_tms1_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( drivedge_tms1_map, AS_PROGRAM, 32, itech32_state )
AM_RANGE(0x000000, 0x001fff) AM_RAM AM_BASE_MEMBER(itech32_state, m_tms1_boot)
AM_RANGE(0x008000, 0x0083ff) AM_MIRROR(0x400) AM_RAM_WRITE(tms1_trigger_w) AM_SHARE("share1") AM_BASE_MEMBER(itech32_state, m_tms1_ram)
AM_RANGE(0x080000, 0x0bffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( drivedge_tms2_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( drivedge_tms2_map, AS_PROGRAM, 32, itech32_state )
AM_RANGE(0x008000, 0x0083ff) AM_MIRROR(0x8400) AM_RAM_WRITE(tms2_trigger_w) AM_SHARE("share2") AM_BASE_MEMBER(itech32_state, m_tms2_ram)
AM_RANGE(0x080000, 0x08ffff) AM_RAM
ADDRESS_MAP_END
/*------ 68EC020-based memory layout ------*/
-static ADDRESS_MAP_START( itech020_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( itech020_map, AS_PROGRAM, 32, itech32_state )
AM_RANGE(0x000000, 0x007fff) AM_RAM AM_BASE_MEMBER(itech32_state, m_main_ram)
AM_RANGE(0x080000, 0x080003) AM_READ_PORT("P1") AM_WRITE(int1_ack32_w)
AM_RANGE(0x100000, 0x100003) AM_READ_PORT("P2")
@@ -1067,7 +1067,7 @@ ADDRESS_MAP_END
*************************************/
/*------ Rev 1 sound board memory layout ------*/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, itech32_state )
AM_RANGE(0x0000, 0x0000) AM_WRITE(sound_return_w)
AM_RANGE(0x0400, 0x0400) AM_READ(sound_data_r)
AM_RANGE(0x0800, 0x083f) AM_MIRROR(0x80) AM_DEVREADWRITE("ensoniq", es5506_r, es5506_w)
@@ -1081,7 +1081,7 @@ ADDRESS_MAP_END
/*------ Rev 2 sound board memory layout ------*/
-static ADDRESS_MAP_START( sound_020_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_020_map, AS_PROGRAM, 8, itech32_state )
AM_RANGE(0x0000, 0x0000) AM_MIRROR(0x400) AM_READ(sound_data_r)
AM_RANGE(0x0800, 0x083f) AM_MIRROR(0x80) AM_DEVREADWRITE("ensoniq", es5506_r, es5506_w)
AM_RANGE(0x0c00, 0x0c00) AM_WRITE(sound_bank_w)
diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c
index 200d58ac085..7e7f3052bee 100644
--- a/src/mame/drivers/itech8.c
+++ b/src/mame/drivers/itech8.c
@@ -854,7 +854,7 @@ static WRITE16_HANDLER( palette16_w )
*************************************/
/*------ common layout with TMS34061 at 0000 ------*/
-static ADDRESS_MAP_START( tmslo_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tmslo_map, AS_PROGRAM, 8, itech8_state )
AM_RANGE(0x0000, 0x0fff) AM_READWRITE(itech8_tms34061_r, itech8_tms34061_w)
AM_RANGE(0x1100, 0x1100) AM_WRITENOP
AM_RANGE(0x1120, 0x1120) AM_WRITE(sound_data_w)
@@ -870,7 +870,7 @@ ADDRESS_MAP_END
/*------ common layout with TMS34061 at 1000 ------*/
-static ADDRESS_MAP_START( tmshi_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tmshi_map, AS_PROGRAM, 8, itech8_state )
AM_RANGE(0x1000, 0x1fff) AM_READWRITE(itech8_tms34061_r, itech8_tms34061_w)
AM_RANGE(0x0100, 0x0100) AM_WRITENOP
AM_RANGE(0x0120, 0x0120) AM_WRITE(sound_data_w)
@@ -886,7 +886,7 @@ ADDRESS_MAP_END
/*------ Golden Tee Golf II 1992 layout ------*/
-static ADDRESS_MAP_START( gtg2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gtg2_map, AS_PROGRAM, 8, itech8_state )
AM_RANGE(0x0100, 0x0100) AM_READ_PORT("40") AM_WRITE(itech8_nmi_ack_w)
AM_RANGE(0x0120, 0x0120) AM_READ_PORT("60") AM_WRITE(itech8_page_w)
AM_RANGE(0x0140, 0x015f) AM_WRITE(itech8_palette_w)
@@ -902,7 +902,7 @@ ADDRESS_MAP_END
/*------ Ninja Clowns layout ------*/
-static ADDRESS_MAP_START( ninclown_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ninclown_map, AS_PROGRAM, 16, itech8_state )
AM_RANGE(0x000000, 0x00007f) AM_RAM AM_REGION("maincpu", 0)
AM_RANGE(0x000080, 0x003fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x004000, 0x07ffff) AM_ROM
@@ -925,7 +925,7 @@ ADDRESS_MAP_END
*************************************/
/*------ YM2203-based sound ------*/
-static ADDRESS_MAP_START( sound2203_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound2203_map, AS_PROGRAM, 8, itech8_state )
AM_RANGE(0x0000, 0x0000) AM_WRITENOP
AM_RANGE(0x1000, 0x1000) AM_READ(sound_data_r)
AM_RANGE(0x2000, 0x2001) AM_MIRROR(0x0002) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
@@ -936,7 +936,7 @@ ADDRESS_MAP_END
/*------ YM2608B-based sound ------*/
-static ADDRESS_MAP_START( sound2608b_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound2608b_map, AS_PROGRAM, 8, itech8_state )
AM_RANGE(0x1000, 0x1000) AM_WRITENOP
AM_RANGE(0x2000, 0x2000) AM_READ(sound_data_r)
AM_RANGE(0x4000, 0x4003) AM_DEVREADWRITE("ymsnd", ym2608_r, ym2608_w)
@@ -946,7 +946,7 @@ ADDRESS_MAP_END
/*------ YM3812-based sound ------*/
-static ADDRESS_MAP_START( sound3812_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound3812_map, AS_PROGRAM, 8, itech8_state )
AM_RANGE(0x0000, 0x0000) AM_WRITENOP
AM_RANGE(0x1000, 0x1000) AM_READ(sound_data_r)
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w)
@@ -958,7 +958,7 @@ ADDRESS_MAP_END
/*------ external YM3812-based sound board ------*/
-static ADDRESS_MAP_START( sound3812_external_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound3812_external_map, AS_PROGRAM, 8, itech8_state )
AM_RANGE(0x0000, 0x0000) AM_WRITENOP
AM_RANGE(0x1000, 0x1000) AM_READ(sound_data_r)
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w)
@@ -976,12 +976,12 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( slikz80_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slikz80_mem_map, AS_PROGRAM, 8, itech8_state )
AM_RANGE(0x0000, 0x7ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slikz80_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( slikz80_io_map, AS_IO, 8, itech8_state )
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/itgambl2.c b/src/mame/drivers/itgambl2.c
index cb2616b4971..c7ca873ce7c 100644
--- a/src/mame/drivers/itgambl2.c
+++ b/src/mame/drivers/itgambl2.c
@@ -141,7 +141,7 @@ static SCREEN_UPDATE_RGB32( itgambl2 )
* Memory map information *
*************************/
-static ADDRESS_MAP_START( itgambl2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( itgambl2_map, AS_PROGRAM, 16, itgambl2_state )
ADDRESS_MAP_GLOBAL_MASK(0xffffff)
AM_RANGE(0x000000, 0xffffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/itgambl3.c b/src/mame/drivers/itgambl3.c
index 9446d97846c..6a19248aa15 100644
--- a/src/mame/drivers/itgambl3.c
+++ b/src/mame/drivers/itgambl3.c
@@ -129,7 +129,7 @@ static SCREEN_UPDATE_RGB32( itgambl3 )
* Memory map information *
*************************/
-static ADDRESS_MAP_START( itgambl3_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( itgambl3_map, AS_PROGRAM, 16, itgambl3_state )
ADDRESS_MAP_GLOBAL_MASK(0xffffff)
AM_RANGE(0x000000, 0xffffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/jack.c b/src/mame/drivers/jack.c
index fd6096e20a5..f82bd5de755 100644
--- a/src/mame/drivers/jack.c
+++ b/src/mame/drivers/jack.c
@@ -136,7 +136,7 @@ static READ8_HANDLER( striv_question_r )
*
*************************************/
-static ADDRESS_MAP_START( jack_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jack_map, AS_PROGRAM, 8, jack_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x5fff) AM_RAM
AM_RANGE(0xb000, 0xb07f) AM_RAM AM_BASE_SIZE_MEMBER(jack_state, m_spriteram, m_spriteram_size)
@@ -154,7 +154,7 @@ static ADDRESS_MAP_START( jack_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( joinem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( joinem_map, AS_PROGRAM, 8, jack_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0xb000, 0xb0ff) AM_RAM AM_BASE_SIZE_MEMBER(jack_state, m_spriteram, m_spriteram_size)
@@ -171,13 +171,13 @@ static ADDRESS_MAP_START( joinem_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, jack_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x6000, 0x6fff) AM_WRITENOP /* R/C filter ??? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, jack_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("aysnd", ay8910_r, ay8910_data_w)
AM_RANGE(0x80, 0x80) AM_DEVWRITE("aysnd", ay8910_address_w)
diff --git a/src/mame/drivers/jackal.c b/src/mame/drivers/jackal.c
index 5739aee36e0..45e42932ee3 100644
--- a/src/mame/drivers/jackal.c
+++ b/src/mame/drivers/jackal.c
@@ -163,7 +163,7 @@ static WRITE8_HANDLER( jackal_spriteram_w )
*
*************************************/
-static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, jackal_state )
AM_RANGE(0x0000, 0x0003) AM_RAM AM_BASE_MEMBER(jackal_state, m_videoctrl) // scroll + other things
AM_RANGE(0x0004, 0x0004) AM_WRITE(jackal_flipscreen_w)
AM_RANGE(0x0010, 0x0010) AM_READ_PORT("DSW1")
@@ -182,7 +182,7 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8, jackal_state )
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE_MEMBER(jackal_state, m_paletteram) // self test only checks 0x4000-0x423f, 007327 should actually go up to 4fff
AM_RANGE(0x6000, 0x605f) AM_RAM // SOUND RAM (Self test check 0x6000-605f, 0x7c00-0x7fff)
diff --git a/src/mame/drivers/jackie.c b/src/mame/drivers/jackie.c
index b96b2890349..23205e85f92 100644
--- a/src/mame/drivers/jackie.c
+++ b/src/mame/drivers/jackie.c
@@ -340,12 +340,12 @@ static READ8_HANDLER( expram_r )
}
-static ADDRESS_MAP_START( jackie_prg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jackie_prg_map, AS_PROGRAM, 8, jackie_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xffff) AM_RAM AM_REGION("maincpu", 0xf000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jackie_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( jackie_io_map, AS_IO, 8, jackie_state )
AM_RANGE(0x0520, 0x0524) AM_WRITE(jackie_unk_reg1_lo_w)
AM_RANGE(0x0d20, 0x0d24) AM_WRITE(jackie_unk_reg1_hi_w)
AM_RANGE(0x0560, 0x0564) AM_WRITE(jackie_unk_reg2_lo_w)
diff --git a/src/mame/drivers/jackpool.c b/src/mame/drivers/jackpool.c
index be89bdd9aaa..e65db9b726e 100644
--- a/src/mame/drivers/jackpool.c
+++ b/src/mame/drivers/jackpool.c
@@ -166,7 +166,7 @@ static WRITE16_HANDLER( jackpool_io_w )
#endif
}
-static ADDRESS_MAP_START( jackpool_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( jackpool_mem, AS_PROGRAM, 16, jackpool_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x120000, 0x1200ff) AM_RAM
diff --git a/src/mame/drivers/jaguar.c b/src/mame/drivers/jaguar.c
index 2cb38497b26..4b9a760c17d 100644
--- a/src/mame/drivers/jaguar.c
+++ b/src/mame/drivers/jaguar.c
@@ -1181,7 +1181,7 @@ static WRITE16_HANDLER( jaguar_gpu_clut_w16 ) { if (!(offset&1)) { jaguar_gpu_cl
static READ16_HANDLER( jaguar_gpu_ram_r16 ) { if (!(offset&1)) { return jaguar_gpu_ram_r(space, offset>>1, mem_mask<<16) >> 16; } else { return jaguar_gpu_ram_r(space, offset>>1, mem_mask); } }
static WRITE16_HANDLER( jaguar_gpu_ram_w16 ) { if (!(offset&1)) { jaguar_gpu_ram_w(space, offset>>1, data << 16, mem_mask << 16); } else { jaguar_gpu_ram_w(space, offset>>1, data, mem_mask); } }
-static ADDRESS_MAP_START( jaguar_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( jaguar_map, AS_PROGRAM, 16, cojag_state )
ADDRESS_MAP_GLOBAL_MASK(0xffffff)
AM_RANGE(0x000000, 0x1fffff) AM_MIRROR(0x200000) AM_READWRITE( jaguar_shared_ram_r16, jaguar_shared_ram_w16 );
AM_RANGE(0x800000, 0xdfffff) AM_READWRITE( jaguar_cart_base_r16, jaguar_cart_base_w16 )
@@ -1209,7 +1209,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( r3000_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( r3000_map, AS_PROGRAM, 32, cojag_state )
AM_RANGE(0x04000000, 0x047fffff) AM_RAM AM_BASE(&jaguar_shared_ram) AM_SHARE("share1")
AM_RANGE(0x04800000, 0x04bfffff) AM_ROMBANK("bank1")
AM_RANGE(0x04c00000, 0x04dfffff) AM_ROMBANK("bank2")
@@ -1238,7 +1238,7 @@ static ADDRESS_MAP_START( r3000_map, AS_PROGRAM, 32 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m68020_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( m68020_map, AS_PROGRAM, 32, cojag_state )
AM_RANGE(0x000000, 0x7fffff) AM_RAM AM_BASE(&jaguar_shared_ram) AM_SHARE("share1")
AM_RANGE(0x800000, 0x9fffff) AM_ROM AM_REGION("user1", 0) AM_BASE_MEMBER(cojag_state, m_rom_base)
AM_RANGE(0xa00000, 0xa1ffff) AM_RAM
@@ -1271,7 +1271,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( gpu_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( gpu_map, AS_PROGRAM, 32, cojag_state )
AM_RANGE(0x000000, 0x7fffff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x800000, 0xbfffff) AM_ROMBANK("bank8")
AM_RANGE(0xc00000, 0xdfffff) AM_ROMBANK("bank9")
@@ -1292,7 +1292,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( dsp_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( dsp_map, AS_PROGRAM, 32, cojag_state )
AM_RANGE(0x000000, 0x7fffff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x800000, 0xbfffff) AM_ROMBANK("bank8")
AM_RANGE(0xc00000, 0xdfffff) AM_ROMBANK("bank9")
@@ -1305,7 +1305,7 @@ ADDRESS_MAP_END
/* ToDo, these maps SHOULD be merged with the ones above */
-static ADDRESS_MAP_START( jag_gpu_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( jag_gpu_map, AS_PROGRAM, 32, cojag_state )
ADDRESS_MAP_GLOBAL_MASK(0xffffff)
AM_RANGE(0x000000, 0x1fffff) AM_RAM AM_BASE(&jaguar_shared_ram) AM_MIRROR(0x200000) AM_SHARE("share1") AM_REGION("maincpu", 0)
AM_RANGE(0x800000, 0xdfffff) AM_ROM AM_BASE(&cart_base) AM_SIZE(&cart_size) AM_SHARE("share15") AM_REGION("maincpu", 0x800000)
@@ -1323,7 +1323,7 @@ static ADDRESS_MAP_START( jag_gpu_map, AS_PROGRAM, 32 )
AM_RANGE(0xf1d000, 0xf1dfff) AM_ROM AM_BASE(&high_rom_base) AM_REGION("maincpu", 0xf1d000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jag_dsp_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( jag_dsp_map, AS_PROGRAM, 32, cojag_state )
ADDRESS_MAP_GLOBAL_MASK(0xffffff)
AM_RANGE(0x000000, 0x1fffff) AM_MIRROR(0x200000) AM_RAM AM_SHARE("share1") AM_REGION("maincpu", 0)
AM_RANGE(0x800000, 0xdfffff) AM_ROM AM_SHARE("share15") AM_REGION("maincpu", 0x800000)
diff --git a/src/mame/drivers/jailbrek.c b/src/mame/drivers/jailbrek.c
index 22d4c24f9ae..63874cb59a8 100644
--- a/src/mame/drivers/jailbrek.c
+++ b/src/mame/drivers/jailbrek.c
@@ -130,7 +130,7 @@ static WRITE8_DEVICE_HANDLER( jailbrek_speech_w )
vlm5030_rst(device, (data >> 2) & 1);
}
-static ADDRESS_MAP_START( jailbrek_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jailbrek_map, AS_PROGRAM, 8, jailbrek_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(jailbrek_colorram_w) AM_BASE_MEMBER(jailbrek_state, m_colorram)
AM_RANGE(0x0800, 0x0fff) AM_RAM_WRITE(jailbrek_videoram_w) AM_BASE_MEMBER(jailbrek_state, m_videoram)
AM_RANGE(0x1000, 0x10bf) AM_RAM AM_BASE_SIZE_MEMBER(jailbrek_state, m_spriteram, m_spriteram_size)
diff --git a/src/mame/drivers/jalmah.c b/src/mame/drivers/jalmah.c
index 2e934c4c6f3..90c85b0a810 100644
--- a/src/mame/drivers/jalmah.c
+++ b/src/mame/drivers/jalmah.c
@@ -969,7 +969,7 @@ static WRITE16_HANDLER( jalmah_flip_screen_w )
// popmessage("%04x",data);
}
-static ADDRESS_MAP_START( jalmah, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( jalmah, AS_PROGRAM, 16, jalmah_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("DSW")
@@ -993,7 +993,7 @@ static ADDRESS_MAP_START( jalmah, AS_PROGRAM, 16 )
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE_MEMBER(jalmah_state, m_jm_mcu_code)/*extra RAM for MCU code prg (NOT ON REAL HW!!!)*/
ADDRESS_MAP_END
-static ADDRESS_MAP_START( urashima, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( urashima, AS_PROGRAM, 16, jalmah_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("DSW")
diff --git a/src/mame/drivers/jangou.c b/src/mame/drivers/jangou.c
index 11b469019e6..94157268a94 100644
--- a/src/mame/drivers/jangou.c
+++ b/src/mame/drivers/jangou.c
@@ -385,12 +385,12 @@ static WRITE8_HANDLER( slave_com_w )
*
*************************************/
-static ADDRESS_MAP_START( cpu0_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu0_map, AS_PROGRAM, 8, jangou_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu0_io, AS_IO, 8 )
+static ADDRESS_MAP_START( cpu0_io, AS_IO, 8, jangou_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01,0x01) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x02,0x03) AM_DEVWRITE("aysnd", ay8910_data_address_w)
@@ -404,11 +404,11 @@ static ADDRESS_MAP_START( cpu0_io, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8, jangou_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu1_io, AS_IO, 8 )
+static ADDRESS_MAP_START( cpu1_io, AS_IO, 8, jangou_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00,0x00) AM_READ(sound_latch_r)
AM_RANGE(0x01,0x01) AM_WRITE(cvsd_w)
@@ -422,18 +422,18 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( jngolady_cpu0_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jngolady_cpu0_map, AS_PROGRAM, 8, jangou_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xe000, 0xe000) AM_READWRITE(master_com_r,master_com_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jngolady_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jngolady_cpu1_map, AS_PROGRAM, 8, jangou_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jngolady_cpu1_io, AS_IO, 8 )
+static ADDRESS_MAP_START( jngolady_cpu1_io, AS_IO, 8, jangou_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00,0x00) AM_READ(sound_latch_r)
AM_RANGE(0x01,0x01) AM_WRITE(adpcm_w)
@@ -441,7 +441,7 @@ static ADDRESS_MAP_START( jngolady_cpu1_io, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nsc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nsc_map, AS_PROGRAM, 8, jangou_state )
AM_RANGE(0x0000, 0x007f) AM_RAM //internal ram for irq etc.
AM_RANGE(0x8000, 0x8000) AM_WRITENOP //write-only,irq related?
AM_RANGE(0x9000, 0x9000) AM_READWRITE(slave_com_r,slave_com_w)
@@ -455,13 +455,13 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( cntrygrl_cpu0_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cntrygrl_cpu0_map, AS_PROGRAM, 8, jangou_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
// AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cntrygrl_cpu0_io, AS_IO, 8 )
+static ADDRESS_MAP_START( cntrygrl_cpu0_io, AS_IO, 8, jangou_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01,0x01) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x02,0x03) AM_DEVWRITE("aysnd", ay8910_data_address_w)
@@ -480,12 +480,12 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( roylcrdn_cpu0_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( roylcrdn_cpu0_map, AS_PROGRAM, 8, jangou_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x7000, 0x77ff) AM_RAM AM_SHARE("nvram") /* MK48Z02B-15 ZEROPOWER RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( roylcrdn_cpu0_io, AS_IO, 8 )
+static ADDRESS_MAP_START( roylcrdn_cpu0_io, AS_IO, 8, jangou_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01,0x01) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x02,0x03) AM_DEVWRITE("aysnd", ay8910_data_address_w)
diff --git a/src/mame/drivers/jankenmn.c b/src/mame/drivers/jankenmn.c
index a126d94bea5..5cf74803438 100644
--- a/src/mame/drivers/jankenmn.c
+++ b/src/mame/drivers/jankenmn.c
@@ -225,13 +225,13 @@ static CUSTOM_INPUT( jankenmn_hopper_status_r )
* Memory Map Definition *
*********************************************/
-static ADDRESS_MAP_START( jankenmn_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jankenmn_map, AS_PROGRAM, 8, jankenmn_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jankenmn_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( jankenmn_port_map, AS_IO, 8, jankenmn_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ctc", z80ctc_r, z80ctc_w)
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE_MODERN("ppi8255_0", i8255_device, read, write)
diff --git a/src/mame/drivers/jantotsu.c b/src/mame/drivers/jantotsu.c
index 55726f21311..1f18d6d4c1d 100644
--- a/src/mame/drivers/jantotsu.c
+++ b/src/mame/drivers/jantotsu.c
@@ -319,13 +319,13 @@ static void jan_adpcm_int( device_t *device )
*
*************************************/
-static ADDRESS_MAP_START( jantotsu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jantotsu_map, AS_PROGRAM, 8, jantotsu_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xe000, 0xffff) AM_READWRITE(jantotsu_bitmap_r, jantotsu_bitmap_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jantotsu_io, AS_IO, 8 )
+static ADDRESS_MAP_START( jantotsu_io, AS_IO, 8, jantotsu_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW1") AM_DEVWRITE("sn1", sn76496_w)
AM_RANGE(0x01, 0x01) AM_READ(jantotsu_dsw2_r) AM_DEVWRITE("sn2", sn76496_w)
diff --git a/src/mame/drivers/jchan.c b/src/mame/drivers/jchan.c
index d92d6011db4..81660b4199a 100644
--- a/src/mame/drivers/jchan.c
+++ b/src/mame/drivers/jchan.c
@@ -492,7 +492,7 @@ static WRITE16_HANDLER( jchan_suprnova_sprite32regs_2_w )
}
-static ADDRESS_MAP_START( jchan_main, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( jchan_main, AS_PROGRAM, 16, jchan_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // Work RAM - [A] grid tested, cleared ($9d6-$a54)
@@ -517,7 +517,7 @@ static ADDRESS_MAP_START( jchan_main, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jchan_sub, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( jchan_sub, AS_PROGRAM, 16, jchan_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM - grid tested, cleared ($612-$6dc)
diff --git a/src/mame/drivers/jedi.c b/src/mame/drivers/jedi.c
index b08a3011f96..9ad58ad4a4b 100644
--- a/src/mame/drivers/jedi.c
+++ b/src/mame/drivers/jedi.c
@@ -268,7 +268,7 @@ static WRITE8_HANDLER( nvram_enable_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, jedi_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0300) AM_RAM_WRITE(nvram_data_w) AM_SHARE("nvram")
AM_RANGE(0x0c00, 0x0c00) AM_MIRROR(0x03fe) AM_READ_PORT("0c00") AM_WRITENOP
diff --git a/src/mame/drivers/jokrwild.c b/src/mame/drivers/jokrwild.c
index 6eaf12f8fbc..4b4d9da4bc4 100644
--- a/src/mame/drivers/jokrwild.c
+++ b/src/mame/drivers/jokrwild.c
@@ -191,7 +191,7 @@ static READ8_HANDLER( rng_r )
* Memory Map Information *
*************************/
-static ADDRESS_MAP_START( jokrwild_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jokrwild_map, AS_PROGRAM, 8, jokrwild_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM_WRITE(jokrwild_videoram_w) AM_BASE_MEMBER(jokrwild_state, m_videoram)
AM_RANGE(0x0400, 0x07ff) AM_RAM //FIXME: backup RAM
AM_RANGE(0x2000, 0x23ff) AM_RAM_WRITE(jokrwild_colorram_w) AM_BASE_MEMBER(jokrwild_state, m_colorram)
diff --git a/src/mame/drivers/jollyjgr.c b/src/mame/drivers/jollyjgr.c
index 653ff3c63eb..5e9eec3ff98 100644
--- a/src/mame/drivers/jollyjgr.c
+++ b/src/mame/drivers/jollyjgr.c
@@ -193,7 +193,7 @@ static WRITE8_HANDLER( jollyjgr_coin_lookout_w )
*
*************************************/
-static ADDRESS_MAP_START( jollyjgr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jollyjgr_map, AS_PROGRAM, 8, jollyjgr_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8ff8, 0x8ff8) AM_READ_PORT("DSW1")
@@ -210,7 +210,7 @@ static ADDRESS_MAP_START( jollyjgr_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xffff) AM_RAM AM_BASE_MEMBER(jollyjgr_state, m_bitmap)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fspider_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fspider_map, AS_PROGRAM, 8, jollyjgr_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8ff8, 0x8ff8) AM_READ_PORT("DSW1")
diff --git a/src/mame/drivers/jongkyo.c b/src/mame/drivers/jongkyo.c
index ba56375593b..feb7899ef9a 100644
--- a/src/mame/drivers/jongkyo.c
+++ b/src/mame/drivers/jongkyo.c
@@ -217,7 +217,7 @@ static WRITE8_HANDLER( unknown_w )
*
*************************************/
-static ADDRESS_MAP_START( jongkyo_memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jongkyo_memmap, AS_PROGRAM, 8, jongkyo_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITE(videoram2_w) // wrong, this doesn't seem to be video ram on write..
AM_RANGE(0x4000, 0x6bff) AM_ROM // fixed rom
AM_RANGE(0x6c00, 0x6fff) AM_ROMBANK("bank1") // banked (8 banks)
@@ -226,7 +226,7 @@ static ADDRESS_MAP_START( jongkyo_memmap, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jongkyo_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( jongkyo_portmap, AS_IO, 8, jongkyo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
// R 01 keyboard
AM_RANGE(0x01, 0x01) AM_DEVREAD("aysnd", ay8910_r)
diff --git a/src/mame/drivers/jpmimpct.c b/src/mame/drivers/jpmimpct.c
index d5a2e01897e..8e1b381760a 100644
--- a/src/mame/drivers/jpmimpct.c
+++ b/src/mame/drivers/jpmimpct.c
@@ -588,7 +588,7 @@ static WRITE16_HANDLER( jpmio_w )
* Main CPU memory handlers
*
*************************************/
-static ADDRESS_MAP_START( m68k_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( m68k_program_map, AS_PROGRAM, 16, jpmimpct_state )
AM_RANGE(0x00000000, 0x000fffff) AM_ROM
AM_RANGE(0x00100000, 0x001fffff) AM_ROM
AM_RANGE(0x00400000, 0x00403fff) AM_RAM AM_SHARE("nvram")
@@ -618,7 +618,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( tms_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tms_program_map, AS_PROGRAM, 16, jpmimpct_state )
AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, tms34010_io_register_w)
AM_RANGE(0x00000000, 0x003fffff) AM_MIRROR(0xf8000000) AM_RAM AM_BASE_MEMBER(jpmimpct_state, m_vram)
AM_RANGE(0x00800000, 0x00ffffff) AM_MIRROR(0xf8000000) AM_ROM AM_REGION("user1", 0x100000)
@@ -1223,7 +1223,7 @@ static READ16_HANDLER( ump_r )
* Main CPU memory handlers
*
*************************************/
-static ADDRESS_MAP_START( awp68k_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( awp68k_program_map, AS_PROGRAM, 16, jpmimpct_state )
AM_RANGE(0x00000000, 0x000fffff) AM_ROM
AM_RANGE(0x00100000, 0x001fffff) AM_ROM
AM_RANGE(0x00400000, 0x00403fff) AM_RAM AM_SHARE("nvram")
diff --git a/src/mame/drivers/jpmsys5.c b/src/mame/drivers/jpmsys5.c
index 9bba92a0537..d859d77111d 100644
--- a/src/mame/drivers/jpmsys5.c
+++ b/src/mame/drivers/jpmsys5.c
@@ -308,7 +308,7 @@ static READ16_DEVICE_HANDLER( jpm_upd7759_r )
*
*************************************/
-static ADDRESS_MAP_START( 68000_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( 68000_map, AS_PROGRAM, 16, jpmsys5_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x01fffe, 0x01ffff) AM_WRITE(rombank_w)
AM_RANGE(0x020000, 0x03ffff) AM_ROMBANK("bank1")
@@ -692,7 +692,7 @@ MACHINE_CONFIG_END
-static ADDRESS_MAP_START( 68000_awp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( 68000_awp_map, AS_PROGRAM, 16, jpmsys5_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x01fffe, 0x01ffff) AM_WRITE(rombank_w)
AM_RANGE(0x020000, 0x03ffff) AM_ROMBANK("bank1")
diff --git a/src/mame/drivers/jrpacman.c b/src/mame/drivers/jrpacman.c
index ff4c7b760d1..27f2e3716b2 100644
--- a/src/mame/drivers/jrpacman.c
+++ b/src/mame/drivers/jrpacman.c
@@ -132,7 +132,7 @@ static WRITE8_HANDLER( irq_mask_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, jrpacman_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM_WRITE(jrpacman_videoram_w) AM_BASE_MEMBER(jrpacman_state, m_videoram)
AM_RANGE(0x4800, 0x4fef) AM_RAM
@@ -156,7 +156,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( port_map, AS_IO, 8, jrpacman_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0, 0) AM_WRITE(jrpacman_interrupt_vector_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/jubilee.c b/src/mame/drivers/jubilee.c
index aca4a22a7c8..f7380fcb827 100644
--- a/src/mame/drivers/jubilee.c
+++ b/src/mame/drivers/jubilee.c
@@ -160,7 +160,7 @@ static INTERRUPT_GEN( jubileep_interrupt )
* Memory Map Information *
*************************/
//59a
-static ADDRESS_MAP_START( jubileep_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jubileep_map, AS_PROGRAM, 8, jubilee_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x3000, 0x30ff) AM_WRITE(jubileep_videoram_w) AM_BASE_MEMBER(jubilee_state, m_videoram) /* wrong... just placed somewhere */
@@ -182,7 +182,7 @@ static READ8_HANDLER(unk_r)
return (space->machine().rand() & 0xff);
}
-static ADDRESS_MAP_START( jubileep_cru_map, AS_IO, 8 )
+static ADDRESS_MAP_START( jubileep_cru_map, AS_IO, 8, jubilee_state )
// AM_RANGE(0x0000, 0xffff) AM_READ(unk_r)
// AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("crtc", mc6845_status_r, mc6845_address_w)
// AM_RANGE(0x01, 0x01) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w)
diff --git a/src/mame/drivers/junofrst.c b/src/mame/drivers/junofrst.c
index 5022c187b84..75f4d4cef1d 100644
--- a/src/mame/drivers/junofrst.c
+++ b/src/mame/drivers/junofrst.c
@@ -276,7 +276,7 @@ static WRITE8_HANDLER( junofrst_irq_enable_w )
device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, junofrst_state )
AM_RANGE(0x0000, 0x7fff) AM_RAM AM_BASE_MEMBER(junofrst_state, m_videoram)
AM_RANGE(0x8000, 0x800f) AM_RAM AM_BASE_MEMBER(junofrst_state, m_paletteram)
AM_RANGE(0x8010, 0x8010) AM_READ_PORT("DSW2")
@@ -299,7 +299,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, junofrst_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_r)
@@ -311,12 +311,12 @@ static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, junofrst_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, junofrst_state )
AM_RANGE(0x00, 0xff) AM_READ(soundlatch2_r)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE("dac", dac_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(i8039_irqen_and_status_w)
diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c
index 9d6a531f7ea..77741734689 100644
--- a/src/mame/drivers/kaneko16.c
+++ b/src/mame/drivers/kaneko16.c
@@ -368,7 +368,7 @@ static WRITE16_HANDLER( kaneko16_eeprom_w )
The Berlin Wall
***************************************************************************/
-static ADDRESS_MAP_START( berlwall, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( berlwall, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // Work RAM
AM_RANGE(0x30e000, 0x30ffff) AM_RAM AM_SHARE("spriteram") // Sprites
@@ -412,7 +412,7 @@ static WRITE16_DEVICE_HANDLER( bakubrkr_oki_bank_sw )
}
}
-static ADDRESS_MAP_START( bakubrkr, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bakubrkr, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM
AM_RANGE(0x400000, 0x40001f) AM_DEVREAD("ay1", kaneko16_YM2149_r) // Sound
@@ -446,7 +446,7 @@ ADDRESS_MAP_END
Blaze On
***************************************************************************/
-static ADDRESS_MAP_START( blazeon, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( blazeon, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x300000, 0x30ffff) AM_RAM // Work RAM
AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // Palette
@@ -505,7 +505,7 @@ static WRITE16_HANDLER( bloodwar_coin_lockout_w )
}
}
-static ADDRESS_MAP_START( bloodwar, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bloodwar, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_MEMBER(kaneko16_state, m_mcu_ram) // Shared With MCU
@@ -567,7 +567,7 @@ static WRITE16_DEVICE_HANDLER( bonkadv_oki_1_bank_w )
}
-static ADDRESS_MAP_START( bonkadv, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bonkadv, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_MEMBER(kaneko16_state, m_mcu_ram) // Shared With MCU
@@ -643,7 +643,7 @@ static WRITE16_DEVICE_HANDLER( gtmr_oki_1_bank_w )
}
}
-static ADDRESS_MAP_START( gtmr_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gtmr_map, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x000000, 0x0ffffd) AM_ROM // ROM
AM_RANGE(0x0ffffe, 0x0fffff) AM_READ(gtmr_wheel_r) // Wheel Value
@@ -719,7 +719,7 @@ static READ16_HANDLER( gtmr2_IN1_r )
return (input_port_read(space->machine(), "P2") & (input_port_read(space->machine(), "FAKE") | ~0x7100));
}
-static ADDRESS_MAP_START( gtmr2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gtmr2_map, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x000000, 0x0ffffd) AM_ROM // ROM
AM_RANGE(0x0ffffe, 0x0fffff) AM_READ(gtmr2_wheel_r) // Wheel Value
@@ -772,7 +772,7 @@ ADDRESS_MAP_END
Magical Crystal
***************************************************************************/
-static ADDRESS_MAP_START( mgcrystl, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mgcrystl, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x300000, 0x30ffff) AM_RAM // Work RAM
AM_RANGE(0x400000, 0x40001f) AM_DEVREADWRITE("ay1", kaneko16_YM2149_r, kaneko16_YM2149_w) // Sound
@@ -837,7 +837,7 @@ static WRITE16_HANDLER( brapboys_oki_bank_w )
}
-static ADDRESS_MAP_START( shogwarr, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( shogwarr, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE_MEMBER(kaneko16_state, m_mainram) // Work RAM
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(calc3_mcu_ram_w) AM_BASE_MEMBER(kaneko16_state, m_mcu_ram) // Shared With MCU
@@ -879,12 +879,12 @@ ADDRESS_MAP_END
Blaze On
***************************************************************************/
-static ADDRESS_MAP_START( blazeon_soundmem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( blazeon_soundmem, AS_PROGRAM, 8, kaneko16_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM // RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( blazeon_soundport, AS_IO, 8 )
+static ADDRESS_MAP_START( blazeon_soundport, AS_IO, 8, kaneko16_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x06, 0x06) AM_READ(soundlatch_r)
@@ -2149,12 +2149,12 @@ static const UINT16 shogwarr_default_eeprom[64] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0xFFFF
};
-static ADDRESS_MAP_START( shogwarr_oki1_map, AS_0, 8 )
+static ADDRESS_MAP_START( shogwarr_oki1_map, AS_0, 8, kaneko16_state )
AM_RANGE(0x00000, 0x2ffff) AM_ROM
AM_RANGE(0x30000, 0x3ffff) AM_ROMBANK("bank10")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shogwarr_oki2_map, AS_0, 8 )
+static ADDRESS_MAP_START( shogwarr_oki2_map, AS_0, 8, kaneko16_state )
AM_RANGE(0x00000, 0x3ffff) AM_ROMBANK("bank11")
ADDRESS_MAP_END
@@ -2206,7 +2206,7 @@ static const UINT16 brapboys_default_eeprom[64] = {
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0035, 0xFFFF, 0xFFFF, 0xFFFF
};
-static ADDRESS_MAP_START( brapboys_oki2_map, AS_0, 8 )
+static ADDRESS_MAP_START( brapboys_oki2_map, AS_0, 8, kaneko16_state )
AM_RANGE(0x00000, 0x1ffff) AM_ROM
AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("bank11")
ADDRESS_MAP_END
diff --git a/src/mame/drivers/kangaroo.c b/src/mame/drivers/kangaroo.c
index d183a437dec..35499771f1f 100644
--- a/src/mame/drivers/kangaroo.c
+++ b/src/mame/drivers/kangaroo.c
@@ -252,7 +252,7 @@ static WRITE8_HANDLER( kangaroo_coin_counter_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, kangaroo_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_WRITE(kangaroo_videoram_w)
AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("bank1")
@@ -272,7 +272,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, kangaroo_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0c00) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x0fff) AM_READ(soundlatch_r)
@@ -282,7 +282,7 @@ ADDRESS_MAP_END
/* yes, this is identical */
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, kangaroo_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0c00) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x0fff) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/karnov.c b/src/mame/drivers/karnov.c
index fada149e732..9b372b4bd36 100644
--- a/src/mame/drivers/karnov.c
+++ b/src/mame/drivers/karnov.c
@@ -427,7 +427,7 @@ static READ16_HANDLER( karnov_control_r )
*
*************************************/
-static ADDRESS_MAP_START( karnov_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( karnov_map, AS_PROGRAM, 16, karnov_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x063fff) AM_RAM AM_BASE_MEMBER(karnov_state, m_ram)
AM_RANGE(0x080000, 0x080fff) AM_RAM AM_SHARE("spriteram")
@@ -440,7 +440,7 @@ static ADDRESS_MAP_START( karnov_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( karnov_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( karnov_sound_map, AS_PROGRAM, 8, karnov_state )
AM_RANGE(0x0000, 0x05ff) AM_RAM
AM_RANGE(0x0800, 0x0800) AM_READ(soundlatch_r)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym1", ym2203_w)
diff --git a/src/mame/drivers/kas89.c b/src/mame/drivers/kas89.c
index 21b9fad519b..f52bf0a18e4 100644
--- a/src/mame/drivers/kas89.c
+++ b/src/mame/drivers/kas89.c
@@ -499,7 +499,7 @@ static WRITE8_HANDLER( led_mux_select_w )
* Memory Map *
**************************************/
-static ADDRESS_MAP_START( kas89_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kas89_map, AS_PROGRAM, 8, kas89_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x0037, 0x0037) AM_WRITENOP /* WTF? */
AM_RANGE(0x8000, 0x81ff) AM_RAM /* empty */
@@ -514,7 +514,7 @@ static ADDRESS_MAP_START( kas89_map, AS_PROGRAM, 8 )
AM_RANGE(0x9800, 0x9fff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kas89_io, AS_IO, 8 )
+static ADDRESS_MAP_START( kas89_io, AS_IO, 8, kas89_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x43) AM_DEVREADWRITE_MODERN("v9938", v9938_device, read, write)
AM_RANGE(0x80, 0x80) AM_WRITE(mux_w)
@@ -563,12 +563,12 @@ ADDRESS_MAP_END
4aa1 : ret
*/
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, kas89_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_io, AS_IO, 8 )
+static ADDRESS_MAP_START( audio_io, AS_IO, 8, kas89_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(int_ack_w) // comm out (1st Z80). seems to write here the value previously read through soundlatch (port 0x02).
AM_RANGE(0x02, 0x02) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/kchamp.c b/src/mame/drivers/kchamp.c
index 69cbd6525ea..176bb73fcf5 100644
--- a/src/mame/drivers/kchamp.c
+++ b/src/mame/drivers/kchamp.c
@@ -108,7 +108,7 @@ static WRITE8_HANDLER( sound_msm_w )
state->m_msm_play_lo_nibble = 1;
}
-static ADDRESS_MAP_START( kchampvs_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kchampvs_map, AS_PROGRAM, 8, kchamp_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(kchamp_videoram_w) AM_BASE_MEMBER(kchamp_state, m_videoram)
@@ -118,7 +118,7 @@ static ADDRESS_MAP_START( kchampvs_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kchampvs_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( kchampvs_io_map, AS_IO, 8, kchamp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") AM_WRITE(kchamp_flipscreen_w)
AM_RANGE(0x01, 0x01) AM_WRITE(control_w)
@@ -128,12 +128,12 @@ static ADDRESS_MAP_START( kchampvs_io_map, AS_IO, 8 )
AM_RANGE(0xc0, 0xc0) AM_READ_PORT("DSW")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kchampvs_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kchampvs_sound_map, AS_PROGRAM, 8, kchamp_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kchampvs_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( kchampvs_sound_io_map, AS_IO, 8, kchamp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_data_address_w)
AM_RANGE(0x01, 0x01) AM_READ(soundlatch_r)
@@ -163,7 +163,7 @@ static WRITE8_HANDLER( kc_sound_control_w )
// DAC_set_volume(0, (data == 1) ? 255 : 0, 0);
}
-static ADDRESS_MAP_START( kchamp_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kchamp_map, AS_PROGRAM, 8, kchamp_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE(kchamp_videoram_w) AM_BASE_MEMBER(kchamp_state, m_videoram)
@@ -172,7 +172,7 @@ static ADDRESS_MAP_START( kchamp_map, AS_PROGRAM, 8 )
AM_RANGE(0xeb00, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kchamp_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( kchamp_io_map, AS_IO, 8, kchamp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_READ_PORT("DSW") AM_WRITE(kchamp_flipscreen_w)
AM_RANGE(0x81, 0x81) AM_WRITE(control_w)
@@ -182,12 +182,12 @@ static ADDRESS_MAP_START( kchamp_io_map, AS_IO, 8 )
AM_RANGE(0xa8, 0xa8) AM_READWRITE(sound_reset_r, sound_command_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kchamp_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kchamp_sound_map, AS_PROGRAM, 8, kchamp_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe2ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kchamp_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( kchamp_sound_io_map, AS_IO, 8, kchamp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_data_address_w)
AM_RANGE(0x02, 0x03) AM_DEVWRITE("ay2", ay8910_data_address_w)
diff --git a/src/mame/drivers/kickgoal.c b/src/mame/drivers/kickgoal.c
index 1b50cb49268..c8d9ac284d0 100644
--- a/src/mame/drivers/kickgoal.c
+++ b/src/mame/drivers/kickgoal.c
@@ -480,7 +480,7 @@ static WRITE16_HANDLER( kickgoal_eeprom_w )
/* Memory Maps *****************************************************************/
-static ADDRESS_MAP_START( kickgoal_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( kickgoal_program_map, AS_PROGRAM, 16, kickgoal_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
/// AM_RANGE(0x30001e, 0x30001f) AM_DEVWRITE("oki", kickgoal_snd_w)
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("P1_P2")
@@ -504,11 +504,11 @@ ADDRESS_MAP_END
/* $000 - 7FF PIC16C57 Internal Program ROM. Note: code is 12bits wide */
/* $000 - 07F PIC16C57 Internal Data RAM */
-static ADDRESS_MAP_START( kickgoal_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( kickgoal_sound_io_map, AS_IO, 8, kickgoal_state )
/* Unknown without the PIC dump */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( actionhw_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( actionhw_io_map, AS_IO, 8, kickgoal_state )
/* Unknown without the PIC dump */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/kingdrby.c b/src/mame/drivers/kingdrby.c
index 3dad2da7314..d91019c8ae3 100644
--- a/src/mame/drivers/kingdrby.c
+++ b/src/mame/drivers/kingdrby.c
@@ -381,19 +381,19 @@ static WRITE8_HANDLER( led_array_w )
*
*************************************/
-static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, kingdrby_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x3000, 0x33ff) AM_RAM AM_MIRROR(0xc00) AM_SHARE("share1")
AM_RANGE(0x4000, 0x43ff) AM_RAM_WRITE(sc0_vram_w) AM_BASE_MEMBER(kingdrby_state, m_vram)
AM_RANGE(0x5000, 0x53ff) AM_RAM_WRITE(sc0_attr_w) AM_BASE_MEMBER(kingdrby_state, m_attr)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( master_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( master_io_map, AS_IO, 8, kingdrby_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_NOP //interrupt ack
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8, kingdrby_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x3000, 0x3fff) AM_ROM //sound rom, tested for the post check
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_SHARE("nvram") //backup ram
@@ -413,7 +413,7 @@ static WRITE8_HANDLER( kingdrbb_lamps_w )
// (same as the inputs but active high)
}
-static ADDRESS_MAP_START( slave_1986_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slave_1986_map, AS_PROGRAM, 8, kingdrby_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x3000, 0x3fff) AM_ROM //sound rom tested for the post check
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram") //backup ram
@@ -432,28 +432,28 @@ static ADDRESS_MAP_START( slave_1986_map, AS_PROGRAM, 8 )
AM_RANGE(0x7c00, 0x7c00) AM_READ_PORT("DSW")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( slave_io_map, AS_IO, 8, kingdrby_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_NOP //interrupt ack
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, kingdrby_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, kingdrby_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x40, 0x41) AM_DEVWRITE("aysnd", ay8910_data_address_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cowrace_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cowrace_sound_map, AS_PROGRAM, 8, kingdrby_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cowrace_sound_io, AS_IO, 8 )
+static ADDRESS_MAP_START( cowrace_sound_io, AS_IO, 8, kingdrby_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x41) AM_DEVWRITE("aysnd", ym2203_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/kingobox.c b/src/mame/drivers/kingobox.c
index 3de2f8817f4..d30261bd103 100644
--- a/src/mame/drivers/kingobox.c
+++ b/src/mame/drivers/kingobox.c
@@ -48,7 +48,7 @@ static WRITE8_HANDLER( sound_command_w )
}
-static ADDRESS_MAP_START( kingobox_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kingobox_map, AS_PROGRAM, 8, kingofb_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc3ff) AM_RAM /* work ram */
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("share2") /* shared with sprite cpu */
@@ -68,7 +68,7 @@ static ADDRESS_MAP_START( kingobox_map, AS_PROGRAM, 8 )
AM_RANGE(0xfc05, 0xfc05) AM_READ_PORT("EXTRA")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kingobox_video_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kingobox_video_map, AS_PROGRAM, 8, kingofb_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM /* work ram */
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("share1") /* shared with main */
@@ -78,7 +78,7 @@ static ADDRESS_MAP_START( kingobox_video_map, AS_PROGRAM, 8 )
AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(kingofb_colorram2_w) AM_BASE_MEMBER(kingofb_state, m_colorram2) /* foreground colorram */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kingobox_sprite_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kingobox_sprite_map, AS_PROGRAM, 8, kingofb_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM /* work ram */
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("share2") /* shared with main */
@@ -86,13 +86,13 @@ static ADDRESS_MAP_START( kingobox_sprite_map, AS_PROGRAM, 8 )
AM_RANGE(0xc400, 0xc43f) AM_RAM /* something related to scroll? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kingobox_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kingobox_sound_map, AS_PROGRAM, 8, kingofb_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0x8000, 0x8000) AM_WRITENOP /* ??? */
AM_RANGE(0xc000, 0xc3ff) AM_RAM /* work ram */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kingobox_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( kingobox_sound_io_map, AS_IO, 8, kingofb_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVWRITE("dac", dac_w)
AM_RANGE(0x08, 0x08) AM_DEVREADWRITE("aysnd", ay8910_r, ay8910_data_w)
@@ -100,7 +100,7 @@ static ADDRESS_MAP_START( kingobox_sound_io_map, AS_IO, 8 )
ADDRESS_MAP_END
/* Ring King */
-static ADDRESS_MAP_START( ringking_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ringking_map, AS_PROGRAM, 8, kingofb_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc3ff) AM_RAM /* work ram */
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share2") /* shared with sprite cpu */
@@ -119,7 +119,7 @@ static ADDRESS_MAP_START( ringking_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf7ff) AM_RAM /* ???? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ringking_video_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ringking_video_map, AS_PROGRAM, 8, kingofb_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM /* work ram */
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share1") /* shared with main */
@@ -129,7 +129,7 @@ static ADDRESS_MAP_START( ringking_video_map, AS_PROGRAM, 8 )
AM_RANGE(0xa400, 0xa7ff) AM_RAM_WRITE(kingofb_colorram2_w) AM_BASE_MEMBER(kingofb_state, m_colorram2) /* foreground colorram */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ringking_sprite_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ringking_sprite_map, AS_PROGRAM, 8, kingofb_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM /* work ram */
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share2") /* shared with main */
@@ -137,7 +137,7 @@ static ADDRESS_MAP_START( ringking_sprite_map, AS_PROGRAM, 8 )
AM_RANGE(0xa400, 0xa43f) AM_RAM /* something related to scroll? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ringking_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( ringking_sound_io_map, AS_IO, 8, kingofb_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVWRITE("dac", dac_w)
AM_RANGE(0x02, 0x02) AM_DEVREAD("aysnd", ay8910_r)
diff --git a/src/mame/drivers/kingpin.c b/src/mame/drivers/kingpin.c
index 9cf486a9442..f7892de8312 100644
--- a/src/mame/drivers/kingpin.c
+++ b/src/mame/drivers/kingpin.c
@@ -99,12 +99,12 @@ INPUT_PORTS_END
/* Main CPU */
/* There's an OKI MSM5126-25RS in here - (2k RAM) */
/* A 3.6V battery traces directly to U19, rendering it nvram */
-static ADDRESS_MAP_START( kingpin_program_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kingpin_program_map, AS_PROGRAM, 8, kingpin_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kingpin_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( kingpin_io_map, AS_IO, 8, kingpin_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(io_read_missing_dips)
AM_RANGE(0x01, 0x01) AM_READ_PORT("DSW")
@@ -126,7 +126,7 @@ ADDRESS_MAP_END
/* Sound CPU */
/* There's an OKI MSM5126-25RS in here - (2k RAM) */
-static ADDRESS_MAP_START( kingpin_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kingpin_sound_map, AS_PROGRAM, 8, kingpin_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x8400, 0x8bff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/kinst.c b/src/mame/drivers/kinst.c
index 01f9424cacc..981731f4140 100644
--- a/src/mame/drivers/kinst.c
+++ b/src/mame/drivers/kinst.c
@@ -397,7 +397,7 @@ static WRITE32_HANDLER( kinst_control_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, kinst_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x0007ffff) AM_RAM AM_BASE_MEMBER(kinst_state, m_rambase)
AM_RANGE(0x08000000, 0x087fffff) AM_RAM AM_BASE_MEMBER(kinst_state, m_rambase2)
diff --git a/src/mame/drivers/klax.c b/src/mame/drivers/klax.c
index 523d3b86725..4165f9b01d6 100644
--- a/src/mame/drivers/klax.c
+++ b/src/mame/drivers/klax.c
@@ -83,7 +83,7 @@ static MACHINE_RESET( klax )
*
*************************************/
-static ADDRESS_MAP_START( klax_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( klax_map, AS_PROGRAM, 16, klax_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(atarigen_eeprom_r,atarigen_eeprom_w) AM_SHARE("eeprom")
AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE(atarigen_eeprom_enable_w)
diff --git a/src/mame/drivers/kncljoe.c b/src/mame/drivers/kncljoe.c
index 5f01c2df4b3..7c8699d889d 100644
--- a/src/mame/drivers/kncljoe.c
+++ b/src/mame/drivers/kncljoe.c
@@ -44,7 +44,7 @@ static WRITE8_HANDLER( sound_cmd_w )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, kncljoe_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(kncljoe_videoram_w) AM_BASE_MEMBER(kncljoe_state, m_videoram)
AM_RANGE(0xd000, 0xd001) AM_WRITE(kncljoe_scroll_w) AM_BASE_MEMBER(kncljoe_state, m_scrollregs)
@@ -108,14 +108,14 @@ static WRITE8_DEVICE_HANDLER(unused_w)
//unused - no MSM on the pcb
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, kncljoe_state )
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
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, kncljoe_state )
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_DEVREADWRITE("aysnd", m6803_port1_r, m6803_port1_w)
AM_RANGE(M6801_PORT2, M6801_PORT2) AM_DEVREADWRITE("aysnd", m6803_port2_r, m6803_port2_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/koftball.c b/src/mame/drivers/koftball.c
index aac245c0ad1..08908afe26a 100644
--- a/src/mame/drivers/koftball.c
+++ b/src/mame/drivers/koftball.c
@@ -154,7 +154,7 @@ static WRITE16_HANDLER(bmc_2_videoram_w)
state->m_tilemap_2->mark_tile_dirty(offset);
}
-static ADDRESS_MAP_START( koftball_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( koftball_mem, AS_PROGRAM, 16, koftball_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x220000, 0x22ffff) AM_RAM AM_BASE_MEMBER(koftball_state, m_main_ram)
diff --git a/src/mame/drivers/koikoi.c b/src/mame/drivers/koikoi.c
index aa6947b587b..7b96667771a 100644
--- a/src/mame/drivers/koikoi.c
+++ b/src/mame/drivers/koikoi.c
@@ -219,7 +219,7 @@ static WRITE8_HANDLER( io_w )
*
*************************************/
-static ADDRESS_MAP_START( koikoi_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( koikoi_map, AS_PROGRAM, 8, koikoi_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x6000, 0x67ff) AM_RAM
AM_RANGE(0x7000, 0x77ff) AM_RAM_WRITE(vram_w) AM_BASE_MEMBER(koikoi_state, m_videoram)
@@ -227,7 +227,7 @@ static ADDRESS_MAP_START( koikoi_map, AS_PROGRAM, 8 )
AM_RANGE(0x9000, 0x9007) AM_READWRITE(io_r, io_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( koikoi_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( koikoi_io_map, AS_IO, 8, koikoi_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_WRITENOP //watchdog
AM_RANGE(0x03, 0x03) AM_DEVREAD("aysnd", ay8910_r)
diff --git a/src/mame/drivers/konamigq.c b/src/mame/drivers/konamigq.c
index 4b7822713f5..199745e844f 100644
--- a/src/mame/drivers/konamigq.c
+++ b/src/mame/drivers/konamigq.c
@@ -161,7 +161,7 @@ static READ32_HANDLER( pcmram_r )
/* Video */
-static ADDRESS_MAP_START( konamigq_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( konamigq_map, AS_PROGRAM, 32, konamigq_state )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE("share1") /* ram */
AM_RANGE(0x1f000000, 0x1f00001f) AM_READWRITE(am53cf96_r, am53cf96_w)
AM_RANGE(0x1f100000, 0x1f10000f) AM_WRITE(soundr3k_w)
@@ -224,7 +224,7 @@ static WRITE16_HANDLER(tms57002_control_word_w)
}
/* 68000 memory handling */
-static ADDRESS_MAP_START( konamigq_sound_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( konamigq_sound_map, AS_PROGRAM, 16, konamigq_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x2004ff) AM_DEVREADWRITE8_MODERN("konami1", k054539_device, read, write, 0xff00)
diff --git a/src/mame/drivers/konamigv.c b/src/mame/drivers/konamigv.c
index fc990af9c05..5e96ec8566d 100644
--- a/src/mame/drivers/konamigv.c
+++ b/src/mame/drivers/konamigv.c
@@ -166,7 +166,7 @@ static READ32_HANDLER( mb89371_r )
return 0xffffffff;
}
-static ADDRESS_MAP_START( konamigv_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( konamigv_map, AS_PROGRAM, 32, konamigv_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("share1") /* ram */
AM_RANGE(0x1f000000, 0x1f00001f) AM_READWRITE(am53cf96_r, am53cf96_w)
AM_RANGE(0x1f100000, 0x1f100003) AM_READ_PORT("P1")
diff --git a/src/mame/drivers/konamigx.c b/src/mame/drivers/konamigx.c
index 44589247841..338c469a52f 100644
--- a/src/mame/drivers/konamigx.c
+++ b/src/mame/drivers/konamigx.c
@@ -1154,7 +1154,7 @@ static WRITE32_HANDLER( type1_cablamps_w )
/* 68EC020 memory handlers */
/**********************************************************************************/
-static ADDRESS_MAP_START( gx_base_memmap, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( gx_base_memmap, AS_PROGRAM, 32, konamigx_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM // BIOS ROM
AM_RANGE(0x200000, 0x3fffff) AM_ROM // main program ROM
AM_RANGE(0x400000, 0x7fffff) AM_ROM // data ROM
@@ -1186,7 +1186,7 @@ static ADDRESS_MAP_START( gx_base_memmap, AS_PROGRAM, 32 )
#endif
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gx_type1_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( gx_type1_map, AS_PROGRAM, 32, konamigx_state )
AM_RANGE(0xd4a000, 0xd4a01f) AM_READ(gx6bppspr_r) // sprite ROM readback
AM_RANGE(0xd90000, 0xd97fff) AM_RAM_WRITE(konamigx_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xdc0000, 0xdc1fff) AM_RAM // LAN RAM? (Racin' Force has, Open Golf doesn't)
@@ -1206,13 +1206,13 @@ static ADDRESS_MAP_START( gx_type1_map, AS_PROGRAM, 32 )
AM_IMPORT_FROM(gx_base_memmap)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gx_type2_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( gx_type2_map, AS_PROGRAM, 32, konamigx_state )
AM_RANGE(0xcc0000, 0xcc0003) AM_WRITE(esc_w)
AM_RANGE(0xd90000, 0xd97fff) AM_RAM_WRITE(konamigx_palette_w) AM_BASE_GENERIC(paletteram)
AM_IMPORT_FROM(gx_base_memmap)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gx_type3_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( gx_type3_map, AS_PROGRAM, 32, konamigx_state )
AM_RANGE(0xd90000, 0xd97fff) AM_RAM
//AM_RANGE(0xcc0000, 0xcc0007) AM_WRITE(type4_prot_w)
AM_RANGE(0xe00000, 0xe0001f) AM_RAM AM_BASE((UINT32**)&K053936_0_ctrl)
@@ -1226,7 +1226,7 @@ static ADDRESS_MAP_START( gx_type3_map, AS_PROGRAM, 32 )
AM_IMPORT_FROM(gx_base_memmap)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gx_type4_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( gx_type4_map, AS_PROGRAM, 32, konamigx_state )
AM_RANGE(0xcc0000, 0xcc0007) AM_WRITE(type4_prot_w)
AM_RANGE(0xd90000, 0xd97fff) AM_RAM
AM_RANGE(0xe00000, 0xe0001f) AM_RAM AM_BASE((UINT32**)&K053936_0_ctrl)
@@ -1288,7 +1288,7 @@ static WRITE16_HANDLER(tms57002_control_word_w)
}
/* 68000 memory handling */
-static ADDRESS_MAP_START( gxsndmap, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gxsndmap, AS_PROGRAM, 16, konamigx_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE(&gx_sndram)
AM_RANGE(0x200000, 0x2004ff) AM_DEVREADWRITE8_MODERN("konami1", k054539_device, read, write, 0xff00)
@@ -1300,7 +1300,7 @@ static ADDRESS_MAP_START( gxsndmap, AS_PROGRAM, 16 )
AM_RANGE(0x580000, 0x580001) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gxtmsmap, AS_DATA, 8 )
+static ADDRESS_MAP_START( gxtmsmap, AS_DATA, 8, konamigx_state )
AM_RANGE(0x000000, 0x03ffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/konamim2.c b/src/mame/drivers/konamim2.c
index bb8d8ca7bba..74f1bca5f8f 100644
--- a/src/mame/drivers/konamim2.c
+++ b/src/mame/drivers/konamim2.c
@@ -1107,7 +1107,7 @@ static READ64_HANDLER(cpu_r)
return 0;
}
-static ADDRESS_MAP_START( m2_main, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( m2_main, AS_PROGRAM, 64, konamim2_state )
AM_RANGE(0x00010040, 0x00010047) AM_READWRITE(irq_enable_r, irq_enable_w)
AM_RANGE(0x00010050, 0x00010057) AM_READ(irq_active_r)
AM_RANGE(0x00020000, 0x00020007) AM_READWRITE(unk4_r, unk4_w)
diff --git a/src/mame/drivers/kongambl.c b/src/mame/drivers/kongambl.c
index 46dbcda8542..29c7bf3d804 100644
--- a/src/mame/drivers/kongambl.c
+++ b/src/mame/drivers/kongambl.c
@@ -73,7 +73,7 @@ static WRITE32_HANDLER( eeprom_w )
}
}
-static ADDRESS_MAP_START( kongambl_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( kongambl_map, AS_PROGRAM, 32, kongambl_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // main program
AM_RANGE(0x100000, 0x11ffff) AM_RAM // work RAM
@@ -102,7 +102,7 @@ static INPUT_PORTS_START( kongambl )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line)
INPUT_PORTS_END
-static ADDRESS_MAP_START( kongamaud_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( kongamaud_map, AS_PROGRAM, 16, kongambl_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM // main program (mirrored?)
AM_RANGE(0x100000, 0x10ffff) AM_RAM // work RAM
AM_RANGE(0x200000, 0x2000ff) AM_RAM // unknown (YMZ280b? Shared with 68020?)
diff --git a/src/mame/drivers/kopunch.c b/src/mame/drivers/kopunch.c
index 4b69883d3a9..4418487bd43 100644
--- a/src/mame/drivers/kopunch.c
+++ b/src/mame/drivers/kopunch.c
@@ -42,7 +42,7 @@ static WRITE8_HANDLER( kopunch_coin_w )
-static ADDRESS_MAP_START( kopunch_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kopunch_map, AS_PROGRAM, 8, kopunch_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x6000, 0x63ff) AM_RAM_WRITE(kopunch_videoram_w) AM_BASE_MEMBER(kopunch_state, m_videoram)
@@ -50,7 +50,7 @@ static ADDRESS_MAP_START( kopunch_map, AS_PROGRAM, 8 )
AM_RANGE(0x7100, 0x7aff) AM_RAM // ???
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kopunch_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( kopunch_io_map, AS_IO, 8, kopunch_state )
AM_RANGE(0x30, 0x30) AM_READ_PORT("P1")
AM_RANGE(0x31, 0x32) AM_READ(kopunch_in_r)
AM_RANGE(0x33, 0x33) AM_WRITENOP
diff --git a/src/mame/drivers/ksayakyu.c b/src/mame/drivers/ksayakyu.c
index d3369f4f179..bdd663f1cbb 100644
--- a/src/mame/drivers/ksayakyu.c
+++ b/src/mame/drivers/ksayakyu.c
@@ -104,7 +104,7 @@ static WRITE8_HANDLER(tomaincpu_w)
soundlatch_w(space, 0, data);
}
-static ADDRESS_MAP_START( maincpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( maincpu_map, AS_PROGRAM, 8, ksayakyu_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x9fff) AM_ROM
@@ -122,7 +122,7 @@ static ADDRESS_MAP_START( maincpu_map, AS_PROGRAM, 8 )
AM_RANGE(0xb800, 0xbfff) AM_RAM AM_BASE_SIZE_MEMBER(ksayakyu_state, m_spriteram, m_spriteram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( soundcpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( soundcpu_map, AS_PROGRAM, 8, ksayakyu_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
AM_RANGE(0xa001, 0xa001) AM_DEVREAD("ay1", ay8910_r)
diff --git a/src/mame/drivers/ksys573.c b/src/mame/drivers/ksys573.c
index 66dd4f25c39..ce55a4f493d 100644
--- a/src/mame/drivers/ksys573.c
+++ b/src/mame/drivers/ksys573.c
@@ -1228,7 +1228,7 @@ static WRITE32_HANDLER( flash_w )
}
}
-static ADDRESS_MAP_START( konami573_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( konami573_map, AS_PROGRAM, 32, ksys573_state )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE("share1") /* ram */
AM_RANGE(0x1f000000, 0x1f3fffff) AM_READWRITE( flash_r, flash_w )
AM_RANGE(0x1f400000, 0x1f400003) AM_READ_PORT( "IN0" ) AM_WRITE_PORT( "OUT0" )
diff --git a/src/mame/drivers/kungfur.c b/src/mame/drivers/kungfur.c
index 99342900464..7b9112771ab 100644
--- a/src/mame/drivers/kungfur.c
+++ b/src/mame/drivers/kungfur.c
@@ -211,7 +211,7 @@ static void kfr_adpcm2_int(device_t *device)
}
-static ADDRESS_MAP_START( kungfur_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kungfur_map, AS_PROGRAM, 8, kungfur_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_DEVWRITE("adpcm1", kungfur_adpcm1_w)
AM_RANGE(0x4004, 0x4004) AM_DEVWRITE("adpcm2", kungfur_adpcm2_w)
diff --git a/src/mame/drivers/kyugo.c b/src/mame/drivers/kyugo.c
index 29c2dca1467..fe3f64fb03d 100644
--- a/src/mame/drivers/kyugo.c
+++ b/src/mame/drivers/kyugo.c
@@ -33,7 +33,7 @@
*
*************************************/
-static ADDRESS_MAP_START( kyugo_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kyugo_main_map, AS_PROGRAM, 8, kyugo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(kyugo_bgvideoram_w) AM_BASE_MEMBER(kyugo_state, m_bgvideoram)
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(kyugo_bgattribram_w) AM_BASE_MEMBER(kyugo_state, m_bgattribram)
@@ -67,7 +67,7 @@ static WRITE8_HANDLER( kyugo_sub_cpu_control_w )
device_set_input_line(state->m_subcpu, INPUT_LINE_HALT, data ? CLEAR_LINE : ASSERT_LINE);
}
-static ADDRESS_MAP_START( kyugo_main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( kyugo_main_portmap, AS_IO, 8, kyugo_state )
ADDRESS_MAP_GLOBAL_MASK(0x07)
AM_RANGE(0x00, 0x00) AM_WRITE(kyugo_nmi_mask_w)
AM_RANGE(0x01, 0x01) AM_WRITE(kyugo_flipscreen_w)
@@ -82,7 +82,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( gyrodine_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gyrodine_sub_map, AS_PROGRAM, 8, kyugo_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x8000, 0x8000) AM_READ_PORT("P2")
@@ -91,7 +91,7 @@ static ADDRESS_MAP_START( gyrodine_sub_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( repulse_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( repulse_sub_map, AS_PROGRAM, 8, kyugo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("P2")
@@ -100,7 +100,7 @@ static ADDRESS_MAP_START( repulse_sub_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( srdmissn_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( srdmissn_sub_map, AS_PROGRAM, 8, kyugo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xf400, 0xf400) AM_READ_PORT("SYSTEM")
@@ -109,7 +109,7 @@ static ADDRESS_MAP_START( srdmissn_sub_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( legend_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( legend_sub_map, AS_PROGRAM, 8, kyugo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("SYSTEM")
@@ -118,7 +118,7 @@ static ADDRESS_MAP_START( legend_sub_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( flashgala_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( flashgala_sub_map, AS_PROGRAM, 8, kyugo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc040, 0xc040) AM_READ_PORT("SYSTEM")
AM_RANGE(0xc080, 0xc080) AM_READ_PORT("P1")
@@ -139,7 +139,7 @@ static WRITE8_HANDLER( kyugo_coin_counter_w )
coin_counter_w(space->machine(), offset, data & 1);
}
-static ADDRESS_MAP_START( gyrodine_sub_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( gyrodine_sub_portmap, AS_IO, 8, kyugo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x02, 0x02) AM_DEVREAD("ay1", ay8910_r)
@@ -147,7 +147,7 @@ static ADDRESS_MAP_START( gyrodine_sub_portmap, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( repulse_sub_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( repulse_sub_portmap, AS_IO, 8, kyugo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x02, 0x02) AM_DEVREAD("ay1", ay8910_r)
@@ -156,7 +156,7 @@ static ADDRESS_MAP_START( repulse_sub_portmap, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( flashgala_sub_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( flashgala_sub_portmap, AS_IO, 8, kyugo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x41) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x42, 0x42) AM_DEVREAD("ay1", ay8910_r)
@@ -165,7 +165,7 @@ static ADDRESS_MAP_START( flashgala_sub_portmap, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( srdmissn_sub_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( srdmissn_sub_portmap, AS_IO, 8, kyugo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x82, 0x82) AM_DEVREAD("ay1", ay8910_r)
diff --git a/src/mame/drivers/labyrunr.c b/src/mame/drivers/labyrunr.c
index 92b07ae6ee5..8e66f535e77 100644
--- a/src/mame/drivers/labyrunr.c
+++ b/src/mame/drivers/labyrunr.c
@@ -39,7 +39,7 @@ static WRITE8_HANDLER( labyrunr_bankswitch_w )
coin_counter_w(space->machine(), 1, data & 0x10);
}
-static ADDRESS_MAP_START( labyrunr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( labyrunr_map, AS_PROGRAM, 8, labyrunr_state )
AM_RANGE(0x0000, 0x0007) AM_DEVWRITE("k007121", k007121_ctrl_w)
AM_RANGE(0x0020, 0x005f) AM_RAM AM_BASE_MEMBER(labyrunr_state, m_scrollram)
AM_RANGE(0x0800, 0x0800) AM_DEVREADWRITE("ym1", ym2203_read_port_r, ym2203_write_port_w)
diff --git a/src/mame/drivers/ladybug.c b/src/mame/drivers/ladybug.c
index be97da4af07..1b7fa94ad22 100644
--- a/src/mame/drivers/ladybug.c
+++ b/src/mame/drivers/ladybug.c
@@ -129,7 +129,7 @@ static WRITE8_HANDLER( sraider_misc_w )
}
}
-static ADDRESS_MAP_START( ladybug_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ladybug_map, AS_PROGRAM, 8, ladybug_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
AM_RANGE(0x7000, 0x73ff) AM_WRITEONLY AM_BASE_SIZE_MEMBER(ladybug_state, m_spriteram, m_spriteram_size)
@@ -147,7 +147,7 @@ static ADDRESS_MAP_START( ladybug_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sraider_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sraider_cpu1_map, AS_PROGRAM, 8, ladybug_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
AM_RANGE(0x7000, 0x73ff) AM_WRITEONLY AM_BASE_SIZE_MEMBER(ladybug_state, m_spriteram, m_spriteram_size)
@@ -164,7 +164,7 @@ static ADDRESS_MAP_START( sraider_cpu1_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sraider_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sraider_cpu2_map, AS_PROGRAM, 8, ladybug_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_RAM
AM_RANGE(0x8000, 0x8000) AM_READ(sraider_sound_low_r)
@@ -175,7 +175,7 @@ static ADDRESS_MAP_START( sraider_cpu2_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sraider_cpu2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sraider_cpu2_io_map, AS_IO, 8, ladybug_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVWRITE("sn1", sn76496_w)
AM_RANGE(0x08, 0x08) AM_DEVWRITE("sn2", sn76496_w)
diff --git a/src/mame/drivers/ladyfrog.c b/src/mame/drivers/ladyfrog.c
index 82f34587250..b4abf909ddc 100644
--- a/src/mame/drivers/ladyfrog.c
+++ b/src/mame/drivers/ladyfrog.c
@@ -133,7 +133,7 @@ static READ8_HANDLER( snd_flag_r )
return state->m_snd_flag | 0xfd;
}
-static ADDRESS_MAP_START( ladyfrog_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ladyfrog_map, AS_PROGRAM, 8, ladyfrog_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc07f) AM_RAM
AM_RANGE(0xc080, 0xc87f) AM_READWRITE(ladyfrog_videoram_r, ladyfrog_videoram_w) AM_BASE_SIZE_MEMBER(ladyfrog_state, m_videoram, m_videoram_size)
@@ -154,7 +154,7 @@ static ADDRESS_MAP_START( ladyfrog_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ladyfrog_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ladyfrog_sound_map, AS_PROGRAM, 8, ladyfrog_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc801) AM_WRITENOP
diff --git a/src/mame/drivers/laserbas.c b/src/mame/drivers/laserbas.c
index 4e37d109598..58a85897ddf 100644
--- a/src/mame/drivers/laserbas.c
+++ b/src/mame/drivers/laserbas.c
@@ -134,7 +134,7 @@ static WRITE8_HANDLER( protram_w )
state->m_protram[offset] = data;
}
-static ADDRESS_MAP_START( laserbas_memory, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( laserbas_memory, AS_PROGRAM, 8, laserbas_state )
//ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0xbfff) AM_READWRITE(vram_r, vram_w)
@@ -143,7 +143,7 @@ static ADDRESS_MAP_START( laserbas_memory, AS_PROGRAM, 8 )
AM_RANGE(0xfc00, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( laserbas_io, AS_IO, 8 )
+static ADDRESS_MAP_START( laserbas_io, AS_IO, 8, laserbas_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
AM_RANGE(0x01, 0x01) AM_DEVWRITE_MODERN("crtc", mc6845_device, register_w)
diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c
index cda1821f7fe..87073c132af 100644
--- a/src/mame/drivers/laserbat.c
+++ b/src/mame/drivers/laserbat.c
@@ -166,7 +166,7 @@ static WRITE8_HANDLER( laserbat_cntmov_w )
*/
-static ADDRESS_MAP_START( laserbat_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( laserbat_map, AS_PROGRAM, 8, laserbat_state )
AM_RANGE(0x0000, 0x13ff) AM_ROM
AM_RANGE(0x2000, 0x33ff) AM_ROM
AM_RANGE(0x3800, 0x3bff) AM_ROM
@@ -182,7 +182,7 @@ static ADDRESS_MAP_START( laserbat_map, AS_PROGRAM, 8 )
AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( laserbat_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( laserbat_io_map, AS_IO, 8, laserbat_state )
AM_RANGE(0x00, 0x00) AM_WRITE(laserbat_cnteff_w)
AM_RANGE(0x01, 0x01) AM_WRITE(video_extra_w)
AM_RANGE(0x02, 0x02) AM_READ(laserbat_input_r) AM_WRITE(laserbat_csound1_w)
@@ -193,7 +193,7 @@ static ADDRESS_MAP_START( laserbat_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( catnmous_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( catnmous_io_map, AS_IO, 8, laserbat_state )
AM_RANGE(0x00, 0x00) AM_WRITE(soundlatch_w) // soundlatch ?
AM_RANGE(0x01, 0x01) AM_WRITE(video_extra_w)
AM_RANGE(0x02, 0x02) AM_READ(laserbat_input_r)
@@ -205,7 +205,7 @@ static ADDRESS_MAP_START( catnmous_io_map, AS_IO, 8 )
ADDRESS_MAP_END
// the same as in zaccaria.c ?
-static ADDRESS_MAP_START( catnmous_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( catnmous_sound_map, AS_PROGRAM, 8, laserbat_state )
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x500c, 0x500f) AM_DEVREADWRITE_MODERN("pia", pia6821_device, read, write)
AM_RANGE(0xf000, 0xffff) AM_ROM
diff --git a/src/mame/drivers/lasso.c b/src/mame/drivers/lasso.c
index 2df2ae4349c..7f8da7b7848 100644
--- a/src/mame/drivers/lasso.c
+++ b/src/mame/drivers/lasso.c
@@ -80,7 +80,7 @@ static WRITE8_HANDLER( sound_select_w )
}
-static ADDRESS_MAP_START( lasso_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lasso_main_map, AS_PROGRAM, 8, lasso_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(lasso_videoram_w) AM_BASE_MEMBER(lasso_state, m_videoram)
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(lasso_colorram_w) AM_BASE_MEMBER(lasso_state, m_colorram)
@@ -97,7 +97,7 @@ static ADDRESS_MAP_START( lasso_main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lasso_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lasso_audio_map, AS_PROGRAM, 8, lasso_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x5000, 0x7fff) AM_ROM
AM_RANGE(0xb000, 0xb000) AM_WRITEONLY AM_BASE_MEMBER(lasso_state, m_chip_data)
@@ -108,14 +108,14 @@ static ADDRESS_MAP_START( lasso_audio_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lasso_coprocessor_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lasso_coprocessor_map, AS_PROGRAM, 8, lasso_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE_MEMBER(lasso_state, m_bitmap_ram)
AM_RANGE(0x8000, 0x8fff) AM_MIRROR(0x7000) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( chameleo_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( chameleo_main_map, AS_PROGRAM, 8, lasso_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(lasso_videoram_w) AM_BASE_MEMBER(lasso_state, m_videoram)
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(lasso_colorram_w) AM_BASE_MEMBER(lasso_state, m_colorram)
@@ -134,7 +134,7 @@ static ADDRESS_MAP_START( chameleo_main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( chameleo_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( chameleo_audio_map, AS_PROGRAM, 8, lasso_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_ROM
AM_RANGE(0x6000, 0x7fff) AM_ROM
@@ -146,7 +146,7 @@ static ADDRESS_MAP_START( chameleo_audio_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wwjgtin_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wwjgtin_main_map, AS_PROGRAM, 8, lasso_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(lasso_videoram_w) AM_BASE_MEMBER(lasso_state, m_videoram)
AM_RANGE(0x0c00, 0x0fff) AM_RAM_WRITE(lasso_colorram_w) AM_BASE_MEMBER(lasso_state, m_colorram)
@@ -165,7 +165,7 @@ static ADDRESS_MAP_START( wwjgtin_main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wwjgtin_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wwjgtin_audio_map, AS_PROGRAM, 8, lasso_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x4000, 0x7fff) AM_MIRROR(0x8000) AM_ROM
AM_RANGE(0xb000, 0xb000) AM_WRITEONLY AM_BASE_MEMBER(lasso_state, m_chip_data)
@@ -176,7 +176,7 @@ static ADDRESS_MAP_START( wwjgtin_audio_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pinbo_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pinbo_main_map, AS_PROGRAM, 8, lasso_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(lasso_videoram_w) AM_BASE_MEMBER(lasso_state, m_videoram)
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(lasso_colorram_w) AM_BASE_MEMBER(lasso_state, m_colorram)
@@ -194,13 +194,13 @@ static ADDRESS_MAP_START( pinbo_main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pinbo_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pinbo_audio_map, AS_PROGRAM, 8, lasso_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pinbo_audio_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( pinbo_audio_io_map, AS_IO, 8, lasso_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x02, 0x02) AM_DEVREAD("ay1", ay8910_r)
diff --git a/src/mame/drivers/lastbank.c b/src/mame/drivers/lastbank.c
index fe4359e1e44..8f3937da460 100644
--- a/src/mame/drivers/lastbank.c
+++ b/src/mame/drivers/lastbank.c
@@ -30,7 +30,7 @@ static SCREEN_UPDATE_IND16( lastbank )
return 0;
}
-static ADDRESS_MAP_START( lastbank_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lastbank_map, AS_PROGRAM, 8, lastbank_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* TODO: ROM banks! */
AM_RANGE(0x8000, 0x9fff) AM_RAM
@@ -50,7 +50,7 @@ static ADDRESS_MAP_START( lastbank_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lastbank_io, AS_IO, 8 )
+static ADDRESS_MAP_START( lastbank_io, AS_IO, 8, lastbank_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/lastduel.c b/src/mame/drivers/lastduel.c
index 762d31749a0..26ec16ab7f5 100644
--- a/src/mame/drivers/lastduel.c
+++ b/src/mame/drivers/lastduel.c
@@ -132,7 +132,7 @@ static WRITE16_HANDLER( lastduel_sound_w )
/******************************************************************************/
-static ADDRESS_MAP_START( lastduel_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( lastduel_map, AS_PROGRAM, 16, lastduel_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0xfc0000, 0xfc0003) AM_WRITENOP /* Written rarely */
AM_RANGE(0xfc0800, 0xfc0fff) AM_RAM AM_SHARE("spriteram")
@@ -148,7 +148,7 @@ static ADDRESS_MAP_START( lastduel_map, AS_PROGRAM, 16 )
AM_RANGE(0xfe0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( madgear_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( madgear_map, AS_PROGRAM, 16, lastduel_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0xfc1800, 0xfc1fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xfc4000, 0xfc4001) AM_READ_PORT("DSW1") AM_WRITE(lastduel_flip_w)
@@ -165,7 +165,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, lastduel_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM
AM_RANGE(0xe800, 0xe801) AM_DEVREADWRITE("ym1", ym2203_r,ym2203_w)
@@ -178,7 +178,7 @@ static WRITE8_HANDLER( mg_bankswitch_w )
memory_set_bank(space->machine(), "bank1", data & 0x01);
}
-static ADDRESS_MAP_START( madgear_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( madgear_sound_map, AS_PROGRAM, 8, lastduel_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xcfff) AM_ROMBANK("bank1")
AM_RANGE(0xd000, 0xd7ff) AM_RAM
diff --git a/src/mame/drivers/lastfght.c b/src/mame/drivers/lastfght.c
index 5ca704db3d9..1ac51d31574 100644
--- a/src/mame/drivers/lastfght.c
+++ b/src/mame/drivers/lastfght.c
@@ -417,7 +417,7 @@ static WRITE16_HANDLER( lastfght_sound_w )
Memory Maps
***************************************************************************/
-static ADDRESS_MAP_START( lastfght_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( lastfght_map, AS_PROGRAM, 16, lastfght_state )
ADDRESS_MAP_GLOBAL_MASK(0xffffff)
AM_RANGE( 0x000000, 0x07ffff ) AM_ROM AM_REGION("maincpu", 0)
diff --git a/src/mame/drivers/lazercmd.c b/src/mame/drivers/lazercmd.c
index 8f06e4594a8..ff3d8821ea8 100644
--- a/src/mame/drivers/lazercmd.c
+++ b/src/mame/drivers/lazercmd.c
@@ -409,7 +409,7 @@ static READ8_HANDLER( lazercmd_hardware_r )
*
*************************************************************/
-static ADDRESS_MAP_START( lazercmd_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lazercmd_map, AS_PROGRAM, 8, lazercmd_state )
AM_RANGE(0x0000, 0x0bff) AM_ROM
AM_RANGE(0x1c00, 0x1c1f) AM_RAM
AM_RANGE(0x1c20, 0x1eff) AM_RAM AM_BASE_SIZE_MEMBER(lazercmd_state, m_videoram, m_videoram_size)
@@ -418,7 +418,7 @@ static ADDRESS_MAP_START( lazercmd_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( medlanes_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( medlanes_map, AS_PROGRAM, 8, lazercmd_state )
AM_RANGE(0x0000, 0x0bff) AM_ROM
AM_RANGE(0x1000, 0x17ff) AM_ROM
AM_RANGE(0x1c00, 0x1c1f) AM_RAM
@@ -428,7 +428,7 @@ static ADDRESS_MAP_START( medlanes_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bbonk_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bbonk_map, AS_PROGRAM, 8, lazercmd_state )
AM_RANGE(0x0000, 0x0bff) AM_ROM
AM_RANGE(0x1c00, 0x1c1f) AM_RAM
AM_RANGE(0x1c20, 0x1eff) AM_RAM AM_BASE_SIZE_MEMBER(lazercmd_state, m_videoram, m_videoram_size)
@@ -437,7 +437,7 @@ static ADDRESS_MAP_START( bbonk_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lazercmd_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( lazercmd_portmap, AS_IO, 8, lazercmd_state )
AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE(lazercmd_ctrl_port_r, lazercmd_ctrl_port_w)
AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE(lazercmd_data_port_r, lazercmd_data_port_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/legionna.c b/src/mame/drivers/legionna.c
index 5c3104fe041..bf1b977feb7 100644
--- a/src/mame/drivers/legionna.c
+++ b/src/mame/drivers/legionna.c
@@ -79,7 +79,7 @@ Preliminary COP MCU memory map
/*****************************************************************************/
-static ADDRESS_MAP_START( legionna_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( legionna_map, AS_PROGRAM, 16, legionna_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x1003ff) AM_RAM
AM_RANGE(0x100400, 0x1007ff) AM_READWRITE(legionna_mcu_r, legionna_mcu_w) AM_BASE(&cop_mcu_ram) /* COP mcu */
@@ -94,7 +94,7 @@ static ADDRESS_MAP_START( legionna_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( heatbrl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( heatbrl_map, AS_PROGRAM, 16, legionna_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x1003ff) AM_RAM
AM_RANGE(0x100400, 0x1007ff) AM_READWRITE(heatbrl_mcu_r, heatbrl_mcu_w) AM_BASE(&cop_mcu_ram) /* COP mcu */
@@ -107,7 +107,7 @@ static ADDRESS_MAP_START( heatbrl_map, AS_PROGRAM, 16 )
AM_RANGE(0x108000, 0x11ffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( godzilla_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( godzilla_map, AS_PROGRAM, 16, legionna_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x1003ff) AM_RAM
AM_RANGE(0x100400, 0x1007ff) AM_READWRITE(godzilla_mcu_r, godzilla_mcu_w) AM_BASE(&cop_mcu_ram) /* COP mcu */
@@ -132,7 +132,7 @@ static WRITE16_HANDLER( denjin_paletteram16_xBBBBBGGGGGRRRRR_word_w )
paletteram16_xBBBBBGGGGGRRRRR_word_w(space,offset,data,mem_mask);
}
-static ADDRESS_MAP_START( denjinmk_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( denjinmk_map, AS_PROGRAM, 16, legionna_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x1003ff) AM_RAM
AM_RANGE(0x100400, 0x1007ff) AM_READWRITE(denjinmk_mcu_r, denjinmk_mcu_w) AM_BASE(&cop_mcu_ram) /* COP mcu */
@@ -149,7 +149,7 @@ static ADDRESS_MAP_START( denjinmk_map, AS_PROGRAM, 16 )
AM_RANGE(0x11f000, 0x11ffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( grainbow_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( grainbow_map, AS_PROGRAM, 16, legionna_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x1003ff) AM_RAM
AM_RANGE(0x100400, 0x1007ff) AM_READWRITE(grainbow_mcu_r, grainbow_mcu_w) AM_BASE(&cop_mcu_ram) /* COP mcu */
@@ -165,7 +165,7 @@ static ADDRESS_MAP_START( grainbow_map, AS_PROGRAM, 16 )
AM_RANGE(0x108000, 0x11ffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cupsoc_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cupsoc_mem, AS_PROGRAM, 16, legionna_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x1003ff) AM_RAM
AM_RANGE(0x100400, 0x1007ff) AM_READWRITE(cupsoc_mcu_r,cupsoc_mcu_w) AM_BASE(&cop_mcu_ram)
@@ -184,7 +184,7 @@ static ADDRESS_MAP_START( cupsoc_mem, AS_PROGRAM, 16 )
AM_RANGE(0x11e000, 0x11ffff) AM_RAM /*Stack Ram*/
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cupsocs_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cupsocs_mem, AS_PROGRAM, 16, legionna_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x1003ff) AM_RAM
AM_RANGE(0x100400, 0x1007ff) AM_READWRITE(cupsocs_mcu_r,cupsocs_mcu_w) AM_BASE(&cop_mcu_ram)
@@ -203,7 +203,7 @@ static ADDRESS_MAP_START( cupsocs_mem, AS_PROGRAM, 16 )
AM_RANGE(0x11e000, 0x11ffff) AM_RAM /*Stack Ram*/
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cupsocbl_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cupsocbl_mem, AS_PROGRAM, 16, legionna_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
//AM_RANGE(0x100000, 0x1003ff) AM_RAM
AM_RANGE(0x100000, 0x1007ff) AM_READWRITE(copdxbl_0_r,copdxbl_0_w) AM_BASE(&cop_mcu_ram)
@@ -229,7 +229,7 @@ static WRITE8_DEVICE_HANDLER( okim_rombank_w )
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * (data & 0x7));
}
-static ADDRESS_MAP_START( cupsocbl_sound_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cupsocbl_sound_mem, AS_PROGRAM, 8, legionna_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_DEVWRITE("oki", okim_rombank_w)
diff --git a/src/mame/drivers/leland.c b/src/mame/drivers/leland.c
index 1fa2e0413ec..bf07d3600b8 100644
--- a/src/mame/drivers/leland.c
+++ b/src/mame/drivers/leland.c
@@ -62,7 +62,7 @@
*
*************************************/
-static ADDRESS_MAP_START( master_map_program, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( master_map_program, AS_PROGRAM, 8, leland_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xdfff) AM_ROMBANK("bank2") AM_WRITE(leland_battery_ram_w) AM_SHARE("battery")
@@ -72,7 +72,7 @@ static ADDRESS_MAP_START( master_map_program, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( master_map_io, AS_IO, 8 )
+static ADDRESS_MAP_START( master_map_io, AS_IO, 8, leland_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xf0, 0xf0) AM_WRITE(leland_master_alt_bankswitch_w)
AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE("custom", leland_80186_response_r, leland_80186_command_lo_w)
@@ -88,7 +88,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( slave_small_map_program, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slave_small_map_program, AS_PROGRAM, 8, leland_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0xdfff) AM_ROMBANK("bank3")
AM_RANGE(0xe000, 0xefff) AM_RAM
@@ -98,7 +98,7 @@ static ADDRESS_MAP_START( slave_small_map_program, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_large_map_program, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slave_large_map_program, AS_PROGRAM, 8, leland_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("bank3")
AM_RANGE(0xc000, 0xc000) AM_WRITE(leland_slave_large_banksw_w)
@@ -108,7 +108,7 @@ static ADDRESS_MAP_START( slave_large_map_program, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_map_io, AS_IO, 8 )
+static ADDRESS_MAP_START( slave_map_io, AS_IO, 8, leland_state )
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)
diff --git a/src/mame/drivers/lemmings.c b/src/mame/drivers/lemmings.c
index 6afbe03fb12..52d926e9449 100644
--- a/src/mame/drivers/lemmings.c
+++ b/src/mame/drivers/lemmings.c
@@ -94,7 +94,7 @@ static WRITE8_HANDLER( lemmings_sound_ack_w )
/******************************************************************************/
-static ADDRESS_MAP_START( lemmings_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( lemmings_map, AS_PROGRAM, 16, lemmings_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
@@ -114,7 +114,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, lemmings_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVREADWRITE("ymsnd", ym2151_r,ym2151_w)
AM_RANGE(0x1000, 0x1000) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
diff --git a/src/mame/drivers/lethal.c b/src/mame/drivers/lethal.c
index c70567cdf93..96dbe96e905 100644
--- a/src/mame/drivers/lethal.c
+++ b/src/mame/drivers/lethal.c
@@ -459,7 +459,7 @@ static READ8_HANDLER( gunsaux_r )
return res;
}
-static ADDRESS_MAP_START( le_main, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( le_main, AS_PROGRAM, 8, lethal_state )
AM_RANGE(0x0000, 0x1fff) AM_ROMBANK("bank1")
AM_RANGE(0x2000, 0x3fff) AM_RAM // work RAM
AM_RANGE(0x4000, 0x403f) AM_DEVWRITE("k056832", k056832_w)
@@ -479,7 +479,7 @@ static ADDRESS_MAP_START( le_main, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( le_sound, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( le_sound, AS_PROGRAM, 8, lethal_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xfa2f) AM_DEVREADWRITE_MODERN("k054539", k054539_device, read, write)
diff --git a/src/mame/drivers/lethalj.c b/src/mame/drivers/lethalj.c
index ee99b75f4f7..35a642ae082 100644
--- a/src/mame/drivers/lethalj.c
+++ b/src/mame/drivers/lethalj.c
@@ -208,7 +208,7 @@ static WRITE16_HANDLER( cclownz_control_w )
*
*************************************/
-static ADDRESS_MAP_START( lethalj_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( lethalj_map, AS_PROGRAM, 16, lethalj_state )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM
AM_RANGE(0x04000000, 0x0400000f) AM_DEVREADWRITE8_MODERN("oki1", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x04000010, 0x0400001f) AM_DEVREADWRITE8_MODERN("oki2", okim6295_device, read, write, 0x00ff)
diff --git a/src/mame/drivers/lgp.c b/src/mame/drivers/lgp.c
index c52af3c89e5..47543835d48 100644
--- a/src/mame/drivers/lgp.c
+++ b/src/mame/drivers/lgp.c
@@ -139,7 +139,7 @@ static WRITE8_HANDLER(ldp_write)
/* PROGRAM MAPS */
-static ADDRESS_MAP_START( main_program_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_program_map, AS_PROGRAM, 8, lgp_state )
AM_RANGE(0x0000,0x7fff) AM_ROM
AM_RANGE(0xe000,0xe3ff) AM_RAM AM_BASE_MEMBER(lgp_state, m_tile_ram)
AM_RANGE(0xe400,0xe7ff) AM_RAM AM_BASE_MEMBER(lgp_state, m_tile_control_ram)
@@ -155,7 +155,7 @@ static ADDRESS_MAP_START( main_program_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000,0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_program_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_program_map, AS_PROGRAM, 8, lgp_state )
AM_RANGE(0x0000,0x3fff) AM_ROM
AM_RANGE(0x8000,0x83ff) AM_RAM
AM_RANGE(0x8400,0x8407) AM_RAM /* Needs handler! Communications? */
@@ -164,13 +164,13 @@ ADDRESS_MAP_END
/* IO MAPS */
-static ADDRESS_MAP_START( main_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( main_io_map, AS_IO, 8, lgp_state )
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, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, lgp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/liberate.c b/src/mame/drivers/liberate.c
index f4f33c679e6..9b0adbc9fbe 100644
--- a/src/mame/drivers/liberate.c
+++ b/src/mame/drivers/liberate.c
@@ -241,7 +241,7 @@ static WRITE8_HANDLER( prosport_charram_w )
*
*************************************/
-static ADDRESS_MAP_START( prosport_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( prosport_map, AS_PROGRAM, 8, liberate_state )
AM_RANGE(0x0200, 0x021f) AM_RAM_WRITE(prosport_paletteram_w) AM_BASE_MEMBER(liberate_state, m_paletteram)
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x2000) AM_RAM
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(prosport_bg_vram_w) AM_BASE_MEMBER(liberate_state, m_bg_vram)
@@ -255,7 +255,7 @@ static ADDRESS_MAP_START( prosport_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( liberate_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( liberate_map, AS_PROGRAM, 8, liberate_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x3fff) AM_ROM /* Mirror of main rom */
AM_RANGE(0x4000, 0x7fff) AM_READ(deco16_bank_r)
@@ -268,7 +268,7 @@ static ADDRESS_MAP_START( liberate_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( prosoccr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( prosoccr_map, AS_PROGRAM, 8, liberate_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x3fff) AM_ROM /* Mirror of main rom */
AM_RANGE(0x4000, 0x7fff) AM_READ(prosoccr_bank_r)
@@ -281,17 +281,17 @@ static ADDRESS_MAP_START( prosoccr_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( deco16_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( deco16_io_map, AS_IO, 8, liberate_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(deco16_bank_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("TILT")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( prosoccr_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( prosoccr_io_map, AS_IO, 8, liberate_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(prosoccr_io_bank_w)
//AM_RANGE(0x01, 0x01) AM_READ_PORT("TILT")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( liberatb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( liberatb_map, AS_PROGRAM, 8, liberate_state )
AM_RANGE(0x00fe, 0x00fe) AM_READ_PORT("IN0")
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x3fff) AM_ROM /* Mirror of main rom */
@@ -315,7 +315,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( prosoccr_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( prosoccr_sound_map, AS_PROGRAM, 8, liberate_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x2000, 0x2000) AM_DEVWRITE("ay1", ay8910_data_w)
AM_RANGE(0x4000, 0x4000) AM_DEVWRITE("ay1", ay8910_address_w)
@@ -326,7 +326,7 @@ static ADDRESS_MAP_START( prosoccr_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( liberate_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( liberate_sound_map, AS_PROGRAM, 8, liberate_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_WRITENOP
AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("ay1", ay8910_data_w)
diff --git a/src/mame/drivers/limenko.c b/src/mame/drivers/limenko.c
index 56f1b72e5e0..f4659a5dc8f 100644
--- a/src/mame/drivers/limenko.c
+++ b/src/mame/drivers/limenko.c
@@ -146,7 +146,7 @@ static WRITE32_HANDLER( spriteram_buffer_w )
MEMORY MAPS
*****************************************************************************************************/
-static ADDRESS_MAP_START( limenko_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( limenko_map, AS_PROGRAM, 32, limenko_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_BASE_MEMBER(limenko_state, m_mainram)
AM_RANGE(0x40000000, 0x403fffff) AM_ROM AM_REGION("user2",0)
AM_RANGE(0x80000000, 0x80007fff) AM_RAM_WRITE(fg_videoram_w) AM_BASE_MEMBER(limenko_state, m_fg_videoram)
@@ -161,7 +161,7 @@ static ADDRESS_MAP_START( limenko_map, AS_PROGRAM, 32 )
AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("user1",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( limenko_io_map, AS_IO, 32 )
+static ADDRESS_MAP_START( limenko_io_map, AS_IO, 32, limenko_state )
AM_RANGE(0x0000, 0x0003) AM_READ_PORT("IN0")
AM_RANGE(0x0800, 0x0803) AM_READ_PORT("IN1")
AM_RANGE(0x1000, 0x1003) AM_READ_PORT("IN2")
@@ -173,7 +173,7 @@ ADDRESS_MAP_END
/* Spotty memory map */
-static ADDRESS_MAP_START( spotty_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( spotty_map, AS_PROGRAM, 32, limenko_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_BASE_MEMBER(limenko_state, m_mainram)
AM_RANGE(0x40002000, 0x400024d3) AM_RAM //?
AM_RANGE(0x80000000, 0x80007fff) AM_RAM_WRITE(fg_videoram_w) AM_BASE_MEMBER(limenko_state, m_fg_videoram)
@@ -188,7 +188,7 @@ static ADDRESS_MAP_START( spotty_map, AS_PROGRAM, 32 )
AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("user1",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spotty_io_map, AS_IO, 32 )
+static ADDRESS_MAP_START( spotty_io_map, AS_IO, 32, limenko_state )
AM_RANGE(0x0000, 0x0003) AM_READ_PORT("IN0")
AM_RANGE(0x0800, 0x0803) AM_READ_PORT("IN1")
AM_RANGE(0x0800, 0x0803) AM_WRITENOP // hopper related
@@ -219,7 +219,7 @@ static READ8_HANDLER( spotty_sound_r )
return space->machine().device<okim6295_device>("oki")->read(*space,0);
}
-static ADDRESS_MAP_START( spotty_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( spotty_sound_io_map, AS_IO, 8, limenko_state )
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_READ(spotty_sound_r) AM_DEVWRITE_MODERN("oki", okim6295_device, write) //? sound latch and ?
AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE(spotty_sound_cmd_r, spotty_sound_cmd_w) //not sure about anything...
ADDRESS_MAP_END
diff --git a/src/mame/drivers/littlerb.c b/src/mame/drivers/littlerb.c
index 2c3c58fb6af..4c66c4f6419 100644
--- a/src/mame/drivers/littlerb.c
+++ b/src/mame/drivers/littlerb.c
@@ -110,7 +110,7 @@ WRITE16_HANDLER( region4_w )
}
/* this map is wrong because our VDP access is wrong! */
-static ADDRESS_MAP_START( littlerb_vdp_map8, AS_0, 16 )
+static ADDRESS_MAP_START( littlerb_vdp_map8, AS_0, 16, littlerb_state )
// it ends up writing some gfx here (the bubbles when you shoot an enemy)
AM_RANGE(0x00000000, 0x0007ffff) AM_RAM
AM_RANGE(0x00080000, 0x003fffff) AM_RAM // temp so it doesn't fill the log
@@ -124,7 +124,7 @@ static ADDRESS_MAP_START( littlerb_vdp_map8, AS_0, 16 )
AM_RANGE(0x1ff80000, 0x1fffffff) AM_RAM_WRITE(region4_w) AM_BASE_MEMBER(littlerb_state, m_region4)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ramdac_map, AS_0, 8 )
+static ADDRESS_MAP_START( ramdac_map, AS_0, 8, littlerb_state )
AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE_MODERN("ramdac",ramdac_device,ramdac_pal_r,ramdac_rgb888_w)
ADDRESS_MAP_END
@@ -324,7 +324,7 @@ static WRITE16_HANDLER( littlerb_r_sound_w )
//popmessage("%04x %04x",state->m_sound_index_l,state->m_sound_index_r);
}
-static ADDRESS_MAP_START( littlerb_main, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( littlerb_main, AS_PROGRAM, 16, littlerb_state )
AM_RANGE(0x000008, 0x000017) AM_WRITENOP
AM_RANGE(0x000020, 0x00002f) AM_WRITENOP
AM_RANGE(0x000070, 0x000073) AM_WRITENOP
diff --git a/src/mame/drivers/lkage.c b/src/mame/drivers/lkage.c
index b2422380a75..b447eb072a6 100644
--- a/src/mame/drivers/lkage.c
+++ b/src/mame/drivers/lkage.c
@@ -134,7 +134,7 @@ static READ8_HANDLER(sound_status_r)
return 0xff;
}
-static ADDRESS_MAP_START( lkage_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lkage_map, AS_PROGRAM, 8, lkage_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM /* work ram */
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_le_w) AM_BASE_GENERIC(paletteram)
@@ -164,11 +164,11 @@ static READ8_HANDLER( port_fetch_r )
return space->machine().region("user1")->base()[offset];
}
-static ADDRESS_MAP_START( lkage_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( lkage_io_map, AS_IO, 8, lkage_state )
AM_RANGE(0x4000, 0x7fff) AM_READ(port_fetch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lkage_m68705_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lkage_m68705_map, AS_PROGRAM, 8, lkage_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(lkage_68705_port_a_r,lkage_68705_port_a_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(lkage_68705_port_b_r,lkage_68705_port_b_w)
@@ -184,7 +184,7 @@ ADDRESS_MAP_END
/* sound section is almost identical to Bubble Bobble, YM2203 instead of YM3526 */
-static ADDRESS_MAP_START( lkage_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lkage_sound_map, AS_PROGRAM, 8, lkage_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ym1", ym2203_r,ym2203_w)
diff --git a/src/mame/drivers/lockon.c b/src/mame/drivers/lockon.c
index c7340d1f08e..7f6d56caccb 100644
--- a/src/mame/drivers/lockon.c
+++ b/src/mame/drivers/lockon.c
@@ -153,7 +153,7 @@ static WRITE16_HANDLER( emres_w )
*
*************************************/
-static ADDRESS_MAP_START( main_v30, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_v30, AS_PROGRAM, 16, lockon_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000, 0x03fff) AM_RAM
AM_RANGE(0x04000, 0x04003) AM_READWRITE(lockon_crtc_r, lockon_crtc_w)
@@ -175,7 +175,7 @@ static ADDRESS_MAP_START( main_v30, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ground_v30, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ground_v30, AS_PROGRAM, 16, lockon_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000, 0x03fff) AM_RAM
AM_RANGE(0x04000, 0x04fff) AM_RAM AM_BASE_MEMBER(lockon_state, m_scene_ram)
@@ -188,7 +188,7 @@ static ADDRESS_MAP_START( ground_v30, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( object_v30, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( object_v30, AS_PROGRAM, 16, lockon_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000, 0x03fff) AM_RAM
AM_RANGE(0x04000, 0x04001) AM_READWRITE(lockon_obj_4000_r, lockon_obj_4000_w)
@@ -198,7 +198,7 @@ static ADDRESS_MAP_START( object_v30, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_prg, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_prg, AS_PROGRAM, 8, lockon_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x6fff) AM_ROM
AM_RANGE(0x7000, 0x7000) AM_WRITE(sound_vol)
@@ -206,7 +206,7 @@ static ADDRESS_MAP_START( sound_prg, AS_PROGRAM, 8 )
AM_RANGE(0x7800, 0x7fff) AM_MIRROR(0x8000) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io, AS_IO, 8, lockon_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0x02, 0x02) AM_NOP
diff --git a/src/mame/drivers/looping.c b/src/mame/drivers/looping.c
index f64a91a5cdf..b920c7178aa 100644
--- a/src/mame/drivers/looping.c
+++ b/src/mame/drivers/looping.c
@@ -484,7 +484,7 @@ static READ8_HANDLER( protection_r )
*
*************************************/
-static ADDRESS_MAP_START( looping_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( looping_map, AS_PROGRAM, 8, looping_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(looping_videoram_w) AM_BASE_MEMBER(looping_state, m_videoram)
@@ -504,7 +504,7 @@ static ADDRESS_MAP_START( looping_map, AS_PROGRAM, 8 )
AM_RANGE(0xf803, 0xf803) AM_MIRROR(0x03fc) AM_READWRITE(adc_r, adc_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( looping_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( looping_io_map, AS_IO, 8, looping_state )
/* 400 = A16 */
/* 401 = A17 */
/* 402 = COLOR 9 */
@@ -519,7 +519,7 @@ ADDRESS_MAP_END
/* complete memory map derived from schematics */
-static ADDRESS_MAP_START( looping_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( looping_sound_map, AS_PROGRAM, 8, looping_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x37ff) AM_ROM
AM_RANGE(0x3800, 0x3bff) AM_RAM
@@ -531,7 +531,7 @@ static ADDRESS_MAP_START( looping_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0x3e03, 0x3e03) AM_MIRROR(0x00f6) AM_NOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( looping_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( looping_sound_io_map, AS_IO, 8, looping_state )
AM_RANGE(0x000, 0x000) AM_WRITE(looping_souint_clr)
AM_RANGE(0x001, 0x007) AM_DEVWRITE("dac", looping_sound_sw)
AM_RANGE(0x008, 0x008) AM_DEVWRITE("aysnd", ay_enable_w)
@@ -542,15 +542,15 @@ ADDRESS_MAP_END
/* standard COP420 map */
-static ADDRESS_MAP_START( looping_cop_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( looping_cop_map, AS_PROGRAM, 8, looping_state )
AM_RANGE(0x0000, 0x03ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( looping_cop_data_map, AS_DATA, 8 )
+static ADDRESS_MAP_START( looping_cop_data_map, AS_DATA, 8, looping_state )
AM_RANGE(0x0000, 0x003f) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( looping_cop_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( looping_cop_io_map, AS_IO, 8, looping_state )
AM_RANGE(0x0100, 0x0107) AM_READWRITE(cop_io_r, cop_io_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/lordgun.c b/src/mame/drivers/lordgun.c
index 44e751a4c7c..c33f99a28c6 100644
--- a/src/mame/drivers/lordgun.c
+++ b/src/mame/drivers/lordgun.c
@@ -267,7 +267,7 @@ static WRITE16_HANDLER( lordgun_soundlatch_w )
cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_NMI, PULSE_LINE);
}
-static ADDRESS_MAP_START( lordgun_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( lordgun_map, AS_PROGRAM, 16, lordgun_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
AM_RANGE(0x210000, 0x21ffff) AM_RAM AM_BASE_MEMBER(lordgun_state, m_priority_ram) // PRIORITY
@@ -299,7 +299,7 @@ static ADDRESS_MAP_START( lordgun_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aliencha_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( aliencha_map, AS_PROGRAM, 16, lordgun_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
AM_RANGE(0x210000, 0x21ffff) AM_RAM AM_BASE_MEMBER(lordgun_state, m_priority_ram) // PRIORITY
@@ -333,7 +333,7 @@ ADDRESS_MAP_END
***************************************************************************/
-static ADDRESS_MAP_START( lordgun_soundmem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lordgun_soundmem_map, AS_PROGRAM, 8, lordgun_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
@@ -345,7 +345,7 @@ static WRITE8_DEVICE_HANDLER( lordgun_okibank_w )
// popmessage("OKI %x", data);
}
-static ADDRESS_MAP_START( lordgun_soundio_map, AS_IO, 8 )
+static ADDRESS_MAP_START( lordgun_soundio_map, AS_IO, 8, lordgun_state )
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE( "ymsnd", ym3812_w )
AM_RANGE(0x2000, 0x2000) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
AM_RANGE(0x3000, 0x3000) AM_READ( soundlatch2_r )
@@ -355,7 +355,7 @@ static ADDRESS_MAP_START( lordgun_soundio_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aliencha_soundio_map, AS_IO, 8 )
+static ADDRESS_MAP_START( aliencha_soundio_map, AS_IO, 8, lordgun_state )
AM_RANGE(0x3000, 0x3000) AM_READ( soundlatch2_r )
AM_RANGE(0x4000, 0x4000) AM_READ( soundlatch_r )
AM_RANGE(0x5000, 0x5000) AM_WRITENOP // writes 03 then 07 at end of NMI
diff --git a/src/mame/drivers/lsasquad.c b/src/mame/drivers/lsasquad.c
index c2262b9194c..c1ddd174986 100644
--- a/src/mame/drivers/lsasquad.c
+++ b/src/mame/drivers/lsasquad.c
@@ -165,7 +165,7 @@ static WRITE8_HANDLER( lsasquad_bankswitch_w )
/* other bits unknown */
}
-static ADDRESS_MAP_START( lsasquad_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lsasquad_map, AS_PROGRAM, 8, lsasquad_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xbfff) AM_RAM /* SRAM */
@@ -186,7 +186,7 @@ static ADDRESS_MAP_START( lsasquad_map, AS_PROGRAM, 8 )
AM_RANGE(0xee00, 0xee00) AM_READWRITE(lsasquad_mcu_r,lsasquad_mcu_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lsasquad_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lsasquad_sound_map, AS_PROGRAM, 8, lsasquad_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym2203_r,ym2203_w)
@@ -198,7 +198,7 @@ static ADDRESS_MAP_START( lsasquad_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_ROM /* space for diagnostic ROM? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lsasquad_m68705_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lsasquad_m68705_map, AS_PROGRAM, 8, lsasquad_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(lsasquad_68705_port_a_r,lsasquad_68705_port_a_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(lsasquad_68705_port_b_r,lsasquad_68705_port_b_w)
@@ -210,7 +210,7 @@ static ADDRESS_MAP_START( lsasquad_m68705_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( storming_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( storming_map, AS_PROGRAM, 8, lsasquad_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xbfff) AM_RAM /* SRAM */
@@ -373,7 +373,7 @@ INPUT_PORTS_END
/* DAIKAIJU */
-static ADDRESS_MAP_START( daikaiju_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( daikaiju_map, AS_PROGRAM, 8, lsasquad_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xbfff) AM_RAM /* SRAM */
@@ -393,7 +393,7 @@ static ADDRESS_MAP_START( daikaiju_map, AS_PROGRAM, 8 )
AM_RANGE(0xee00, 0xee00) AM_READWRITE(lsasquad_mcu_r, lsasquad_mcu_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( daikaiju_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( daikaiju_sound_map, AS_PROGRAM, 8, lsasquad_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
diff --git a/src/mame/drivers/ltcasino.c b/src/mame/drivers/ltcasino.c
index 9f5e4e21701..151417f4ac8 100644
--- a/src/mame/drivers/ltcasino.c
+++ b/src/mame/drivers/ltcasino.c
@@ -67,7 +67,7 @@ static WRITE8_HANDLER( ltcasino_tile_atr_w )
}
-static ADDRESS_MAP_START( ltcasino_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ltcasino_map, AS_PROGRAM, 8, ltcasino_state )
AM_RANGE(0x0000, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xcfff) AM_ROM
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(ltcasino_tile_num_w) AM_BASE_MEMBER(ltcasino_state, m_tile_num_ram)
diff --git a/src/mame/drivers/luckgrln.c b/src/mame/drivers/luckgrln.c
index f4762a9cf65..fdd1d8e30d3 100644
--- a/src/mame/drivers/luckgrln.c
+++ b/src/mame/drivers/luckgrln.c
@@ -358,7 +358,7 @@ static SCREEN_UPDATE_IND16(luckgrln)
return 0;
}
-static ADDRESS_MAP_START( mainmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mainmap, AS_PROGRAM, 8, luckgrln_state )
AM_RANGE(0x00000, 0x03fff) AM_ROM
AM_RANGE(0x10000, 0x1ffff) AM_ROM AM_REGION("rom_data",0x10000)
AM_RANGE(0x20000, 0x2ffff) AM_ROM AM_REGION("rom_data",0x00000)
@@ -393,7 +393,7 @@ static ADDRESS_MAP_START( mainmap, AS_PROGRAM, 8 )
AM_RANGE(0xf0000, 0xfffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( _7smash_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( _7smash_map, AS_PROGRAM, 8, luckgrln_state )
AM_RANGE(0x00000, 0x0bfff) AM_ROM
AM_IMPORT_FROM( mainmap )
AM_RANGE(0x10000, 0x2ffff) AM_UNMAP
@@ -543,7 +543,7 @@ static WRITE8_HANDLER(counters_w)
/* are some of these reads / writes mirrored? there seem to be far too many */
-static ADDRESS_MAP_START( portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( portmap, AS_IO, 8, luckgrln_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x0000, 0x003f) AM_RAM // Z180 internal regs
AM_RANGE(0x0060, 0x0060) AM_WRITE(output_w)
@@ -603,7 +603,7 @@ static READ8_HANDLER( test_r )
return 0xff;
}
-static ADDRESS_MAP_START( _7smash_io, AS_IO, 8 )
+static ADDRESS_MAP_START( _7smash_io, AS_IO, 8, luckgrln_state )
AM_RANGE(0x66, 0x66) AM_READ(test_r)
AM_IMPORT_FROM( portmap )
ADDRESS_MAP_END
diff --git a/src/mame/drivers/lucky74.c b/src/mame/drivers/lucky74.c
index 9c17889165d..6063b6090ae 100644
--- a/src/mame/drivers/lucky74.c
+++ b/src/mame/drivers/lucky74.c
@@ -806,7 +806,7 @@ static INTERRUPT_GEN( nmi_interrupt )
* Memory Map Information *
*************************/
-static ADDRESS_MAP_START( lucky74_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lucky74_map, AS_PROGRAM, 8, lucky74_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("nvram") /* NVRAM */
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(lucky74_fg_videoram_w) AM_BASE_MEMBER(lucky74_state, m_fg_videoram) /* VRAM1-1 */
@@ -826,7 +826,7 @@ static ADDRESS_MAP_START( lucky74_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xf803) AM_READWRITE(copro_sm7831_r, copro_sm7831_w) /* SM7831 Co-Processor */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lucky74_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( lucky74_portmap, AS_IO, 8, lucky74_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x05) AM_READWRITE(custom_09R81P_port_r, custom_09R81P_port_w) /* custom 09R81P (samples system) */
// AM_RANGE(0xff, 0xff) AM_READWRITE(???)
diff --git a/src/mame/drivers/lvcards.c b/src/mame/drivers/lvcards.c
index b7d6b10a6fa..a910af071f7 100644
--- a/src/mame/drivers/lvcards.c
+++ b/src/mame/drivers/lvcards.c
@@ -150,7 +150,7 @@ static READ8_HANDLER( payout_r )
return state->m_result;
}
-static ADDRESS_MAP_START( ponttehk_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ponttehk_map, AS_PROGRAM, 8, lvcards_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x67ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(lvcards_videoram_w) AM_BASE_MEMBER(lvcards_state, m_videoram)
@@ -160,7 +160,7 @@ static ADDRESS_MAP_START( ponttehk_map, AS_PROGRAM, 8 )
AM_RANGE(0xa002, 0xa002) AM_READ(payout_r) AM_WRITE(control_port_2a_w)//AM_WRITENOP // ???
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lvcards_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lvcards_map, AS_PROGRAM, 8, lvcards_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x67ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(lvcards_videoram_w) AM_BASE_MEMBER(lvcards_state, m_videoram)
@@ -171,13 +171,13 @@ static ADDRESS_MAP_START( lvcards_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xdfff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lvcards_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( lvcards_io_map, AS_IO, 8, lvcards_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_data_address_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lvpoker_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lvpoker_map, AS_PROGRAM, 8, lvcards_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x67ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(lvcards_videoram_w) AM_BASE_MEMBER(lvcards_state, m_videoram)
diff --git a/src/mame/drivers/lwings.c b/src/mame/drivers/lwings.c
index ddf1f46d362..2a53f6c638a 100644
--- a/src/mame/drivers/lwings.c
+++ b/src/mame/drivers/lwings.c
@@ -287,7 +287,7 @@ static WRITE8_DEVICE_HANDLER( msm5205_w )
msm5205_vclk_w(device, 0);
}
-static ADDRESS_MAP_START( avengers_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( avengers_map, AS_PROGRAM, 8, lwings_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xddff) AM_RAM
@@ -311,7 +311,7 @@ static ADDRESS_MAP_START( avengers_map, AS_PROGRAM, 8 )
AM_RANGE(0xf80e, 0xf80e) AM_WRITE(lwings_bankswitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lwings_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lwings_map, AS_PROGRAM, 8, lwings_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xddff) AM_RAM
@@ -332,7 +332,7 @@ static ADDRESS_MAP_START( lwings_map, AS_PROGRAM, 8 )
AM_RANGE(0xf80e, 0xf80e) AM_WRITE(lwings_bankswitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( trojan_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( trojan_map, AS_PROGRAM, 8, lwings_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xddff) AM_RAM
@@ -356,7 +356,7 @@ static ADDRESS_MAP_START( trojan_map, AS_PROGRAM, 8 )
AM_RANGE(0xf80e, 0xf80e) AM_WRITE(lwings_bankswitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lwings_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lwings_sound_map, AS_PROGRAM, 8, lwings_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc800) AM_READ(soundlatch_r)
@@ -367,17 +367,17 @@ static ADDRESS_MAP_START( lwings_sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* Yes, _no_ ram */
-static ADDRESS_MAP_START( trojan_adpcm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( trojan_adpcm_map, AS_PROGRAM, 8, lwings_state )
AM_RANGE(0x0000, 0xffff) AM_ROM AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( avengers_adpcm_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( avengers_adpcm_io_map, AS_IO, 8, lwings_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(avengers_adpcm_r)
AM_RANGE(0x01, 0x01) AM_DEVWRITE("5205", msm5205_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( trojan_adpcm_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( trojan_adpcm_io_map, AS_IO, 8, lwings_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch2_r)
AM_RANGE(0x01, 0x01) AM_DEVWRITE("5205", msm5205_w)
diff --git a/src/mame/drivers/m10.c b/src/mame/drivers/m10.c
index d729e5af813..c4db5d28cc0 100644
--- a/src/mame/drivers/m10.c
+++ b/src/mame/drivers/m10.c
@@ -557,7 +557,7 @@ static INTERRUPT_GEN( m15_interrupt )
*
*************************************/
-static ADDRESS_MAP_START( m10_main, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m10_main, AS_PROGRAM, 8, m10_state )
AM_RANGE(0x0000, 0x02ff) AM_RAM AM_BASE_MEMBER(m10_state, m_memory) /* scratch ram */
AM_RANGE(0x1000, 0x2fff) AM_ROM AM_BASE_MEMBER(m10_state, m_rom)
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE_SIZE_MEMBER(m10_state, m_videoram, m_videoram_size)
@@ -571,7 +571,7 @@ static ADDRESS_MAP_START( m10_main, AS_PROGRAM, 8 )
AM_RANGE(0xfc00, 0xffff) AM_ROM /* for the reset / interrupt vectors */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m11_main, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m11_main, AS_PROGRAM, 8, m10_state )
AM_RANGE(0x0000, 0x02ff) AM_RAM AM_BASE_MEMBER(m10_state, m_memory) /* scratch ram */
AM_RANGE(0x1000, 0x2fff) AM_ROM AM_BASE_MEMBER(m10_state, m_rom)
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE_SIZE_MEMBER(m10_state, m_videoram, m_videoram_size)
@@ -585,7 +585,7 @@ static ADDRESS_MAP_START( m11_main, AS_PROGRAM, 8 )
AM_RANGE(0xfc00, 0xffff) AM_ROM /* for the reset / interrupt vectors */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m15_main, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m15_main, AS_PROGRAM, 8, m10_state )
AM_RANGE(0x0000, 0x02ff) AM_RAM AM_BASE_MEMBER(m10_state, m_memory) /* scratch ram */
AM_RANGE(0x1000, 0x33ff) AM_ROM AM_BASE_MEMBER(m10_state, m_rom)
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE_SIZE_MEMBER(m10_state, m_videoram, m_videoram_size)
diff --git a/src/mame/drivers/m107.c b/src/mame/drivers/m107.c
index 52f64d1c8c3..e5666b444ca 100644
--- a/src/mame/drivers/m107.c
+++ b/src/mame/drivers/m107.c
@@ -127,7 +127,7 @@ static WRITE16_HANDLER( m107_sound_reset_w )
/*****************************************************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, m107_state )
AM_RANGE(0x00000, 0x9ffff) AM_ROM
AM_RANGE(0xa0000, 0xbffff) AM_ROMBANK("bank1")
AM_RANGE(0xd0000, 0xdffff) AM_RAM_WRITE(m107_vram_w) AM_BASE_MEMBER(m107_state, m_vram_data)
@@ -137,7 +137,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0xffff0, 0xfffff) AM_ROM AM_REGION("maincpu", 0x7fff0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_portmap, AS_IO, 16 )
+static ADDRESS_MAP_START( main_portmap, AS_IO, 16, m107_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("P1_P2")
AM_RANGE(0x02, 0x03) AM_READ_PORT("COINS_DSW3")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
@@ -164,14 +164,14 @@ static WRITE16_HANDLER( wpksoc_output_w )
popmessage("%04x",data);
}
-static ADDRESS_MAP_START( wpksoc_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( wpksoc_map, AS_PROGRAM, 16, m107_state )
AM_RANGE(0xf0000, 0xf0001) AM_READ_PORT("WPK_DSW0")
AM_RANGE(0xf0002, 0xf0003) AM_READ_PORT("WPK_DSW1")
AM_RANGE(0xf0004, 0xf0005) AM_READ_PORT("WPK_DSW2")
AM_IMPORT_FROM(main_map)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wpksoc_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( wpksoc_io_map, AS_IO, 16, m107_state )
AM_RANGE(0x22, 0x23) AM_WRITE(wpksoc_output_w)
AM_RANGE(0xc0, 0xc1) AM_READ_PORT("WPK_IN0")
AM_RANGE(0xc2, 0xc3) AM_READ_PORT("WPK_IN1")
@@ -180,7 +180,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16, m107_state )
AM_RANGE(0x00000, 0x1ffff) AM_ROM
AM_RANGE(0xa0000, 0xa3fff) AM_RAM
AM_RANGE(0xa8000, 0xa803f) AM_DEVREADWRITE8("irem", irem_ga20_r, irem_ga20_w, 0x00ff)
diff --git a/src/mame/drivers/m14.c b/src/mame/drivers/m14.c
index 404c4a219c0..66d4a185ece 100644
--- a/src/mame/drivers/m14.c
+++ b/src/mame/drivers/m14.c
@@ -198,14 +198,14 @@ static WRITE8_HANDLER( hopper_w )
*
*************************************/
-static ADDRESS_MAP_START( m14_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m14_map, AS_PROGRAM, 8, m14_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE(m14_vram_w) AM_BASE_MEMBER(m14_state, m_video_ram)
AM_RANGE(0xe400, 0xe7ff) AM_RAM_WRITE(m14_cram_w) AM_BASE_MEMBER(m14_state, m_color_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m14_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( m14_io_map, AS_IO, 8, m14_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xf8, 0xf8) AM_READ_PORT("AN_PADDLE") AM_WRITENOP
AM_RANGE(0xf9, 0xf9) AM_READ(input_buttons_r) AM_WRITENOP
diff --git a/src/mame/drivers/m52.c b/src/mame/drivers/m52.c
index fb401837aa0..90716eb2ab8 100644
--- a/src/mame/drivers/m52.c
+++ b/src/mame/drivers/m52.c
@@ -58,7 +58,7 @@
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, m52_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(m52_videoram_w) AM_BASE_MEMBER(m52_state, m_videoram)
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(m52_colorram_w) AM_BASE_MEMBER(m52_state, m_colorram)
@@ -75,7 +75,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( alpha1v_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( alpha1v_map, AS_PROGRAM, 8, m52_state )
AM_RANGE(0x0000, 0x6fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(m52_videoram_w) AM_BASE_MEMBER(m52_state, m_videoram)
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(m52_colorram_w) AM_BASE_MEMBER(m52_state, m_colorram)
@@ -89,7 +89,7 @@ static ADDRESS_MAP_START( alpha1v_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, AS_IO, 8, m52_state )
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)
diff --git a/src/mame/drivers/m57.c b/src/mame/drivers/m57.c
index 803b07dd426..f34be4be279 100644
--- a/src/mame/drivers/m57.c
+++ b/src/mame/drivers/m57.c
@@ -64,7 +64,7 @@
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, m57_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(m57_videoram_w) AM_BASE_MEMBER(m57_state, m_videoram)
AM_RANGE(0x9000, 0x91ff) AM_RAM AM_BASE_MEMBER(m57_state, m_scrollram)
diff --git a/src/mame/drivers/m58.c b/src/mame/drivers/m58.c
index c38ea68ecb8..72b9b34372d 100644
--- a/src/mame/drivers/m58.c
+++ b/src/mame/drivers/m58.c
@@ -24,7 +24,7 @@
*
*************************************/
-static ADDRESS_MAP_START( yard_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( yard_map, AS_PROGRAM, 8, m58_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(yard_videoram_w) AM_BASE_MEMBER(m58_state, m_videoram)
AM_RANGE(0x9000, 0x9fff) AM_WRITE(yard_scroll_panel_w)
diff --git a/src/mame/drivers/m62.c b/src/mame/drivers/m62.c
index 31195954a99..e4ae9ba121f 100644
--- a/src/mame/drivers/m62.c
+++ b/src/mame/drivers/m62.c
@@ -172,7 +172,7 @@ static WRITE8_HANDLER( youjyudn_bankswitch_w )
}
-static ADDRESS_MAP_START( kungfum_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kungfum_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_WRITE(m62_hscroll_low_w)
AM_RANGE(0xb000, 0xb000) AM_WRITE(m62_hscroll_high_w)
@@ -183,7 +183,7 @@ static ADDRESS_MAP_START( kungfum_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kungfum_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( kungfum_io_map, AS_IO, 8, m62_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("SYSTEM") AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_WRITE(m62_flipscreen_w) /* + coin counters */
@@ -192,7 +192,7 @@ static ADDRESS_MAP_START( kungfum_io_map, AS_IO, 8 )
AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( battroad_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( battroad_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc0ff) AM_WRITEONLY AM_BASE_SIZE_MEMBER(m62_state, m_spriteram, m_spriteram_size)
@@ -201,7 +201,7 @@ static ADDRESS_MAP_START( battroad_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( battroad_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( battroad_io_map, AS_IO, 8, m62_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("SYSTEM") AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_WRITE(m62_flipscreen_w) /* + coin counters */
@@ -214,14 +214,14 @@ static ADDRESS_MAP_START( battroad_io_map, AS_IO, 8 )
AM_RANGE(0x83, 0x83) AM_WRITE(battroad_bankswitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ldrun_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ldrun_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc0ff) AM_WRITEONLY AM_BASE_SIZE_MEMBER(m62_state, m_spriteram, m_spriteram_size)
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(m62_tileram_w) AM_BASE_MEMBER(m62_state, m_m62_tileram)
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ldrun2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ldrun2_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc0ff) AM_WRITEONLY AM_BASE_SIZE_MEMBER(m62_state, m_spriteram, m_spriteram_size)
@@ -229,7 +229,7 @@ static ADDRESS_MAP_START( ldrun2_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ldrun2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( ldrun2_io_map, AS_IO, 8, m62_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("SYSTEM") AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_WRITE(m62_flipscreen_w) /* + coin counters */
@@ -240,7 +240,7 @@ static ADDRESS_MAP_START( ldrun2_io_map, AS_IO, 8 )
AM_RANGE(0x80, 0x81) AM_WRITE(ldrun2_bankswitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ldrun3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ldrun3_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc800, 0xc800) AM_READ(ldrun3_prot_5_r)
AM_RANGE(0xcc00, 0xcc00) AM_READ(ldrun3_prot_7_r)
@@ -250,7 +250,7 @@ static ADDRESS_MAP_START( ldrun3_map, AS_PROGRAM, 8 )
AM_RANGE(0xd000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ldrun3_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( ldrun3_io_map, AS_IO, 8, m62_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("SYSTEM") AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_WRITE(m62_flipscreen_w) /* + coin counters */
@@ -261,7 +261,7 @@ static ADDRESS_MAP_START( ldrun3_io_map, AS_IO, 8 )
AM_RANGE(0x81, 0x81) AM_WRITE(ldrun3_topbottom_mask_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ldrun4_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ldrun4_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc0ff) AM_WRITEONLY AM_BASE_SIZE_MEMBER(m62_state, m_spriteram, m_spriteram_size)
@@ -270,7 +270,7 @@ static ADDRESS_MAP_START( ldrun4_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ldrun4_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( ldrun4_io_map, AS_IO, 8, m62_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("SYSTEM") AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_WRITE(m62_flipscreen_w) /* + coin counters */
@@ -281,7 +281,7 @@ static ADDRESS_MAP_START( ldrun4_io_map, AS_IO, 8 )
AM_RANGE(0x83, 0x83) AM_WRITE(m62_hscroll_low_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lotlot_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lotlot_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xafff) AM_RAM_WRITE(m62_textram_w) AM_BASE_MEMBER(m62_state, m_m62_textram)
AM_RANGE(0xc000, 0xc0ff) AM_WRITEONLY AM_BASE_SIZE_MEMBER(m62_state, m_spriteram, m_spriteram_size)
@@ -289,7 +289,7 @@ static ADDRESS_MAP_START( lotlot_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kidniki_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kidniki_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xafff) AM_RAM_WRITE(m62_tileram_w) AM_BASE_MEMBER(m62_state, m_m62_tileram)
@@ -298,7 +298,7 @@ static ADDRESS_MAP_START( kidniki_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kidniki_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( kidniki_io_map, AS_IO, 8, m62_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("SYSTEM") AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_WRITE(m62_flipscreen_w) /* + coin counters */
@@ -313,7 +313,7 @@ static ADDRESS_MAP_START( kidniki_io_map, AS_IO, 8 )
AM_RANGE(0x85, 0x85) AM_WRITE(kidniki_bankswitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spelunkr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spelunkr_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xbfff) AM_RAM_WRITE(m62_tileram_w) AM_BASE_MEMBER(m62_state, m_m62_tileram)
@@ -328,7 +328,7 @@ static ADDRESS_MAP_START( spelunkr_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spelunk2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spelunk2_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_ROMBANK("bank1")
AM_RANGE(0x9000, 0x9fff) AM_ROMBANK("bank2")
@@ -342,7 +342,7 @@ static ADDRESS_MAP_START( spelunk2_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( youjyudn_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( youjyudn_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc0ff) AM_WRITEONLY AM_BASE_SIZE_MEMBER(m62_state, m_spriteram, m_spriteram_size)
@@ -351,7 +351,7 @@ static ADDRESS_MAP_START( youjyudn_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( youjyudn_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( youjyudn_io_map, AS_IO, 8, m62_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("SYSTEM") AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_WRITE(m62_flipscreen_w) /* + coin counters */
@@ -363,7 +363,7 @@ static ADDRESS_MAP_START( youjyudn_io_map, AS_IO, 8 )
AM_RANGE(0x83, 0x83) AM_WRITE(youjyudn_bankswitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( horizon_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( horizon_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc1ff) AM_RAM AM_BASE_SIZE_MEMBER(m62_state, m_spriteram, m_spriteram_size)
AM_RANGE(0xc800, 0xc83f) AM_RAM_WRITE(horizon_scrollram_w) AM_BASE_MEMBER(m62_state, m_scrollram)
diff --git a/src/mame/drivers/m63.c b/src/mame/drivers/m63.c
index 6232ee89b47..afcf85455c8 100644
--- a/src/mame/drivers/m63.c
+++ b/src/mame/drivers/m63.c
@@ -444,7 +444,7 @@ static WRITE8_HANDLER( nmi_mask_w )
}
-static ADDRESS_MAP_START( m63_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m63_map, AS_PROGRAM, 8, m63_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xd000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe1ff) AM_RAM
@@ -464,7 +464,7 @@ static ADDRESS_MAP_START( m63_map, AS_PROGRAM, 8 )
AM_RANGE(0xf806, 0xf806) AM_READ_PORT("DSW2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fghtbskt_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fghtbskt_map, AS_PROGRAM, 8, m63_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
@@ -491,12 +491,12 @@ static ADDRESS_MAP_START( fghtbskt_map, AS_PROGRAM, 8 )
AM_RANGE(0xf807, 0xf807) AM_WRITE(fghtbskt_samples_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( i8039_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( i8039_map, AS_PROGRAM, 8, m63_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( i8039_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( i8039_port_map, AS_IO, 8, m63_state )
AM_RANGE(0x00, 0xff) AM_READWRITE(snddata_r, snddata_w)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_WRITE(p1_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(p2_w)
diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c
index 0e428284247..fc085043433 100644
--- a/src/mame/drivers/m72.c
+++ b/src/mame/drivers/m72.c
@@ -891,7 +891,7 @@ static READ16_HANDLER( poundfor_trackball_r )
#define CPU1_MEMORY(NAME,ROMSIZE,WORKRAM) \
-static ADDRESS_MAP_START( NAME##_map, AS_PROGRAM, 16 ) \
+static ADDRESS_MAP_START( NAME##_map, AS_PROGRAM, 16 , m72_state ) \
AM_RANGE(0x00000, ROMSIZE-1) AM_ROM \
AM_RANGE(WORKRAM, WORKRAM+0x3fff) AM_RAM /* work RAM */ \
AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_BASE_SIZE_MEMBER(m72_state, m_spriteram, m_spriteram_size) \
@@ -910,7 +910,7 @@ CPU1_MEMORY( rtype, 0x40000, 0x40000 )
CPU1_MEMORY( xmultiplm72, 0x80000, 0x80000 )
CPU1_MEMORY( dbreedm72, 0x80000, 0x90000 )
-static ADDRESS_MAP_START( xmultipl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( xmultipl_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0x9c000, 0x9ffff) AM_RAM /* work RAM */
AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */
@@ -922,7 +922,7 @@ static ADDRESS_MAP_START( xmultipl_map, AS_PROGRAM, 16 )
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dbreed_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dbreed_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0x88000, 0x8bfff) AM_RAM /* work RAM */
AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */
@@ -934,7 +934,7 @@ static ADDRESS_MAP_START( dbreed_map, AS_PROGRAM, 16 )
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rtype2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rtype2_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0xb0000, 0xb0001) AM_WRITE(m72_irq_line_w)
AM_RANGE(0xbc000, 0xbc001) AM_WRITE(m72_dmaon_w)
@@ -947,7 +947,7 @@ static ADDRESS_MAP_START( rtype2_map, AS_PROGRAM, 16 )
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( majtitle_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( majtitle_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0xa0000, 0xa03ff) AM_RAM AM_BASE_MEMBER(m72_state, m_majtitle_rowscrollram)
AM_RANGE(0xa4000, 0xa4bff) AM_READWRITE(m72_palette2_r, m72_palette2_w) AM_BASE_GENERIC(paletteram2)
@@ -963,7 +963,7 @@ static ADDRESS_MAP_START( majtitle_map, AS_PROGRAM, 16 )
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hharry_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hharry_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0xa0000, 0xa3fff) AM_RAM /* work RAM */
AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */
@@ -975,7 +975,7 @@ static ADDRESS_MAP_START( hharry_map, AS_PROGRAM, 16 )
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hharryu_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hharryu_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0xa0000, 0xa0bff) AM_READWRITE(m72_palette1_r, m72_palette1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xa8000, 0xa8bff) AM_READWRITE(m72_palette2_r, m72_palette2_w) AM_BASE_GENERIC(paletteram2)
@@ -989,7 +989,7 @@ static ADDRESS_MAP_START( hharryu_map, AS_PROGRAM, 16 )
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kengo_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( kengo_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0xa0000, 0xa0bff) AM_READWRITE(m72_palette1_r, m72_palette1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xa8000, 0xa8bff) AM_READWRITE(m72_palette2_r, m72_palette2_w) AM_BASE_GENERIC(paletteram2)
@@ -1003,7 +1003,7 @@ static ADDRESS_MAP_START( kengo_map, AS_PROGRAM, 16 )
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m72_portmap, AS_IO, 16 )
+static ADDRESS_MAP_START( m72_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x03) AM_READ_PORT("IN1")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
@@ -1019,7 +1019,7 @@ static ADDRESS_MAP_START( m72_portmap, AS_IO, 16 )
/* { 0xc0, 0xc0 trigger sample, filled by init_ function */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rtype2_portmap, AS_IO, 16 )
+static ADDRESS_MAP_START( rtype2_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x03) AM_READ_PORT("IN1")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
@@ -1032,7 +1032,7 @@ static ADDRESS_MAP_START( rtype2_portmap, AS_IO, 16 )
AM_RANGE(0x86, 0x87) AM_WRITE(m72_scrollx2_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( poundfor_portmap, AS_IO, 16 )
+static ADDRESS_MAP_START( poundfor_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x02, 0x03) AM_READ_PORT("IN1")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
AM_RANGE(0x08, 0x0f) AM_READ(poundfor_trackball_r)
@@ -1045,7 +1045,7 @@ static ADDRESS_MAP_START( poundfor_portmap, AS_IO, 16 )
AM_RANGE(0x86, 0x87) AM_WRITE(m72_scrollx2_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( majtitle_portmap, AS_IO, 16 )
+static ADDRESS_MAP_START( majtitle_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x03) AM_READ_PORT("IN1")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
@@ -1059,7 +1059,7 @@ static ADDRESS_MAP_START( majtitle_portmap, AS_IO, 16 )
AM_RANGE(0x8e, 0x8f) AM_WRITE(majtitle_gfx_ctrl_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hharry_portmap, AS_IO, 16 )
+static ADDRESS_MAP_START( hharry_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x03) AM_READ_PORT("IN1")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
@@ -1074,7 +1074,7 @@ static ADDRESS_MAP_START( hharry_portmap, AS_IO, 16 )
AM_RANGE(0x86, 0x87) AM_WRITE(m72_scrollx2_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kengo_portmap, AS_IO, 16 )
+static ADDRESS_MAP_START( kengo_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x03) AM_READ_PORT("IN1")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
@@ -1088,16 +1088,16 @@ static ADDRESS_MAP_START( kengo_portmap, AS_IO, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_ram_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_ram_map, AS_PROGRAM, 8, m72_state )
AM_RANGE(0x0000, 0xffff) AM_RAM AM_BASE_MEMBER(m72_state, m_soundram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_rom_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_rom_map, AS_PROGRAM, 8, m72_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rtype_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( rtype_sound_portmap, AS_IO, 8, m72_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x02, 0x02) AM_READ(soundlatch_r)
@@ -1105,7 +1105,7 @@ static ADDRESS_MAP_START( rtype_sound_portmap, AS_IO, 8 )
AM_RANGE(0x84, 0x84) AM_DEVREAD("m72", m72_sample_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, m72_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x02, 0x02) AM_READ(soundlatch_r)
@@ -1114,7 +1114,7 @@ static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
AM_RANGE(0x84, 0x84) AM_DEVREAD("m72", m72_sample_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rtype2_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( rtype2_sound_portmap, AS_IO, 8, m72_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x80, 0x80) AM_READ(soundlatch_r)
@@ -1125,7 +1125,7 @@ static ADDRESS_MAP_START( rtype2_sound_portmap, AS_IO, 8 )
// AM_RANGE(0x87, 0x87) AM_WRITENOP /* ??? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( poundfor_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( poundfor_sound_portmap, AS_IO, 8, m72_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_DEVWRITE("m72", poundfor_sample_addr_w)
AM_RANGE(0x40, 0x41) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -1133,7 +1133,7 @@ static ADDRESS_MAP_START( poundfor_sound_portmap, AS_IO, 8 )
AM_RANGE(0x42, 0x42) AM_DEVWRITE("m72", m72_sound_irq_ack_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, m72_state )
/* External access */
AM_RANGE(0x0000, 0x0000) AM_READWRITE(m72_mcu_sample_r, m72_mcu_low_w)
AM_RANGE(0x0001, 0x0001) AM_WRITE(m72_mcu_high_w)
diff --git a/src/mame/drivers/m79amb.c b/src/mame/drivers/m79amb.c
index 06cd9dc5165..b39e2aace21 100644
--- a/src/mame/drivers/m79amb.c
+++ b/src/mame/drivers/m79amb.c
@@ -132,7 +132,7 @@ static WRITE8_HANDLER( m79amb_8002_w )
output_set_value("EXP_LAMP", data ? 1 : 0);
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, m79amb_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x5fff) AM_RAM_WRITE(ramtek_videoram_w) AM_BASE_MEMBER(m79amb_state, m_videoram)
AM_RANGE(0x6000, 0x63ff) AM_RAM /* ?? */
diff --git a/src/mame/drivers/m90.c b/src/mame/drivers/m90.c
index 90c0611c254..a0988dce3ce 100644
--- a/src/mame/drivers/m90.c
+++ b/src/mame/drivers/m90.c
@@ -72,7 +72,7 @@ static WRITE16_HANDLER( unknown_w )
/***************************************************************************/
-static ADDRESS_MAP_START( m90_main_cpu_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( m90_main_cpu_map, AS_PROGRAM, 16, m90_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0x80000, 0x8ffff) AM_ROMBANK("bank1") /* Quiz F1 only */
AM_RANGE(0xa0000, 0xa3fff) AM_RAM
@@ -81,7 +81,7 @@ static ADDRESS_MAP_START( m90_main_cpu_map, AS_PROGRAM, 16 )
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dynablsb_main_cpu_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dynablsb_main_cpu_map, AS_PROGRAM, 16, m90_state )
AM_RANGE(0x00000, 0x3ffff) AM_ROM
AM_RANGE(0x6000e, 0x60fff) AM_RAM AM_BASE_SIZE_MEMBER(m90_state, m_spriteram, m_spriteram_size)
AM_RANGE(0xa0000, 0xa3fff) AM_RAM
@@ -90,7 +90,7 @@ static ADDRESS_MAP_START( dynablsb_main_cpu_map, AS_PROGRAM, 16 )
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bomblord_main_cpu_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bomblord_main_cpu_map, AS_PROGRAM, 16, m90_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0xa0000, 0xa3fff) AM_RAM
AM_RANGE(0xc000e, 0xc0fff) AM_RAM AM_BASE_SIZE_MEMBER(m90_state, m_spriteram, m_spriteram_size)
@@ -99,7 +99,7 @@ static ADDRESS_MAP_START( bomblord_main_cpu_map, AS_PROGRAM, 16 )
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m90_main_cpu_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( m90_main_cpu_io_map, AS_IO, 16, m90_state )
AM_RANGE(0x00, 0x01) AM_DEVWRITE("m72", m72_sound_command_w)
AM_RANGE(0x00, 0x01) AM_READ_PORT("P1_P2")
AM_RANGE(0x02, 0x03) AM_WRITE(m90_coincounter_w)
@@ -109,7 +109,7 @@ static ADDRESS_MAP_START( m90_main_cpu_io_map, AS_IO, 16 )
AM_RANGE(0x80, 0x8f) AM_WRITE(m90_video_control_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dynablsb_main_cpu_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( dynablsb_main_cpu_io_map, AS_IO, 16, m90_state )
AM_RANGE(0x00, 0x01) AM_WRITE(dynablsb_sound_command_w)
AM_RANGE(0x00, 0x01) AM_READ_PORT("P1_P2")
AM_RANGE(0x02, 0x03) AM_WRITE(m90_coincounter_w)
@@ -123,12 +123,12 @@ ADDRESS_MAP_END
/*****************************************************************************/
-static ADDRESS_MAP_START( m90_sound_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m90_sound_cpu_map, AS_PROGRAM, 8, m90_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m90_sound_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( m90_sound_cpu_io_map, AS_IO, 8, m90_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x80, 0x80) AM_READ(soundlatch_r)
@@ -138,14 +138,14 @@ static ADDRESS_MAP_START( m90_sound_cpu_io_map, AS_IO, 8 )
AM_RANGE(0x84, 0x84) AM_DEVREAD("m72", m72_sample_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dynablsb_sound_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( dynablsb_sound_cpu_io_map, AS_IO, 8, m90_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x80, 0x80) AM_READ(soundlatch_r)
AM_RANGE(0x82, 0x82) AM_DEVWRITE("dac", dac_signed_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m99_sound_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( m99_sound_cpu_io_map, AS_IO, 8, m90_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("m72", poundfor_sample_addr_w)
AM_RANGE(0x40, 0x41) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c
index d439d741227..2aa844b105b 100644
--- a/src/mame/drivers/m92.c
+++ b/src/mame/drivers/m92.c
@@ -334,7 +334,7 @@ static WRITE16_HANDLER( m92_sound_reset_w )
/*****************************************************************************/
/* appears to be an earlier board */
-static ADDRESS_MAP_START( lethalth_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( lethalth_map, AS_PROGRAM, 16, m92_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0x80000, 0x8ffff) AM_RAM_WRITE(m92_vram_w) AM_BASE_MEMBER(m92_state, m_vram_data)
AM_RANGE(0xe0000, 0xeffff) AM_RAM /* System ram */
@@ -345,7 +345,7 @@ static ADDRESS_MAP_START( lethalth_map, AS_PROGRAM, 16 )
AM_RANGE(0xffff0, 0xfffff) AM_ROM AM_REGION("maincpu", 0x7fff0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m92_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( m92_map, AS_PROGRAM, 16, m92_state )
AM_RANGE(0x00000, 0x9ffff) AM_ROM
AM_RANGE(0xa0000, 0xbffff) AM_ROMBANK("bank1")
AM_RANGE(0xc0000, 0xcffff) AM_ROM AM_REGION("maincpu", 0x00000) /* Mirror used by In The Hunt as protection */
@@ -358,7 +358,7 @@ static ADDRESS_MAP_START( m92_map, AS_PROGRAM, 16 )
AM_RANGE(0xffff0, 0xfffff) AM_ROM AM_REGION("maincpu", 0x7fff0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m92_portmap, AS_IO, 16 )
+static ADDRESS_MAP_START( m92_portmap, AS_IO, 16, m92_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("P1_P2")
AM_RANGE(0x02, 0x03) AM_READ_PORT("COINS_DSW3")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
@@ -379,7 +379,7 @@ static WRITE16_DEVICE_HANDLER( oki_bank_w )
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * ((data+1) & 0x3)); // +1?
}
-static ADDRESS_MAP_START( ppan_portmap, AS_IO, 16 )
+static ADDRESS_MAP_START( ppan_portmap, AS_IO, 16, m92_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("P1_P2")
AM_RANGE(0x02, 0x03) AM_READ_PORT("COINS_DSW3")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
@@ -398,7 +398,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16, m92_state )
AM_RANGE(0x00000, 0x1ffff) AM_ROM
AM_RANGE(0xa0000, 0xa3fff) AM_RAM
AM_RANGE(0xa8000, 0xa803f) AM_DEVREADWRITE8("irem", irem_ga20_r, irem_ga20_w, 0x00ff)
diff --git a/src/mame/drivers/macrossp.c b/src/mame/drivers/macrossp.c
index 7fdf74ef3a4..bd70f739ebd 100644
--- a/src/mame/drivers/macrossp.c
+++ b/src/mame/drivers/macrossp.c
@@ -402,7 +402,7 @@ static WRITE32_HANDLER( macrossp_palette_fade_w )
/*** MEMORY MAPS *************************************************************/
-static ADDRESS_MAP_START( macrossp_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( macrossp_map, AS_PROGRAM, 32, macrossp_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM
AM_RANGE(0x800000, 0x802fff) AM_RAM AM_BASE_SIZE_MEMBER(macrossp_state, m_spriteram, m_spriteram_size)
/* SCR A Layer */
@@ -437,7 +437,7 @@ static ADDRESS_MAP_START( macrossp_map, AS_PROGRAM, 32 )
// AM_RANGE(0xfe0000, 0xfe0003) AM_NOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( macrossp_sound_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( macrossp_sound_map, AS_PROGRAM, 16, macrossp_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x207fff) AM_RAM
AM_RANGE(0x400000, 0x40007f) AM_DEVREADWRITE8("ensoniq", es5506_r, es5506_w, 0x00ff)
diff --git a/src/mame/drivers/macs.c b/src/mame/drivers/macs.c
index 1109eed879e..b5677863264 100644
--- a/src/mame/drivers/macs.c
+++ b/src/mame/drivers/macs.c
@@ -77,7 +77,7 @@ public:
static MACHINE_RESET(macs);
-static ADDRESS_MAP_START( macs_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( macs_mem, AS_PROGRAM, 8, macs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROMBANK("bank4")
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_READ(st0016_sprite_ram_r) AM_WRITE(st0016_sprite_ram_w)
@@ -170,7 +170,7 @@ static WRITE8_HANDLER( macs_output_w )
}
}
-static ADDRESS_MAP_START( macs_io, AS_IO, 8 )
+static ADDRESS_MAP_START( macs_io, AS_IO, 8, macs_state )
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)
diff --git a/src/mame/drivers/madalien.c b/src/mame/drivers/madalien.c
index 6826424da06..43e0785d332 100644
--- a/src/mame/drivers/madalien.c
+++ b/src/mame/drivers/madalien.c
@@ -78,7 +78,7 @@ static WRITE8_DEVICE_HANDLER( madalien_portB_w )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, madalien_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x6000, 0x63ff) AM_RAM_WRITE(madalien_videoram_w) AM_BASE_MEMBER(madalien_state, m_videoram)
@@ -106,7 +106,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, madalien_state )
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x1c00) AM_RAM
AM_RANGE(0x6000, 0x6003) AM_MIRROR(0x1ffc) AM_RAM /* unknown device in an epoxy block, might be tilt detection */
AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x1ffc) AM_READ(madalien_sound_command_r)
diff --git a/src/mame/drivers/madmotor.c b/src/mame/drivers/madmotor.c
index 5460ac84788..847af761a7e 100644
--- a/src/mame/drivers/madmotor.c
+++ b/src/mame/drivers/madmotor.c
@@ -39,7 +39,7 @@ static WRITE16_HANDLER( madmotor_sound_w )
/******************************************************************************/
-static ADDRESS_MAP_START( madmotor_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( madmotor_map, AS_PROGRAM, 16, madmotor_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x180000, 0x180007) AM_DEVWRITE("tilegen1", deco_bac06_pf_control_0_w) /* text layer */
AM_RANGE(0x180010, 0x180017) AM_DEVWRITE("tilegen1", deco_bac06_pf_control_1_w)
@@ -67,7 +67,7 @@ ADDRESS_MAP_END
/******************************************************************************/
/* Physical memory map (21 bits) */
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, madmotor_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_DEVREADWRITE("ym1", ym2203_r,ym2203_w)
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ym2", ym2151_r,ym2151_w)
diff --git a/src/mame/drivers/magic10.c b/src/mame/drivers/magic10.c
index 0b15ac3631f..b0f64af1dfb 100644
--- a/src/mame/drivers/magic10.c
+++ b/src/mame/drivers/magic10.c
@@ -282,7 +282,7 @@ static WRITE16_HANDLER( magic10_out_w )
* Memory Maps *
***************************/
-static ADDRESS_MAP_START( magic10_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( magic10_map, AS_PROGRAM, 16, magic10_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(layer1_videoram_w) AM_BASE_MEMBER(magic10_state, m_layer1_videoram)
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_BASE_MEMBER(magic10_state, m_layer0_videoram)
@@ -298,7 +298,7 @@ static ADDRESS_MAP_START( magic10_map, AS_PROGRAM, 16 )
AM_RANGE(0x600000, 0x603fff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( magic10a_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( magic10a_map, AS_PROGRAM, 16, magic10_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(layer1_videoram_w) AM_BASE_MEMBER(magic10_state, m_layer1_videoram)
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_BASE_MEMBER(magic10_state, m_layer0_videoram)
@@ -314,7 +314,7 @@ static ADDRESS_MAP_START( magic10a_map, AS_PROGRAM, 16 )
AM_RANGE(0x600000, 0x603fff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( magic102_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( magic102_map, AS_PROGRAM, 16, magic10_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(layer1_videoram_w) AM_BASE_MEMBER(magic10_state, m_layer1_videoram)
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_BASE_MEMBER(magic10_state, m_layer0_videoram)
@@ -333,7 +333,7 @@ static ADDRESS_MAP_START( magic102_map, AS_PROGRAM, 16 )
AM_RANGE(0x700080, 0x700087) AM_RAM AM_BASE_MEMBER(magic10_state, m_vregs) // video registers?
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hotslot_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hotslot_map, AS_PROGRAM, 16, magic10_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(layer1_videoram_w) AM_BASE_MEMBER(magic10_state, m_layer1_videoram)
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_BASE_MEMBER(magic10_state, m_layer0_videoram)
@@ -352,7 +352,7 @@ static ADDRESS_MAP_START( hotslot_map, AS_PROGRAM, 16 )
AM_RANGE(0x700080, 0x700087) AM_RAM AM_BASE_MEMBER(magic10_state, m_vregs)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sgsafari_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sgsafari_map, AS_PROGRAM, 16, magic10_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(layer1_videoram_w) AM_BASE_MEMBER(magic10_state, m_layer1_videoram)
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_BASE_MEMBER(magic10_state, m_layer0_videoram)
diff --git a/src/mame/drivers/magicard.c b/src/mame/drivers/magicard.c
index 35fc5db6db8..738e408d64b 100644
--- a/src/mame/drivers/magicard.c
+++ b/src/mame/drivers/magicard.c
@@ -646,7 +646,7 @@ static WRITE16_HANDLER( scc68070_mmu_w )
* Memory Maps *
*************************/
-static ADDRESS_MAP_START( magicard_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( magicard_mem, AS_PROGRAM, 16, magicard_state )
// ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x00000000, 0x0017ffff) AM_MIRROR(0x7fe00000) AM_RAM AM_BASE_MEMBER(magicard_state, m_magicram) /*only 0-7ffff accessed in Magic Card*/
AM_RANGE(0x00180000, 0x001ffbff) AM_MIRROR(0x7fe00000) AM_RAM AM_REGION("maincpu", 0)
diff --git a/src/mame/drivers/magicfly.c b/src/mame/drivers/magicfly.c
index b396316b003..b03958c2005 100644
--- a/src/mame/drivers/magicfly.c
+++ b/src/mame/drivers/magicfly.c
@@ -593,7 +593,7 @@ static WRITE8_HANDLER( mux_port_w )
* Memory map information *
*************************/
-static ADDRESS_MAP_START( magicfly_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( magicfly_map, AS_PROGRAM, 8, magicfly_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") /* MK48Z02B NVRAM */
AM_RANGE(0x0800, 0x0800) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE_MODERN("crtc", mc6845_device, register_r, register_w)
diff --git a/src/mame/drivers/magmax.c b/src/mame/drivers/magmax.c
index 6aaefb88d54..ea680badbbb 100644
--- a/src/mame/drivers/magmax.c
+++ b/src/mame/drivers/magmax.c
@@ -204,7 +204,7 @@ static WRITE16_HANDLER( magmax_vreg_w )
-static ADDRESS_MAP_START( magmax_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( magmax_map, AS_PROGRAM, 16, magmax_state )
AM_RANGE(0x000000, 0x013fff) AM_ROM
AM_RANGE(0x018000, 0x018fff) AM_RAM
AM_RANGE(0x020000, 0x0207ff) AM_RAM AM_BASE_MEMBER(magmax_state, m_videoram)
@@ -220,13 +220,13 @@ static ADDRESS_MAP_START( magmax_map, AS_PROGRAM, 16 )
AM_RANGE(0x03001e, 0x03001f) AM_WRITENOP /* IRQ ack */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( magmax_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( magmax_sound_map, AS_PROGRAM, 8, magmax_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4000) AM_READ(magmax_sound_irq_ack)
AM_RANGE(0x6000, 0x67ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( magmax_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( magmax_sound_io_map, AS_IO, 8, magmax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x02, 0x03) AM_DEVWRITE("ay2", ay8910_address_data_w)
diff --git a/src/mame/drivers/magtouch.c b/src/mame/drivers/magtouch.c
index 6657572cac0..2cb6f8f2806 100644
--- a/src/mame/drivers/magtouch.c
+++ b/src/mame/drivers/magtouch.c
@@ -161,7 +161,7 @@ static WRITE8_HANDLER(magtouch_io_w)
}
}
-static ADDRESS_MAP_START( magtouch_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( magtouch_map, AS_PROGRAM, 32, magtouch_state )
AM_RANGE(0x00000000, 0x0009ffff) AM_RAM
AM_RANGE(0x000a0000, 0x000bffff) AM_RAM
AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM AM_REGION("video_bios", 0)
@@ -171,7 +171,7 @@ static ADDRESS_MAP_START( magtouch_map, AS_PROGRAM, 32 )
AM_RANGE(0xffff0000, 0xffffffff) AM_ROM AM_REGION("bios", 0 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( magtouch_io, AS_IO, 32 )
+static ADDRESS_MAP_START( magtouch_io, AS_IO, 32, magtouch_state )
AM_IMPORT_FROM(pcat32_io_common)
AM_RANGE(0x02e0, 0x02e7) AM_READWRITE8(magtouch_io_r, magtouch_io_w, 0xffffffff)
AM_RANGE(0x03f8, 0x03ff) AM_DEVREADWRITE8_MODERN("ns16450_0", ns16450_device, ins8250_r, ins8250_w, 0xffffffff)
diff --git a/src/mame/drivers/mainevt.c b/src/mame/drivers/mainevt.c
index 72c7b195c3a..378e01e6e62 100644
--- a/src/mame/drivers/mainevt.c
+++ b/src/mame/drivers/mainevt.c
@@ -168,7 +168,7 @@ static WRITE8_HANDLER( k052109_051960_w )
}
-static ADDRESS_MAP_START( mainevt_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mainevt_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0x1f80, 0x1f80) AM_WRITE(mainevt_bankswitch_w)
AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w) /* probably */
AM_RANGE(0x1f88, 0x1f88) AM_WRITE(mainevt_sh_irqtrigger_w) /* probably */
@@ -193,7 +193,7 @@ static ADDRESS_MAP_START( mainevt_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( devstors_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( devstors_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0x1f80, 0x1f80) AM_WRITE(mainevt_bankswitch_w)
AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w) /* probably */
AM_RANGE(0x1f88, 0x1f88) AM_WRITE(mainevt_sh_irqtrigger_w) /* probably */
@@ -217,7 +217,7 @@ static ADDRESS_MAP_START( devstors_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mainevt_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mainevt_sound_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_DEVWRITE("upd", upd7759_port_w)
@@ -228,7 +228,7 @@ static ADDRESS_MAP_START( mainevt_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf000) AM_WRITE(mainevt_sh_bankswitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( devstors_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( devstors_sound_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/mainsnk.c b/src/mame/drivers/mainsnk.c
index 8b4a9537935..6f1f3454d95 100644
--- a/src/mame/drivers/mainsnk.c
+++ b/src/mame/drivers/mainsnk.c
@@ -143,7 +143,7 @@ static CUSTOM_INPUT( mainsnk_sound_r )
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, mainsnk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("IN1")
@@ -159,7 +159,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(mainsnk_fgram_w) AM_BASE_MEMBER(mainsnk_state, m_fgram) // + work RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, mainsnk_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ(sound_command_r)
@@ -169,7 +169,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe008, 0xe009) AM_DEVWRITE("ay2", ay8910_address_data_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, mainsnk_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READNOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/majorpkr.c b/src/mame/drivers/majorpkr.c
index 7fc843cbae6..d1e4d4c9c1a 100644
--- a/src/mame/drivers/majorpkr.c
+++ b/src/mame/drivers/majorpkr.c
@@ -765,7 +765,7 @@ static WRITE8_HANDLER( pulses_w )
* Memory map information *
*************************/
-static ADDRESS_MAP_START( map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( map, AS_PROGRAM, 8, majorpkr_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_ROM AM_ROMBANK("rom_bank")
AM_RANGE(0xe800, 0xefff) AM_RAM AM_SHARE("nvram")
@@ -794,7 +794,7 @@ ADDRESS_MAP_END
60 W ---> PSG SN76489/96 initialization routines.
(Maybe a leftover for different hardware).
*/
-static ADDRESS_MAP_START( portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( portmap, AS_IO, 8, majorpkr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(rom_bank_w)
AM_RANGE(0x01, 0x01) AM_WRITE(palette_bank_w)
diff --git a/src/mame/drivers/malzak.c b/src/mame/drivers/malzak.c
index 2216ad3d0c6..135a9bc9635 100644
--- a/src/mame/drivers/malzak.c
+++ b/src/mame/drivers/malzak.c
@@ -98,7 +98,7 @@ static READ8_HANDLER( s2636_portA_r )
}
}
-static ADDRESS_MAP_START( malzak_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( malzak_map, AS_PROGRAM, 8, malzak_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x0bff) AM_ROM
AM_RANGE(0x0c00, 0x0fff) AM_ROMBANK("bank1")
@@ -118,7 +118,7 @@ static ADDRESS_MAP_START( malzak_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( malzak2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( malzak2_map, AS_PROGRAM, 8, malzak_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x0bff) AM_ROM
AM_RANGE(0x0c00, 0x0fff) AM_ROMBANK("bank1")
@@ -183,7 +183,7 @@ static READ8_HANDLER( collision_r )
return 0xd0 + state->m_collision_counter;
}
-static ADDRESS_MAP_START( malzak_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( malzak_io_map, AS_IO, 8, malzak_state )
AM_RANGE(0x00, 0x00) AM_READ(collision_r) // returns where a collision can occur.
AM_RANGE(0x40, 0x40) AM_WRITE(port40_w) // possibly sound codes for dual SN76477s
AM_RANGE(0x60, 0x60) AM_WRITE(port60_w) // possibly playfield scroll X offset
diff --git a/src/mame/drivers/manohman.c b/src/mame/drivers/manohman.c
index 507d1e90035..627a009612f 100644
--- a/src/mame/drivers/manohman.c
+++ b/src/mame/drivers/manohman.c
@@ -150,7 +150,7 @@ public:
* Memory Map Definition *
*********************************************/
-static ADDRESS_MAP_START( manohman_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( manohman_map, AS_PROGRAM, 16, _manohman_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_NOP // smell to MAX696 watchdog...
AM_RANGE(0x300000, 0x300001) AM_DEVWRITE8("saa", saa1099_data_w, 0x00ff)
diff --git a/src/mame/drivers/mappy.c b/src/mame/drivers/mappy.c
index 9325db80e29..a67c97189b5 100644
--- a/src/mame/drivers/mappy.c
+++ b/src/mame/drivers/mappy.c
@@ -894,7 +894,7 @@ static INTERRUPT_GEN( sub2_vblank_irq )
cputag_set_input_line(device->machine(), "sub2", 0, ASSERT_LINE);
}
-static ADDRESS_MAP_START( superpac_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( superpac_cpu1_map, AS_PROGRAM, 8, mappy_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(superpac_videoram_w) AM_BASE_MEMBER(mappy_state,m_videoram) /* video RAM */
AM_RANGE(0x0800, 0x1fff) AM_RAM AM_BASE_MEMBER(mappy_state,m_spriteram) /* work RAM with embedded sprite RAM */
AM_RANGE(0x2000, 0x2000) AM_READWRITE(superpac_flipscreen_r, superpac_flipscreen_w)
@@ -906,7 +906,7 @@ static ADDRESS_MAP_START( superpac_cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( phozon_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( phozon_cpu1_map, AS_PROGRAM, 8, mappy_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(superpac_videoram_w) AM_SHARE("share2") AM_BASE_MEMBER(mappy_state,m_videoram) /* video RAM */
AM_RANGE(0x0800, 0x1fff) AM_RAM AM_BASE_MEMBER(mappy_state,m_spriteram) AM_SHARE("share3") /* shared RAM with CPU #2/sprite RAM*/
AM_RANGE(0x4000, 0x43ff) AM_DEVREADWRITE("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with the sound CPU */
@@ -917,7 +917,7 @@ static ADDRESS_MAP_START( phozon_cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mappy_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mappy_cpu1_map, AS_PROGRAM, 8, mappy_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM_WRITE(mappy_videoram_w) AM_BASE_MEMBER(mappy_state,m_videoram) /* video RAM */
AM_RANGE(0x1000, 0x27ff) AM_RAM AM_BASE_MEMBER(mappy_state,m_spriteram) /* work RAM with embedded sprite RAM */
AM_RANGE(0x3800, 0x3fff) AM_WRITE(mappy_scroll_w) /* scroll */
@@ -930,18 +930,18 @@ static ADDRESS_MAP_START( mappy_cpu1_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( superpac_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( superpac_cpu2_map, AS_PROGRAM, 8, mappy_state )
AM_RANGE(0x0000, 0x03ff) AM_DEVREADWRITE("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with the main CPU (also sound registers) */
AM_RANGE(0x2000, 0x200f) AM_WRITE(superpac_latch_w) /* various control bits */
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( phozon_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( phozon_cpu2_map, AS_PROGRAM, 8, mappy_state )
AM_RANGE(0x0000, 0x03ff) AM_DEVREADWRITE("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with the main CPU + sound registers */
AM_RANGE(0xe000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mappy_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mappy_cpu2_map, AS_PROGRAM, 8, mappy_state )
AM_RANGE(0x0000, 0x03ff) AM_DEVREADWRITE("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with the main CPU (also sound registers) */
AM_RANGE(0x2000, 0x200f) AM_WRITE(mappy_latch_w) /* various control bits */
AM_RANGE(0xe000, 0xffff) AM_ROM /* ROM code */
@@ -949,7 +949,7 @@ ADDRESS_MAP_END
/* extra CPU only present in Phozon */
-static ADDRESS_MAP_START( phozon_cpu3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( phozon_cpu3_map, AS_PROGRAM, 8, mappy_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(superpac_videoram_w) AM_SHARE("share2") /* video RAM */
AM_RANGE(0x0800, 0x1fff) AM_RAM AM_SHARE("share3") /* shared RAM with CPU #2/sprite RAM*/
AM_RANGE(0x4000, 0x43ff) AM_DEVREADWRITE("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with CPU #2 */
diff --git a/src/mame/drivers/marineb.c b/src/mame/drivers/marineb.c
index cd28ed5743c..34a3e94e090 100644
--- a/src/mame/drivers/marineb.c
+++ b/src/mame/drivers/marineb.c
@@ -78,7 +78,7 @@ static WRITE8_HANDLER( irq_mask_w )
state->m_irq_mask = data & 1;
}
-static ADDRESS_MAP_START( marineb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( marineb_map, AS_PROGRAM, 8, marineb_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(marineb_videoram_w) AM_BASE_MEMBER(marineb_state, m_videoram)
@@ -96,12 +96,12 @@ static ADDRESS_MAP_START( marineb_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( marineb_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( marineb_io_map, AS_IO, 8, marineb_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x09) AM_DEVWRITE("ay1", ay8910_address_data_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wanted_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( wanted_io_map, AS_IO, 8, marineb_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x02, 0x03) AM_DEVWRITE("ay2", ay8910_address_data_w)
diff --git a/src/mame/drivers/marinedt.c b/src/mame/drivers/marinedt.c
index 5ea64f1f887..8d150426dc2 100644
--- a/src/mame/drivers/marinedt.c
+++ b/src/mame/drivers/marinedt.c
@@ -300,7 +300,7 @@ static WRITE8_HANDLER( marinedt_pf_w )
}
-static ADDRESS_MAP_START( marinedt_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( marinedt_map, AS_PROGRAM, 8, marinedt_state )
AM_RANGE(0x0000, 0x37ff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x4400, 0x47ff) AM_RAM //unused, vram mirror?
@@ -308,7 +308,7 @@ static ADDRESS_MAP_START( marinedt_map, AS_PROGRAM, 8 )
AM_RANGE(0x4c00, 0x4c00) AM_WRITENOP //?? maybe off by one error
ADDRESS_MAP_END
-static ADDRESS_MAP_START( marinedt_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( marinedt_io_map, AS_IO, 8, marinedt_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW0") //dips coinage
AM_RANGE(0x01, 0x01) AM_READ(marinedt_port1_r) //trackball xy muxed
diff --git a/src/mame/drivers/mario.c b/src/mame/drivers/mario.c
index 6056db34aaf..57793c448fb 100644
--- a/src/mame/drivers/mario.c
+++ b/src/mame/drivers/mario.c
@@ -133,7 +133,7 @@ static WRITE8_HANDLER( nmi_mask_w )
*
*************************************/
-static ADDRESS_MAP_START( mario_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mario_map, AS_PROGRAM, 8, mario_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
AM_RANGE(0x7000, 0x73ff) AM_RAM AM_BASE_SIZE_MEMBER(mario_state, m_spriteram, m_spriteram_size) /* physical sprite ram */
@@ -152,7 +152,7 @@ static ADDRESS_MAP_START( mario_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( masao_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( masao_map, AS_PROGRAM, 8, mario_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
AM_RANGE(0x7000, 0x73ff) AM_RAM AM_BASE_SIZE_MEMBER(mario_state, m_spriteram, m_spriteram_size) /* physical sprite ram */
@@ -171,7 +171,7 @@ static ADDRESS_MAP_START( masao_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mario_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mario_io_map, AS_IO, 8, mario_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("z80dma", z80dma_r, z80dma_w) /* dma controller */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/markham.c b/src/mame/drivers/markham.c
index e9737ef6039..59354f7f5ae 100644
--- a/src/mame/drivers/markham.c
+++ b/src/mame/drivers/markham.c
@@ -21,7 +21,7 @@ static READ8_HANDLER( markham_e004_r )
/****************************************************************************/
-static ADDRESS_MAP_START( markham_master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( markham_master_map, AS_PROGRAM, 8, markham_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
@@ -45,7 +45,7 @@ static ADDRESS_MAP_START( markham_master_map, AS_PROGRAM, 8 )
AM_RANGE(0xe00e, 0xe00e) AM_WRITE(markham_flipscreen_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( markham_slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( markham_slave_map, AS_PROGRAM, 8, markham_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("share1")
diff --git a/src/mame/drivers/mastboy.c b/src/mame/drivers/mastboy.c
index 9698a1f077e..318f0369f60 100644
--- a/src/mame/drivers/mastboy.c
+++ b/src/mame/drivers/mastboy.c
@@ -696,7 +696,7 @@ static INTERRUPT_GEN( mastboy_interrupt )
/* Memory Maps */
-static ADDRESS_MAP_START( mastboy_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mastboy_map, AS_PROGRAM, 8, mastboy_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM // Internal ROM
AM_RANGE(0x4000, 0x7fff) AM_ROM // External ROM
@@ -739,7 +739,7 @@ static READ8_HANDLER( mastboy_nmi_read )
return 0x00;
}
-static ADDRESS_MAP_START( mastboy_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mastboy_io_map, AS_IO, 8, mastboy_state )
AM_RANGE(0x38, 0x38) AM_READ(mastboy_port_38_read)
AM_RANGE(0x39, 0x39) AM_READ(mastboy_nmi_read)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/matmania.c b/src/mame/drivers/matmania.c
index f73a9d59076..93c3484c1ab 100644
--- a/src/mame/drivers/matmania.c
+++ b/src/mame/drivers/matmania.c
@@ -65,7 +65,7 @@ static WRITE8_HANDLER( maniach_sh_command_w )
*
*************************************/
-static ADDRESS_MAP_START( matmania_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( matmania_map, AS_PROGRAM, 8, matmania_state )
AM_RANGE(0x0000, 0x077f) AM_RAM
AM_RANGE(0x0780, 0x07df) AM_WRITEONLY AM_BASE_SIZE_MEMBER(matmania_state, m_spriteram, m_spriteram_size)
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_BASE_SIZE_MEMBER(matmania_state, m_videoram2, m_videoram2_size)
@@ -82,7 +82,7 @@ static ADDRESS_MAP_START( matmania_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( maniach_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( maniach_map, AS_PROGRAM, 8, matmania_state )
AM_RANGE(0x0000, 0x077f) AM_RAM
AM_RANGE(0x0780, 0x07df) AM_RAM AM_BASE_SIZE_MEMBER(matmania_state, m_spriteram, m_spriteram_size)
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_BASE_SIZE_MEMBER(matmania_state, m_videoram2, m_videoram2_size)
@@ -102,7 +102,7 @@ static ADDRESS_MAP_START( maniach_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( matmania_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( matmania_sound_map, AS_PROGRAM, 8, matmania_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("ay1", ay8910_data_address_w)
AM_RANGE(0x2002, 0x2003) AM_DEVWRITE("ay2", ay8910_data_address_w)
@@ -111,7 +111,7 @@ static ADDRESS_MAP_START( matmania_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( maniach_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( maniach_sound_map, AS_PROGRAM, 8, matmania_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("ymsnd", ym3526_w)
AM_RANGE(0x2002, 0x2002) AM_DEVWRITE("dac", dac_signed_w)
@@ -120,7 +120,7 @@ static ADDRESS_MAP_START( maniach_sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( maniach_mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( maniach_mcu_map, AS_PROGRAM, 8, matmania_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(maniach_68705_port_a_r,maniach_68705_port_a_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(maniach_68705_port_b_r,maniach_68705_port_b_w)
diff --git a/src/mame/drivers/maxaflex.c b/src/mame/drivers/maxaflex.c
index 2776246b910..bbb2752e9ee 100644
--- a/src/mame/drivers/maxaflex.c
+++ b/src/mame/drivers/maxaflex.c
@@ -266,7 +266,7 @@ int atari_input_disabled(running_machine &machine)
-static ADDRESS_MAP_START(a600xl_mem, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(a600xl_mem, AS_PROGRAM, 8, maxaflex_state )
AM_RANGE(0x0000, 0x3fff) AM_RAM
AM_RANGE(0x5000, 0x57ff) AM_ROM AM_REGION("maincpu", 0x5000) /* self test */
AM_RANGE(0x8000, 0xbfff) AM_ROM /* game cartridge */
@@ -280,7 +280,7 @@ static ADDRESS_MAP_START(a600xl_mem, AS_PROGRAM, 8)
AM_RANGE(0xd800, 0xffff) AM_ROM /* OS */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_mem, AS_PROGRAM, 8, maxaflex_state )
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 )
diff --git a/src/mame/drivers/maygay1b.c b/src/mame/drivers/maygay1b.c
index 31afb14b8b9..ad2e997fce2 100644
--- a/src/mame/drivers/maygay1b.c
+++ b/src/mame/drivers/maygay1b.c
@@ -845,7 +845,7 @@ static READ8_HANDLER( latch_st_lo )
return 0;
}
-static ADDRESS_MAP_START( m1_memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m1_memmap, AS_PROGRAM, 8, maygay1b_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x2000, 0x2000) AM_WRITE(reel12_w)
diff --git a/src/mame/drivers/maygaysw.c b/src/mame/drivers/maygaysw.c
index 8bf9c6f3bda..e217f5dceb2 100644
--- a/src/mame/drivers/maygaysw.c
+++ b/src/mame/drivers/maygaysw.c
@@ -109,7 +109,7 @@ public:
-static ADDRESS_MAP_START( maygayew_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( maygayew_map, AS_PROGRAM, 16, maygayew_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_REGION("mainrom",0)
AM_RANGE(0x100000, 0x13ffff) AM_ROM AM_REGION("mainrom",0)
AM_RANGE(0x200000, 0x23ffff) AM_ROM AM_REGION("mainrom",0)
diff --git a/src/mame/drivers/maygayv1.c b/src/mame/drivers/maygayv1.c
index 0858651b2ab..19e5f80f658 100644
--- a/src/mame/drivers/maygayv1.c
+++ b/src/mame/drivers/maygayv1.c
@@ -670,7 +670,7 @@ static WRITE16_HANDLER( vsync_int_ctrl )
cputag_set_input_line(space->machine(), "maincpu", 3, CLEAR_LINE);
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, maygayv1_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x100000, 0x17ffff) AM_ROM AM_REGION("maincpu", 0x80000)
@@ -762,15 +762,15 @@ static WRITE8_HANDLER( mcu_w )
}
-static ADDRESS_MAP_START( sound_prg, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_prg, AS_PROGRAM, 8, maygayv1_state )
AM_RANGE(0x0000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_data, AS_DATA, 8 )
+static ADDRESS_MAP_START( sound_data, AS_DATA, 8, maygayv1_state )
AM_RANGE(0x0000, 0xffff) AM_RAM // nothing?
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io, AS_IO, 8, maygayv1_state )
AM_RANGE(0x00, 0xff) AM_READWRITE(mcu_r, mcu_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/mayumi.c b/src/mame/drivers/mayumi.c
index 41482b075ea..e55cf19b59b 100644
--- a/src/mame/drivers/mayumi.c
+++ b/src/mame/drivers/mayumi.c
@@ -135,7 +135,7 @@ static READ8_HANDLER( key_matrix_r )
*
*************************************/
-static ADDRESS_MAP_START( mayumi_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mayumi_map, AS_PROGRAM, 8, mayumi_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_SHARE("nvram")
@@ -143,7 +143,7 @@ static ADDRESS_MAP_START( mayumi_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mayumi_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mayumi_io_map, AS_IO, 8, mayumi_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x30, 0x30) AM_READ_PORT("IN0") AM_WRITE(bank_sel_w)
AM_RANGE(0xc0, 0xc0) AM_WRITE(input_sel_w)
diff --git a/src/mame/drivers/mazerbla.c b/src/mame/drivers/mazerbla.c
index 920deed29f8..98ce7e56b60 100644
--- a/src/mame/drivers/mazerbla.c
+++ b/src/mame/drivers/mazerbla.c
@@ -972,7 +972,7 @@ static WRITE8_HANDLER( sound_nmi_clear_w )
*
*************************************/
-static ADDRESS_MAP_START( mazerbla_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mazerbla_map, AS_PROGRAM, 8, mazerbla_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xd800, 0xd800) AM_READ(cfb_zpu_int_req_clr)
@@ -980,7 +980,7 @@ static ADDRESS_MAP_START( mazerbla_map, AS_PROGRAM, 8 )
AM_RANGE(0xe800, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mazerbla_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mazerbla_io_map, AS_IO, 8, mazerbla_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x4c, 0x4f) AM_READWRITE(ls670_1_r, ls670_0_w)
AM_RANGE(0x60, 0x60) AM_WRITE(zpu_bcd_decoder_w)
@@ -990,19 +990,19 @@ static ADDRESS_MAP_START( mazerbla_io_map, AS_IO, 8 )
AM_RANGE(0x6e, 0x6f) AM_WRITE(zpu_led_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mazerbla_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mazerbla_cpu2_map, AS_PROGRAM, 8, mazerbla_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM /* main RAM (stack) */
AM_RANGE(0x8000, 0x83ff) AM_RAM /* waveform ???*/
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mazerbla_cpu2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mazerbla_cpu2_io_map, AS_IO, 8, mazerbla_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(vsb_ls273_audio_control_w)
AM_RANGE(0x80, 0x83) AM_READWRITE(ls670_0_r, ls670_1_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mazerbla_cpu3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mazerbla_cpu3_map, AS_PROGRAM, 8, mazerbla_state )
AM_RANGE(0x0000, 0x37ff) AM_ROM
AM_RANGE(0x3800, 0x3fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x4000, 0x5fff) AM_ROMBANK("bank1") /* GFX roms */
@@ -1013,7 +1013,7 @@ static ADDRESS_MAP_START( mazerbla_cpu3_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_READ(vcu_set_clr_addr_r) /* palette? LOAD */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mazerbla_cpu3_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mazerbla_cpu3_io_map, AS_IO, 8, mazerbla_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_WRITE(cfb_backgnd_color_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(cfb_port_02_r, cfb_led_w) /* Read = VCU status ? */
@@ -1029,7 +1029,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( greatgun_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( greatgun_io_map, AS_IO, 8, mazerbla_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x4c, 0x4c) AM_WRITE(main_sound_w)
AM_RANGE(0x60, 0x60) AM_WRITE(zpu_bcd_decoder_w)
@@ -1040,7 +1040,7 @@ static ADDRESS_MAP_START( greatgun_io_map, AS_IO, 8 )
ADDRESS_MAP_END
/* Great Guns has a little different banking layout */
-static ADDRESS_MAP_START( greatgun_cpu3_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( greatgun_cpu3_io_map, AS_IO, 8, mazerbla_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP
AM_RANGE(0x01, 0x01) AM_WRITE(cfb_backgnd_color_w)
@@ -1050,7 +1050,7 @@ static ADDRESS_MAP_START( greatgun_cpu3_io_map, AS_IO, 8 )
AM_RANGE(0x05, 0x05) AM_WRITE(cfb_vbank_w) //visible/writable videopage select?
ADDRESS_MAP_END
-static ADDRESS_MAP_START( greatgun_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( greatgun_sound_map, AS_PROGRAM, 8, mazerbla_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_DEVREAD("ay1", ay8910_r)
diff --git a/src/mame/drivers/mcatadv.c b/src/mame/drivers/mcatadv.c
index f1187a5e009..6b8716502b1 100644
--- a/src/mame/drivers/mcatadv.c
+++ b/src/mame/drivers/mcatadv.c
@@ -172,7 +172,7 @@ static READ16_HANDLER( mcat_wd_r )
}
-static ADDRESS_MAP_START( mcatadv_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mcatadv_map, AS_PROGRAM, 16, mcatadv_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
@@ -211,7 +211,7 @@ static WRITE8_HANDLER ( mcatadv_sound_bw_w )
}
-static ADDRESS_MAP_START( mcatadv_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcatadv_sound_map, AS_PROGRAM, 8, mcatadv_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM // ROM
AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("bank1") // ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM // RAM
@@ -219,19 +219,19 @@ static ADDRESS_MAP_START( mcatadv_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf000) AM_WRITE(mcatadv_sound_bw_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcatadv_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcatadv_sound_io_map, AS_IO, 8, mcatadv_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_READWRITE(soundlatch_r, soundlatch2_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nost_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nost_sound_map, AS_PROGRAM, 8, mcatadv_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM // RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nost_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( nost_sound_io_map, AS_IO, 8, mcatadv_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVWRITE("ymsnd", ym2610_w)
AM_RANGE(0x04, 0x07) AM_DEVREAD("ymsnd", ym2610_r)
diff --git a/src/mame/drivers/mcr.c b/src/mame/drivers/mcr.c
index 76a0116232c..5efd9ab6694 100644
--- a/src/mame/drivers/mcr.c
+++ b/src/mame/drivers/mcr.c
@@ -636,7 +636,7 @@ static WRITE8_HANDLER( demoderb_op4_w )
*************************************/
/* address map verified from schematics */
-static ADDRESS_MAP_START( cpu_90009_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu_90009_map, AS_PROGRAM, 8, mcr_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x6fff) AM_ROM
AM_RANGE(0x7000, 0x77ff) AM_MIRROR(0x0800) AM_RAM AM_SHARE("nvram")
@@ -647,7 +647,7 @@ static ADDRESS_MAP_START( cpu_90009_map, AS_PROGRAM, 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, AS_IO, 8 )
+static ADDRESS_MAP_START( cpu_90009_portmap, AS_IO, 8, mcr_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
SSIO_INPUT_PORTS
@@ -665,7 +665,7 @@ ADDRESS_MAP_END
*************************************/
/* address map verified from schematics */
-static ADDRESS_MAP_START( cpu_90010_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu_90010_map, AS_PROGRAM, 8, mcr_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x1800) AM_RAM AM_SHARE("nvram")
@@ -674,7 +674,7 @@ static ADDRESS_MAP_START( cpu_90010_map, AS_PROGRAM, 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, AS_IO, 8 )
+static ADDRESS_MAP_START( cpu_90010_portmap, AS_IO, 8, mcr_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
SSIO_INPUT_PORTS
@@ -692,7 +692,7 @@ ADDRESS_MAP_END
*************************************/
/* address map verified from schematics */
-static ADDRESS_MAP_START( cpu_91490_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu_91490_map, AS_PROGRAM, 8, mcr_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram")
@@ -702,7 +702,7 @@ static ADDRESS_MAP_START( cpu_91490_map, AS_PROGRAM, 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, AS_IO, 8 )
+static ADDRESS_MAP_START( cpu_91490_portmap, AS_IO, 8, mcr_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
SSIO_INPUT_PORTS
@@ -720,14 +720,14 @@ ADDRESS_MAP_END
*************************************/
/* address map verified from schematics */
-static ADDRESS_MAP_START( ipu_91695_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ipu_91695_map, AS_PROGRAM, 8, mcr_state )
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, AS_IO, 8 )
+static ADDRESS_MAP_START( ipu_91695_portmap, AS_IO, 8, mcr_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_MIRROR(0xe0) AM_DEVREADWRITE("ipu_pio0", z80pio_cd_ba_r, z80pio_cd_ba_w)
diff --git a/src/mame/drivers/mcr3.c b/src/mame/drivers/mcr3.c
index 240c9aeaa07..0b404040642 100644
--- a/src/mame/drivers/mcr3.c
+++ b/src/mame/drivers/mcr3.c
@@ -487,7 +487,7 @@ static READ8_HANDLER( turbotag_kludge_r )
*************************************/
/* address map verified from schematics */
-static ADDRESS_MAP_START( mcrmono_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcrmono_map, AS_PROGRAM, 8, mcr3_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram")
@@ -499,7 +499,7 @@ static ADDRESS_MAP_START( mcrmono_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* I/O map verified from schematics */
-static ADDRESS_MAP_START( mcrmono_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( mcrmono_portmap, AS_IO, 8, mcr3_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x78) AM_READ_PORT("MONO.IP0")
@@ -521,7 +521,7 @@ ADDRESS_MAP_END
*************************************/
/* address map verified from schematics */
-static ADDRESS_MAP_START( spyhunt_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spyhunt_map, AS_PROGRAM, 8, mcr3_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(spyhunt_videoram_w) AM_BASE_MEMBER(mcr3_state, m_videoram)
@@ -532,7 +532,7 @@ static ADDRESS_MAP_START( spyhunt_map, AS_PROGRAM, 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, AS_IO, 8 )
+static ADDRESS_MAP_START( spyhunt_portmap, AS_IO, 8, mcr3_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
SSIO_INPUT_PORTS
diff --git a/src/mame/drivers/mcr68.c b/src/mame/drivers/mcr68.c
index 5c41fe05491..6ff8fe90eb4 100644
--- a/src/mame/drivers/mcr68.c
+++ b/src/mame/drivers/mcr68.c
@@ -306,7 +306,7 @@ static READ16_HANDLER( trisport_port_1_r )
*
*************************************/
-static ADDRESS_MAP_START( mcr68_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mcr68_map, AS_PROGRAM, 16, mcr68_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
@@ -330,7 +330,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( zwackery_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( zwackery_map, AS_PROGRAM, 16, mcr68_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x037fff) AM_ROM
AM_RANGE(0x080000, 0x080fff) AM_RAM
@@ -352,7 +352,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( pigskin_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pigskin_map, AS_PROGRAM, 16, mcr68_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
@@ -377,7 +377,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( trisport_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( trisport_map, AS_PROGRAM, 16, mcr68_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
diff --git a/src/mame/drivers/meadows.c b/src/mame/drivers/meadows.c
index 4c3013f2d5e..324cb0fb17c 100644
--- a/src/mame/drivers/meadows.c
+++ b/src/mame/drivers/meadows.c
@@ -339,7 +339,7 @@ static PALETTE_INIT( meadows )
*
*************************************/
-static ADDRESS_MAP_START( meadows_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( meadows_main_map, AS_PROGRAM, 8, meadows_state )
AM_RANGE(0x0000, 0x0bff) AM_ROM
AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("INPUTS")
AM_RANGE(0x0c01, 0x0c01) AM_READ_PORT("STICK")
@@ -352,7 +352,7 @@ static ADDRESS_MAP_START( meadows_main_map, AS_PROGRAM, 8 )
AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(meadows_videoram_w) AM_BASE_MEMBER(meadows_state, m_videoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bowl3d_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bowl3d_main_map, AS_PROGRAM, 8, meadows_state )
AM_RANGE(0x0000, 0x0bff) AM_ROM
AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("INPUTS1")
AM_RANGE(0x0c01, 0x0c01) AM_READ_PORT("INPUTS2")
@@ -365,7 +365,7 @@ static ADDRESS_MAP_START( bowl3d_main_map, AS_PROGRAM, 8 )
AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(meadows_videoram_w) AM_BASE_MEMBER(meadows_state, m_videoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( minferno_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( minferno_main_map, AS_PROGRAM, 8, meadows_state )
AM_RANGE(0x0000, 0x0bff) AM_ROM
AM_RANGE(0x1c00, 0x1eff) AM_RAM_WRITE(meadows_videoram_w) AM_BASE_MEMBER(meadows_state, m_videoram)
AM_RANGE(0x1f00, 0x1f00) AM_READ_PORT("JOY1")
@@ -378,7 +378,7 @@ static ADDRESS_MAP_START( minferno_main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( minferno_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( minferno_io_map, AS_IO, 8, meadows_state )
AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ_PORT("DSW2")
ADDRESS_MAP_END
@@ -390,7 +390,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, meadows_state )
AM_RANGE(0x0000, 0x0bff) AM_ROM
AM_RANGE(0x0c00, 0x0c03) AM_READWRITE(audio_hardware_r, audio_hardware_w)
AM_RANGE(0x0e00, 0x0eff) AM_RAM
diff --git a/src/mame/drivers/mediagx.c b/src/mame/drivers/mediagx.c
index 46c06ea73fb..f60505395df 100644
--- a/src/mame/drivers/mediagx.c
+++ b/src/mame/drivers/mediagx.c
@@ -907,7 +907,7 @@ static I8237_INTERFACE( dma8237_2_config )
/*****************************************************************************/
-static ADDRESS_MAP_START( mediagx_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( mediagx_map, AS_PROGRAM, 32, mediagx_state )
AM_RANGE(0x00000000, 0x0009ffff) AM_RAM AM_BASE_MEMBER(mediagx_state, m_main_ram)
AM_RANGE(0x000a0000, 0x000affff) AM_RAM
AM_RANGE(0x000b0000, 0x000b7fff) AM_RAM AM_BASE_MEMBER(mediagx_state, m_cga_ram)
@@ -920,7 +920,7 @@ static ADDRESS_MAP_START( mediagx_map, AS_PROGRAM, 32 )
AM_RANGE(0xfffc0000, 0xffffffff) AM_ROM AM_REGION("bios", 0) /* System BIOS */
ADDRESS_MAP_END
-static ADDRESS_MAP_START(mediagx_io, AS_IO, 32)
+static ADDRESS_MAP_START(mediagx_io, AS_IO, 32, mediagx_state )
AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_r, i8237_w, 0xffffffff)
AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8("pic8259_master", io20_r, io20_w, 0xffffffff)
AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8("pit8254", pit8253_r, pit8253_w, 0xffffffff)
@@ -1116,7 +1116,7 @@ static const struct pit8253_config mediagx_pit8254_config =
}
};
-static ADDRESS_MAP_START( ramdac_map, AS_0, 8 )
+static ADDRESS_MAP_START( ramdac_map, AS_0, 8, mediagx_state )
AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE_MODERN("ramdac",ramdac_device,ramdac_pal_r,ramdac_rgb666_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/megaplay.c b/src/mame/drivers/megaplay.c
index 1017ad3f4c2..14283e31605 100644
--- a/src/mame/drivers/megaplay.c
+++ b/src/mame/drivers/megaplay.c
@@ -579,7 +579,7 @@ static WRITE8_HANDLER( megaplay_game_w )
state->m_mp_bios_bank_addr = ((state->m_mp_bios_bank_addr >> 1) | (data << 23)) & 0xff8000;
}
-static ADDRESS_MAP_START( megaplay_bios_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( megaplay_bios_map, AS_PROGRAM, 8, mplay_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4fff) AM_RAM
AM_RANGE(0x5000, 0x5fff) AM_RAM
@@ -600,7 +600,7 @@ static ADDRESS_MAP_START( megaplay_bios_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* basically from src/drivers/segasyse.c */
-static ADDRESS_MAP_START( megaplay_bios_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( megaplay_bios_io_map, AS_IO, 8, mplay_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x7f, 0x7f) AM_DEVWRITE("sn2", sn76496_w) /* SN76489 */
AM_RANGE(0xbe, 0xbe) AM_READWRITE(sms_vdp_data_r, sms_vdp_data_w) /* VDP */
diff --git a/src/mame/drivers/megasys1.c b/src/mame/drivers/megasys1.c
index 849b65a1c2a..c4b1d33190d 100644
--- a/src/mame/drivers/megasys1.c
+++ b/src/mame/drivers/megasys1.c
@@ -171,7 +171,7 @@ static TIMER_DEVICE_CALLBACK( megasys1A_scanline )
cputag_set_input_line(timer.machine(), "maincpu", 3, HOLD_LINE);
}
-static ADDRESS_MAP_START( megasys1A_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( megasys1A_map, AS_PROGRAM, 16, megasys1_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("SYSTEM")
@@ -255,7 +255,7 @@ static WRITE16_HANDLER( ip_select_w )
}
-static ADDRESS_MAP_START( megasys1B_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( megasys1B_map, AS_PROGRAM, 16, megasys1_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x044000, 0x0443ff) AM_RAM_WRITE(megasys1_vregs_A_w) AM_BASE_MEMBER(megasys1_state, m_vregs)
@@ -278,7 +278,7 @@ ADDRESS_MAP_END
#define INTERRUPT_NUM_C INTERRUPT_NUM_B
#define interrupt_C interrupt_B
-static ADDRESS_MAP_START( megasys1C_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( megasys1C_map, AS_PROGRAM, 16, megasys1_state )
ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x0c0000, 0x0cffff) AM_READWRITE(megasys1_vregs_C_r,megasys1_vregs_C_w) AM_BASE_MEMBER(megasys1_state, m_vregs)
@@ -301,7 +301,7 @@ static INTERRUPT_GEN( megasys1D_irq )
device_set_input_line(device, 2, HOLD_LINE);
}
-static ADDRESS_MAP_START( megasys1D_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( megasys1D_map, AS_PROGRAM, 16, megasys1_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x0c0000, 0x0c9fff) AM_RAM_WRITE(megasys1_vregs_D_w) AM_BASE_MEMBER(megasys1_state, m_vregs)
AM_RANGE(0x0ca000, 0x0cbfff) AM_RAM AM_BASE_MEMBER(megasys1_state, m_objectram)
@@ -395,7 +395,7 @@ static READ8_DEVICE_HANDLER( oki_status_r )
***************************************************************************/
-static ADDRESS_MAP_START( megasys1A_sound_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( megasys1A_sound_map, AS_PROGRAM, 16, megasys1_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x040000, 0x040001) AM_READ(soundlatch_word_r)
AM_RANGE(0x060000, 0x060001) AM_WRITE(soundlatch2_word_w) // to main cpu
@@ -413,7 +413,7 @@ ADDRESS_MAP_END
***************************************************************************/
-static ADDRESS_MAP_START( megasys1B_sound_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( megasys1B_sound_map, AS_PROGRAM, 16, megasys1_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x040000, 0x040001) AM_READWRITE(soundlatch_word_r,soundlatch2_word_w) /* from/to main cpu */
AM_RANGE(0x060000, 0x060001) AM_READWRITE(soundlatch_word_r,soundlatch2_word_w) /* from/to main cpu */
@@ -432,14 +432,14 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8, megasys1_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ?? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( z80_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( z80_sound_io_map, AS_IO, 8, megasys1_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/megatech.c b/src/mame/drivers/megatech.c
index 3cc34a13db8..4b0cf8b5b41 100644
--- a/src/mame/drivers/megatech.c
+++ b/src/mame/drivers/megatech.c
@@ -371,7 +371,7 @@ static WRITE8_HANDLER( megatech_banked_ram_w )
-static ADDRESS_MAP_START( megatech_bios_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( megatech_bios_map, AS_PROGRAM, 8, mtech_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM // from bios rom (0x0000-0x2fff populated in ROM)
AM_RANGE(0x3000, 0x3fff) AM_READWRITE(megatech_banked_ram_r, megatech_banked_ram_w) // copies instruction data here at startup, must be banked
AM_RANGE(0x4000, 0x5fff) AM_RAM // plain ram?
@@ -408,7 +408,7 @@ static WRITE8_HANDLER (megatech_bios_port_7f_w)
-static ADDRESS_MAP_START( megatech_bios_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( megatech_bios_portmap, AS_IO, 8, mtech_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x3f, 0x3f) AM_WRITE(megatech_bios_port_ctrl_w)
diff --git a/src/mame/drivers/megazone.c b/src/mame/drivers/megazone.c
index 553106d4bfb..aecaed3d043 100644
--- a/src/mame/drivers/megazone.c
+++ b/src/mame/drivers/megazone.c
@@ -84,7 +84,7 @@ static WRITE8_HANDLER( irq_mask_w )
}
-static ADDRESS_MAP_START( megazone_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( megazone_map, AS_PROGRAM, 8, megazone_state )
AM_RANGE(0x0000, 0x0001) AM_WRITE(megazone_coin_counter_w) /* coin counter 2, coin counter 1 */
AM_RANGE(0x0005, 0x0005) AM_WRITE(megazone_flipscreen_w)
AM_RANGE(0x0007, 0x0007) AM_WRITE(irq_mask_w)
@@ -100,7 +100,7 @@ static ADDRESS_MAP_START( megazone_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM /* 4000->5FFF is a debug rom */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( megazone_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( megazone_sound_map, AS_PROGRAM, 8, megazone_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x2000) AM_WRITE(megazone_i8039_irq_w) /* START line. Interrupts 8039 */
AM_RANGE(0x4000, 0x4000) AM_WRITE(soundlatch_w) /* CODE line. Command Interrupts 8039 */
@@ -115,18 +115,18 @@ static ADDRESS_MAP_START( megazone_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( megazone_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( megazone_sound_io_map, AS_IO, 8, megazone_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVWRITE("aysnd", ay8910_address_w)
AM_RANGE(0x00, 0x02) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x02, 0x02) AM_DEVWRITE("aysnd", ay8910_data_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( megazone_i8039_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( megazone_i8039_map, AS_PROGRAM, 8, megazone_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( megazone_i8039_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( megazone_i8039_io_map, AS_IO, 8, megazone_state )
AM_RANGE(0x00, 0xff) AM_READ(soundlatch_r)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE("dac", dac_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(i8039_irqen_and_status_w)
diff --git a/src/mame/drivers/meijinsn.c b/src/mame/drivers/meijinsn.c
index e37829a24b4..2f78b679c1f 100644
--- a/src/mame/drivers/meijinsn.c
+++ b/src/mame/drivers/meijinsn.c
@@ -169,7 +169,7 @@ static READ16_HANDLER( alpha_mcu_r )
-static ADDRESS_MAP_START( meijinsn_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( meijinsn_map, AS_PROGRAM, 16, meijinsn_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080e00, 0x080fff) AM_READ(alpha_mcu_r) AM_WRITENOP
AM_RANGE(0x100000, 0x107fff) AM_RAM AM_BASE_MEMBER(meijinsn_state, m_videoram)
@@ -180,12 +180,12 @@ static ADDRESS_MAP_START( meijinsn_map, AS_PROGRAM, 16 )
AM_RANGE(0x1a0000, 0x1a0001) AM_READ_PORT("P1") AM_WRITE(sound_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( meijinsn_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( meijinsn_sound_map, AS_PROGRAM, 8, meijinsn_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( meijinsn_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( meijinsn_sound_io_map, AS_IO, 8, meijinsn_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
AM_RANGE(0x01, 0x01) AM_DEVREAD("aysnd", ay8910_r)
diff --git a/src/mame/drivers/merit.c b/src/mame/drivers/merit.c
index 344c984540a..5eea0087546 100644
--- a/src/mame/drivers/merit.c
+++ b/src/mame/drivers/merit.c
@@ -349,7 +349,7 @@ static CUSTOM_INPUT(rndbit_r)
return field.machine().rand();
}
-static ADDRESS_MAP_START( pitboss_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pitboss_map, AS_PROGRAM, 8, merit_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x67ff) AM_RAM
AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
@@ -361,7 +361,7 @@ static ADDRESS_MAP_START( pitboss_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xfbff) AM_READWRITE(palette_r, palette_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( casino5_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( casino5_map, AS_PROGRAM, 8, merit_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0x5fff) AM_ROMBANK("bank2")
@@ -377,7 +377,7 @@ static ADDRESS_MAP_START( casino5_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xfbff) AM_READWRITE(palette_r, palette_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bigappg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bigappg_map, AS_PROGRAM, 8, merit_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xbfff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xc004, 0xc007) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w)
@@ -389,7 +389,7 @@ static ADDRESS_MAP_START( bigappg_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xfbff) AM_READWRITE(palette_r, palette_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dodge_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dodge_map, AS_PROGRAM, 8, merit_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xbfff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xc004, 0xc007) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
@@ -406,7 +406,7 @@ ADDRESS_MAP_END
* ==> mirror 1DF3 & ~effective_addr_lines
* */
-static ADDRESS_MAP_START( trvwhiz_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( trvwhiz_map, AS_PROGRAM, 8, merit_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4c00, 0x4cff) AM_READWRITE(questions_r, high_offset_w)
AM_RANGE(0x5400, 0x54ff) AM_WRITE(low_offset_w)
@@ -421,13 +421,13 @@ static ADDRESS_MAP_START( trvwhiz_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xfbff) AM_READWRITE(palette_r, palette_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( trvwhiz_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( trvwhiz_io_map, AS_IO, 8, merit_state )
AM_RANGE(0x8000, 0x8000) AM_DEVWRITE("aysnd", ay8910_address_w)
AM_RANGE(0x8100, 0x8100) AM_DEVWRITE("aysnd", ay8910_data_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( phrcraze_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( phrcraze_map, AS_PROGRAM, 8, merit_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xbfff) AM_RAM
AM_RANGE(0xc008, 0xc00b) AM_MIRROR(0x1df0) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w)
@@ -442,13 +442,13 @@ static ADDRESS_MAP_START( phrcraze_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xfbff) AM_READWRITE(palette_r, palette_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( phrcraze_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( phrcraze_io_map, AS_IO, 8, merit_state )
AM_RANGE(0xc004, 0xc004) AM_MIRROR(0x1cf3) AM_DEVWRITE("aysnd", ay8910_address_w)
AM_RANGE(0xc104, 0xc104) AM_MIRROR(0x1cf3) AM_DEVWRITE("aysnd", ay8910_data_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tictac_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tictac_map, AS_PROGRAM, 8, merit_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_RAM
AM_RANGE(0xc004, 0xc007) AM_MIRROR(0x1df0) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
@@ -463,13 +463,13 @@ static ADDRESS_MAP_START( tictac_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xfbff) AM_READWRITE(palette_r, palette_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tictac_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( tictac_io_map, AS_IO, 8, merit_state )
AM_RANGE(0xc00c, 0xc00c) AM_MIRROR(0x1cf3) AM_DEVWRITE("aysnd", ay8910_address_w)
AM_RANGE(0xc10c, 0xc10c) AM_MIRROR(0x1cf3) AM_DEVWRITE("aysnd", ay8910_data_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( trvwhziv_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( trvwhziv_map, AS_PROGRAM, 8, merit_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xbfff) AM_RAM
AM_RANGE(0xc004, 0xc007) AM_MIRROR(0x1df0) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
@@ -484,7 +484,7 @@ static ADDRESS_MAP_START( trvwhziv_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xfbff) AM_READWRITE(palette_r, palette_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dtrvwz5_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dtrvwz5_map, AS_PROGRAM, 8, merit_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xb000, 0xb0ff) AM_ROM /* protection? code jumps here */
@@ -500,7 +500,7 @@ static ADDRESS_MAP_START( dtrvwz5_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xfbff) AM_READWRITE(palette_r, palette_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( couple_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( couple_map, AS_PROGRAM, 8, merit_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xbfff) AM_RAM AM_BASE_MEMBER(merit_state, m_backup_ram)
diff --git a/src/mame/drivers/meritm.c b/src/mame/drivers/meritm.c
index d210f33f467..6e6d3e757c0 100644
--- a/src/mame/drivers/meritm.c
+++ b/src/mame/drivers/meritm.c
@@ -572,12 +572,12 @@ static READ8_HANDLER(meritm_ds1644_r)
*
*************************************/
-static ADDRESS_MAP_START( meritm_crt250_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( meritm_crt250_map, AS_PROGRAM, 8, meritm_state )
AM_RANGE(0x0000, 0xdfff) AM_ROMBANK("bank1")
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( meritm_crt250_questions_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( meritm_crt250_questions_map, AS_PROGRAM, 8, meritm_state )
AM_RANGE(0x0000, 0xdfff) AM_ROMBANK("bank1")
AM_RANGE(0x0000, 0x0000) AM_WRITE(meritm_crt250_questions_lo_w)
AM_RANGE(0x0001, 0x0001) AM_WRITE(meritm_crt250_questions_hi_w)
@@ -585,7 +585,7 @@ static ADDRESS_MAP_START( meritm_crt250_questions_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( meritm_crt250_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( meritm_crt250_io_map, AS_IO, 8, meritm_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE_MODERN("v9938_0", v9938_device, read, write)
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE_MODERN("v9938_1", v9938_device, read, write)
@@ -597,7 +597,7 @@ static ADDRESS_MAP_START( meritm_crt250_io_map, AS_IO, 8 )
AM_RANGE(0xff, 0xff) AM_WRITE(meritm_crt250_bank_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( meritm_crt250_crt258_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( meritm_crt250_crt258_io_map, AS_IO, 8, meritm_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE_MODERN("v9938_0", v9938_device, read, write)
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE_MODERN("v9938_1", v9938_device, read, write)
@@ -610,13 +610,13 @@ static ADDRESS_MAP_START( meritm_crt250_crt258_io_map, AS_IO, 8 )
AM_RANGE(0xff, 0xff) AM_WRITE(meritm_crt250_bank_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( meritm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( meritm_map, AS_PROGRAM, 8, meritm_state )
AM_RANGE(0x0000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xdfff) AM_ROMBANK("bank2")
AM_RANGE(0xe000, 0xffff) AM_RAMBANK("bank3") AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( meritm_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( meritm_io_map, AS_IO, 8, meritm_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(meritm_psd_a15_w)
AM_RANGE(0x01, 0x01) AM_WRITE(watchdog_reset_w)
diff --git a/src/mame/drivers/mermaid.c b/src/mame/drivers/mermaid.c
index 7b73071465d..b861191511d 100644
--- a/src/mame/drivers/mermaid.c
+++ b/src/mame/drivers/mermaid.c
@@ -146,7 +146,7 @@ static WRITE8_HANDLER( nmi_mask_w )
/* Memory Map */
-static ADDRESS_MAP_START( mermaid_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mermaid_map, AS_PROGRAM, 8, mermaid_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xcbff) AM_RAM_WRITE(mermaid_videoram2_w) AM_BASE_MEMBER(mermaid_state, m_videoram2)
@@ -204,7 +204,7 @@ static WRITE8_HANDLER( rougien_sample_playback_w )
state->m_adpcm_play_reg = data & 1;
}
-static ADDRESS_MAP_START( rougien_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rougien_map, AS_PROGRAM, 8, mermaid_state )
AM_RANGE(0xe002, 0xe002) AM_WRITE(rougien_sample_playback_w)
AM_RANGE(0xe802, 0xe802) AM_WRITE(rougien_sample_rom_hi_w)
AM_RANGE(0xe803, 0xe803) AM_WRITE(rougien_sample_rom_lo_w)
diff --git a/src/mame/drivers/metalmx.c b/src/mame/drivers/metalmx.c
index 2f1a50c1455..9e78ab086c1 100644
--- a/src/mame/drivers/metalmx.c
+++ b/src/mame/drivers/metalmx.c
@@ -527,7 +527,7 @@ static WRITE32_HANDLER( timer_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, metalmx_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x3fffff) AM_ROM
AM_RANGE(0x400000, 0x4000ff) AM_READWRITE(host_gsp_r, host_gsp_w)
@@ -559,11 +559,11 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( adsp_program_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( adsp_program_map, AS_PROGRAM, 32, metalmx_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_BASE_MEMBER(metalmx_state, m_adsp_internal_program_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( adsp_data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( adsp_data_map, AS_DATA, 16, metalmx_state )
AM_RANGE(0x3800, 0x39ff) AM_RAM
AM_RANGE(0x2000, 0x2007) AM_RAM
AM_RANGE(0x3fe0, 0x3fff) AM_RAM // TODO: CPU control registers
@@ -576,7 +576,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( gsp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gsp_map, AS_PROGRAM, 16, metalmx_state )
AM_RANGE(0x88800000, 0x8880000f) AM_RAM /* ? */
AM_RANGE(0x88c00000, 0x88c0000f) AM_RAM /* ? */
AM_RANGE(0xc0000000, 0xc00003ff) AM_READWRITE(tms34020_io_register_r, tms34020_io_register_w)
@@ -591,7 +591,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( dsp32c_1_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( dsp32c_1_map, AS_PROGRAM, 32, metalmx_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_RAM
AM_RANGE(0x600000, 0x67ffff) AM_RAM
@@ -608,7 +608,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( dsp32c_2_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( dsp32c_2_map, AS_PROGRAM, 32, metalmx_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_RAM
AM_RANGE(0x600000, 0x67ffff) AM_RAM
diff --git a/src/mame/drivers/metlclsh.c b/src/mame/drivers/metlclsh.c
index b71640d9dab..46032f9f526 100644
--- a/src/mame/drivers/metlclsh.c
+++ b/src/mame/drivers/metlclsh.c
@@ -56,7 +56,7 @@ static WRITE8_HANDLER( metlclsh_ack_nmi )
device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
}
-static ADDRESS_MAP_START( metlclsh_master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( metlclsh_master_map, AS_PROGRAM, 8, metlclsh_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xa000, 0xbfff) AM_ROM
@@ -106,7 +106,7 @@ static WRITE8_HANDLER( metlclsh_flipscreen_w )
flip_screen_set(space->machine(), data & 1);
}
-static ADDRESS_MAP_START( metlclsh_slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( metlclsh_slave_map, AS_PROGRAM, 8, metlclsh_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0") AM_WRITE(metlclsh_gfxbank_w) // bg tiles bank
diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c
index 53857dd1efe..208ea365fb6 100644
--- a/src/mame/drivers/metro.c
+++ b/src/mame/drivers/metro.c
@@ -823,14 +823,14 @@ static WRITE16_HANDLER( metro_blitter_w )
*/
-static ADDRESS_MAP_START( metro_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( metro_sound_map, AS_PROGRAM, 8, metro_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM /* External ROM */
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") /* External ROM (Banked) */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* External RAM */
AM_RANGE(0xff00, 0xffff) AM_RAM /* Internal RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( metro_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( metro_sound_io_map, AS_IO, 8, metro_state )
AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_READWRITE(metro_porta_r, metro_porta_w)
AM_RANGE(UPD7810_PORTB, UPD7810_PORTB) AM_WRITE(metro_portb_w)
AM_RANGE(UPD7810_PORTC, UPD7810_PORTC) AM_WRITE(metro_sound_rombank_w)
@@ -839,7 +839,7 @@ ADDRESS_MAP_END
/*****************/
-static ADDRESS_MAP_START( daitorid_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( daitorid_sound_io_map, AS_IO, 8, metro_state )
AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_READWRITE(metro_porta_r, metro_porta_w)
AM_RANGE(UPD7810_PORTB, UPD7810_PORTB) AM_WRITE(daitorid_portb_w)
AM_RANGE(UPD7810_PORTC, UPD7810_PORTC) AM_WRITE(daitorid_sound_rombank_w)
@@ -881,7 +881,7 @@ static READ16_HANDLER( balcube_dsw_r )
}
-static ADDRESS_MAP_START( balcube_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( balcube_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM
AM_RANGE(0x300000, 0x300001) AM_DEVREAD8("ymf", ymf278b_r, 0x00ff) // Sound
@@ -916,7 +916,7 @@ ADDRESS_MAP_END
***************************************************************************/
-static ADDRESS_MAP_START( daitoa_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( daitoa_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM
AM_RANGE(0x400000, 0x400001) AM_DEVREAD8("ymf", ymf278b_r, 0x00ff) // Sound
@@ -950,7 +950,7 @@ ADDRESS_MAP_END
Bang Bang Ball
***************************************************************************/
-static ADDRESS_MAP_START( bangball_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bangball_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM
AM_RANGE(0xf10000, 0xf10fff) AM_RAM // RAM (bug in the ram test routine)
@@ -985,7 +985,7 @@ ADDRESS_MAP_END
Battle Bubble
***************************************************************************/
-static ADDRESS_MAP_START( batlbubl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( batlbubl_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x11ffff) AM_RAM_WRITE(metro_vram_0_w) AM_BASE_MEMBER(metro_state, m_vram_0) // Layer 0
AM_RANGE(0x120000, 0x13ffff) AM_RAM_WRITE(metro_vram_1_w) AM_BASE_MEMBER(metro_state, m_vram_1) // Layer 1
@@ -1021,7 +1021,7 @@ ADDRESS_MAP_END
Mouse Shooter GoGo
***************************************************************************/
-static ADDRESS_MAP_START( msgogo_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( msgogo_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x11ffff) AM_RAM_WRITE(metro_vram_0_w) AM_BASE_MEMBER(metro_state, m_vram_0) // Layer 0
AM_RANGE(0x120000, 0x13ffff) AM_RAM_WRITE(metro_vram_1_w) AM_BASE_MEMBER(metro_state, m_vram_1) // Layer 1
@@ -1054,7 +1054,7 @@ ADDRESS_MAP_END
Daitoride
***************************************************************************/
-static ADDRESS_MAP_START( daitorid_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( daitorid_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x800000, 0x80ffff) AM_RAM // RAM
AM_RANGE(0x400000, 0x41ffff) AM_RAM_WRITE(metro_vram_0_w) AM_BASE_MEMBER(metro_state, m_vram_0) // Layer 0
@@ -1087,7 +1087,7 @@ ADDRESS_MAP_END
Dharma Doujou
***************************************************************************/
-static ADDRESS_MAP_START( dharma_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dharma_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM // RAM
AM_RANGE(0x800000, 0x81ffff) AM_RAM_WRITE(metro_vram_0_w) AM_BASE_MEMBER(metro_state, m_vram_0) // Layer 0
@@ -1134,7 +1134,7 @@ static WRITE16_HANDLER( karatour_vram_0_w ) { metro_vram_0_w(space, KARATOUR_OFF
static WRITE16_HANDLER( karatour_vram_1_w ) { metro_vram_1_w(space, KARATOUR_OFFS(offset), data, mem_mask); }
static WRITE16_HANDLER( karatour_vram_2_w ) { metro_vram_2_w(space, KARATOUR_OFFS(offset), data, mem_mask); }
-static ADDRESS_MAP_START( karatour_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( karatour_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0xffc000, 0xffffff) AM_RAM // RAM
AM_RANGE(0x400000, 0x400001) AM_READWRITE(metro_soundstatus_r, metro_soundstatus_w) // From Sound CPU
@@ -1171,7 +1171,7 @@ ADDRESS_MAP_END
/* same limited tilemap access as karatour */
-static ADDRESS_MAP_START( kokushi_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( kokushi_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x7fc000, 0x7fffff) AM_RAM // RAM
AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM
@@ -1203,7 +1203,7 @@ ADDRESS_MAP_END
Last Fortress
***************************************************************************/
-static ADDRESS_MAP_START( lastfort_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( lastfort_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM // RAM
AM_RANGE(0x800000, 0x81ffff) AM_RAM_WRITE(metro_vram_0_w) AM_BASE_MEMBER(metro_state, m_vram_0) // Layer 0
@@ -1237,7 +1237,7 @@ ADDRESS_MAP_END
/* the German version is halfway between lastfort and ladykill (karatour) memory maps */
/* todo: clean up input reads etc. */
-static ADDRESS_MAP_START( lastforg_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( lastforg_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x400000, 0x400001) AM_READWRITE(metro_soundstatus_r, metro_soundstatus_w) // From / To Sound CPU
AM_RANGE(0x400002, 0x400003) AM_READ_PORT("IN0") // Inputs
@@ -1338,7 +1338,7 @@ static WRITE16_DEVICE_HANDLER( gakusai_eeprom_w )
}
}
-static ADDRESS_MAP_START( gakusai_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gakusai_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
AM_RANGE(0x200000, 0x21ffff) AM_RAM_WRITE(metro_vram_0_w) AM_BASE_MEMBER(metro_state, m_vram_0) // Layer 0
@@ -1375,7 +1375,7 @@ ADDRESS_MAP_END
Mahjong Gakuensai 2
***************************************************************************/
-static ADDRESS_MAP_START( gakusai2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gakusai2_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
AM_RANGE(0x600000, 0x61ffff) AM_RAM_WRITE(metro_vram_0_w) AM_BASE_MEMBER(metro_state, m_vram_0) // Layer 0
@@ -1447,7 +1447,7 @@ static WRITE16_DEVICE_HANDLER( dokyusp_eeprom_reset_w )
}
}
-static ADDRESS_MAP_START( dokyusp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dokyusp_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
AM_RANGE(0x200000, 0x21ffff) AM_RAM_WRITE(metro_vram_0_w) AM_BASE_MEMBER(metro_state, m_vram_0) // Layer 0
@@ -1484,7 +1484,7 @@ ADDRESS_MAP_END
Mahjong Doukyuusei
***************************************************************************/
-static ADDRESS_MAP_START( dokyusei_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dokyusei_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
AM_RANGE(0x400000, 0x41ffff) AM_RAM_WRITE(metro_vram_0_w) AM_BASE_MEMBER(metro_state, m_vram_0) // Layer 0
@@ -1524,7 +1524,7 @@ ADDRESS_MAP_END
Pang Pom's
***************************************************************************/
-static ADDRESS_MAP_START( pangpoms_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pangpoms_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0xc00000, 0xc0ffff) AM_RAM // RAM
AM_RANGE(0x400000, 0x41ffff) AM_RAM_WRITE(metro_vram_0_w) AM_BASE_MEMBER(metro_state, m_vram_0) // Layer 0
@@ -1560,7 +1560,7 @@ ADDRESS_MAP_END
Poitto!
***************************************************************************/
-static ADDRESS_MAP_START( poitto_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( poitto_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM // RAM
AM_RANGE(0xc00000, 0xc1ffff) AM_RAM_WRITE(metro_vram_0_w) AM_BASE_MEMBER(metro_state, m_vram_0) // Layer 0
@@ -1593,7 +1593,7 @@ ADDRESS_MAP_END
Sky Alert
***************************************************************************/
-static ADDRESS_MAP_START( skyalert_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( skyalert_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0xc00000, 0xc0ffff) AM_RAM // RAM
AM_RANGE(0x800000, 0x81ffff) AM_RAM_WRITE(metro_vram_0_w) AM_BASE_MEMBER(metro_state, m_vram_0) // Layer 0
@@ -1629,7 +1629,7 @@ ADDRESS_MAP_END
Pururun
***************************************************************************/
-static ADDRESS_MAP_START( pururun_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pururun_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x800000, 0x80ffff) AM_RAM // RAM
AM_RANGE(0xc00000, 0xc1ffff) AM_RAM_WRITE(metro_vram_0_w) AM_BASE_MEMBER(metro_state, m_vram_0) // Layer 0
@@ -1662,7 +1662,7 @@ ADDRESS_MAP_END
Toride II Adauchi Gaiden
***************************************************************************/
-static ADDRESS_MAP_START( toride2g_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( toride2g_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x400000, 0x4cffff) AM_RAM // RAM (4xc000-4xffff mirrored?)
AM_RANGE(0xc00000, 0xc1ffff) AM_RAM_WRITE(metro_vram_0_w) AM_BASE_MEMBER(metro_state, m_vram_0) // Layer 0
@@ -1725,20 +1725,20 @@ static const ym2610_interface blzntrnd_ym2610_interface =
blzntrnd_irqhandler
};
-static ADDRESS_MAP_START( blzntrnd_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( blzntrnd_sound_map, AS_PROGRAM, 8, metro_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( blzntrnd_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( blzntrnd_sound_io_map, AS_IO, 8, metro_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(blzntrnd_sh_bankswitch_w)
AM_RANGE(0x40, 0x40) AM_READ(soundlatch_r) AM_WRITENOP
AM_RANGE(0x80, 0x83) AM_DEVREADWRITE("ymsnd", ym2610_r,ym2610_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( blzntrnd_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( blzntrnd_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM
AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
// AM_RANGE(0x300000, 0x300001) AM_READNOP // Sound
@@ -1783,7 +1783,7 @@ static WRITE16_DEVICE_HANDLER( mouja_sound_rombank_w )
state->m_oki->set_bank_base(((data >> 3) & 0x07) * 0x40000);
}
-static ADDRESS_MAP_START( mouja_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mouja_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM
AM_RANGE(0x400000, 0x41ffff) AM_RAM_WRITE(metro_vram_0_w) AM_BASE_MEMBER(metro_state, m_vram_0) // Layer 0
@@ -1864,7 +1864,7 @@ static WRITE16_HANDLER( vram_2_clr_w )
// H8/3007 CPU
-static ADDRESS_MAP_START( puzzlet_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( puzzlet_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x430000, 0x433fff) AM_RAM
AM_RANGE(0x470000, 0x47dfff) AM_RAM
@@ -1913,7 +1913,7 @@ static WRITE8_HANDLER( puzzlet_portb_w )
// popmessage("PORTB %02x", data);
}
-static ADDRESS_MAP_START( puzzlet_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( puzzlet_io_map, AS_IO, 8, metro_state )
AM_RANGE(H8_PORT_7, H8_PORT_7) AM_READ_PORT("IN2")
AM_RANGE(H8_SERIAL_1, H8_SERIAL_1) AM_READ_PORT("IN0") // coin
AM_RANGE(H8_PORT_B, H8_PORT_B) AM_READ_PORT("DSW0") AM_WRITE(puzzlet_portb_w)
diff --git a/src/mame/drivers/mexico86.c b/src/mame/drivers/mexico86.c
index f195a6c92b3..c5bd3ed37b8 100644
--- a/src/mame/drivers/mexico86.c
+++ b/src/mame/drivers/mexico86.c
@@ -80,7 +80,7 @@ static READ8_DEVICE_HANDLER( kiki_ym2203_r )
*
*************************************/
-static ADDRESS_MAP_START( mexico86_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mexico86_map, AS_PROGRAM, 8, mexico86_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* banked roms */
AM_RANGE(0xc000, 0xe7ff) AM_RAM AM_SHARE("share1") /* shared with sound cpu */
@@ -95,14 +95,14 @@ static ADDRESS_MAP_START( mexico86_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("share2") /* communication ram - to connect 4 players's subboard */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mexico86_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mexico86_sound_map, AS_PROGRAM, 8, mexico86_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xa7ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xa800, 0xbfff) AM_RAM
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", kiki_ym2203_r,ym2203_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mexico86_m68705_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mexico86_m68705_map, AS_PROGRAM, 8, mexico86_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(mexico86_68705_port_a_r,mexico86_68705_port_a_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(mexico86_68705_port_b_r,mexico86_68705_port_b_w)
@@ -123,7 +123,7 @@ static WRITE8_HANDLER( mexico86_sub_output_w )
/*---- --x- <unknown, always high, irq ack?>*/
}
-static ADDRESS_MAP_START( mexico86_sub_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mexico86_sub_cpu_map, AS_PROGRAM, 8, mexico86_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM /* sub cpu ram */
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("share2") /* shared with main */
diff --git a/src/mame/drivers/mgolf.c b/src/mame/drivers/mgolf.c
index 610914c975f..7ee8f9a3486 100644
--- a/src/mame/drivers/mgolf.c
+++ b/src/mame/drivers/mgolf.c
@@ -181,7 +181,7 @@ static WRITE8_HANDLER( mgolf_wram_w )
-static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8, mgolf_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0040, 0x0040) AM_READ_PORT("40")
diff --git a/src/mame/drivers/mhavoc.c b/src/mame/drivers/mhavoc.c
index 7fee9f38efc..6b56e93831f 100644
--- a/src/mame/drivers/mhavoc.c
+++ b/src/mame/drivers/mhavoc.c
@@ -231,7 +231,7 @@ static WRITE8_HANDLER( dual_pokey_w )
*
*************************************/
-static ADDRESS_MAP_START( alpha_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( alpha_map, AS_PROGRAM, 8, mhavoc_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x07ff) AM_RAMBANK("bank1") AM_BASE_MEMBER(mhavoc_state, m_zram0)
AM_RANGE(0x0800, 0x09ff) AM_RAM
@@ -262,7 +262,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( gamma_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gamma_map, AS_PROGRAM, 8, mhavoc_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM /* Program RAM (2K) */
AM_RANGE(0x0800, 0x0fff) AM_RAM AM_MIRROR (0x1800)
AM_RANGE(0x2000, 0x203f) AM_READWRITE(quad_pokey_r, quad_pokey_w) /* Quad Pokey read */
@@ -285,7 +285,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( alphaone_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( alphaone_map, AS_PROGRAM, 8, mhavoc_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x07ff) AM_RAMBANK("bank1") AM_BASE_MEMBER(mhavoc_state, m_zram0)
AM_RANGE(0x0800, 0x09ff) AM_RAM
diff --git a/src/mame/drivers/micro3d.c b/src/mame/drivers/micro3d.c
index 0ff82c6afe0..e5c02bbb20a 100644
--- a/src/mame/drivers/micro3d.c
+++ b/src/mame/drivers/micro3d.c
@@ -196,7 +196,7 @@ INPUT_PORTS_END
*
*************************************/
-static ADDRESS_MAP_START( hostmem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hostmem, AS_PROGRAM, 16, micro3d_state )
AM_RANGE(0x000000, 0x143fff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x800000, 0x83ffff) AM_RAM AM_BASE_MEMBER(micro3d_state, m_shared_ram)
@@ -220,7 +220,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( vgbmem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( vgbmem, AS_PROGRAM, 16, micro3d_state )
AM_RANGE(0x00000000, 0x007fffff) AM_RAM AM_BASE_MEMBER(micro3d_state, m_micro3d_sprite_vram)
AM_RANGE(0x00800000, 0x00bfffff) AM_RAM
AM_RANGE(0x00c00000, 0x00c0000f) AM_READ_PORT("VGB_SW")
@@ -242,11 +242,11 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( drmath_prg, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( drmath_prg, AS_PROGRAM, 32, micro3d_state )
AM_RANGE(0x00000000, 0x000fffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( drmath_data, AS_DATA, 32 )
+static ADDRESS_MAP_START( drmath_data, AS_DATA, 32, micro3d_state )
AM_RANGE(0x00000000, 0x000fffff) AM_ROM AM_REGION("drmath", 0)
AM_RANGE(0x00800000, 0x0083ffff) AM_READWRITE(micro3d_shared_r, micro3d_shared_w)
AM_RANGE(0x00400000, 0x004fffff) AM_RAM
@@ -267,11 +267,11 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( soundmem_prg, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( soundmem_prg, AS_PROGRAM, 8, micro3d_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( soundmem_io, AS_IO, 8 )
+static ADDRESS_MAP_START( soundmem_io, AS_IO, 8, micro3d_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0xfd00, 0xfd01) AM_DEVREADWRITE("ym2151", ym2151_r, ym2151_w)
AM_RANGE(0xfe00, 0xfe00) AM_DEVWRITE("upd7759", micro3d_upd7759_w)
diff --git a/src/mame/drivers/midas.c b/src/mame/drivers/midas.c
index da8a6b6bd62..66b7b9293fd 100644
--- a/src/mame/drivers/midas.c
+++ b/src/mame/drivers/midas.c
@@ -254,7 +254,7 @@ static WRITE16_HANDLER( livequiz_coin_w )
#endif
}
-static ADDRESS_MAP_START( livequiz_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( livequiz_map, AS_PROGRAM, 16, midas_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x900000, 0x900001) AM_READ_PORT("DSW_PLAYER1")
@@ -331,7 +331,7 @@ static WRITE16_HANDLER( hammer_led_w )
#endif
}
-static ADDRESS_MAP_START( hammer_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hammer_map, AS_PROGRAM, 16, midas_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x900000, 0x900001) AM_READ_PORT("DSW")
diff --git a/src/mame/drivers/midtunit.c b/src/mame/drivers/midtunit.c
index d699f099b13..dc4afcd1836 100644
--- a/src/mame/drivers/midtunit.c
+++ b/src/mame/drivers/midtunit.c
@@ -39,7 +39,7 @@
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, midtunit_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x003fffff) AM_READWRITE(midtunit_vram_r, midtunit_vram_w)
AM_RANGE(0x01000000, 0x013fffff) AM_RAM
diff --git a/src/mame/drivers/midvunit.c b/src/mame/drivers/midvunit.c
index da59b58ba45..d3855a52be5 100644
--- a/src/mame/drivers/midvunit.c
+++ b/src/mame/drivers/midvunit.c
@@ -475,7 +475,7 @@ static void midvplus_xf1_w(tms3203x_device &device, UINT8 val)
*
*************************************/
-static ADDRESS_MAP_START( midvunit_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( midvunit_map, AS_PROGRAM, 32, midvunit_state )
AM_RANGE(0x000000, 0x01ffff) AM_RAM AM_BASE_MEMBER(midvunit_state, m_ram_base)
AM_RANGE(0x400000, 0x41ffff) AM_RAM
AM_RANGE(0x600000, 0x600000) AM_WRITE(midvunit_dma_queue_w)
@@ -508,7 +508,7 @@ ADDRESS_MAP_END
static const tms3203x_config midvplus_config = { 0, NULL, midvplus_xf1_w };
-static ADDRESS_MAP_START( midvplus_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( midvplus_map, AS_PROGRAM, 32, midvunit_state )
AM_RANGE(0x000000, 0x01ffff) AM_RAM AM_BASE_MEMBER(midvunit_state, m_ram_base)
AM_RANGE(0x400000, 0x41ffff) AM_RAM AM_BASE_MEMBER(midvunit_state, m_fastram_base)
AM_RANGE(0x600000, 0x600000) AM_WRITE(midvunit_dma_queue_w)
diff --git a/src/mame/drivers/midwunit.c b/src/mame/drivers/midwunit.c
index d0edeea3f99..b813c701eb0 100644
--- a/src/mame/drivers/midwunit.c
+++ b/src/mame/drivers/midwunit.c
@@ -102,7 +102,7 @@ Notes:
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, midwunit_state )
AM_RANGE(0x00000000, 0x003fffff) AM_READWRITE(midtunit_vram_r, midtunit_vram_w)
AM_RANGE(0x01000000, 0x013fffff) AM_RAM
AM_RANGE(0x01400000, 0x0145ffff) AM_READWRITE(midwunit_cmos_r, midwunit_cmos_w) AM_SHARE("nvram")
diff --git a/src/mame/drivers/midxunit.c b/src/mame/drivers/midxunit.c
index 3bc8b968ac3..8db1ff216e1 100644
--- a/src/mame/drivers/midxunit.c
+++ b/src/mame/drivers/midxunit.c
@@ -98,7 +98,7 @@ There's a separate sound board also, but it wasn't available so is not documente
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, midxunit_state )
AM_RANGE(0x00000000, 0x003fffff) AM_READWRITE(midtunit_vram_data_r, midtunit_vram_data_w)
AM_RANGE(0x00800000, 0x00bfffff) AM_READWRITE(midtunit_vram_color_r, midtunit_vram_color_w)
AM_RANGE(0x20000000, 0x20ffffff) AM_RAM
diff --git a/src/mame/drivers/midyunit.c b/src/mame/drivers/midyunit.c
index 090ed4e34e5..269c0f2626d 100644
--- a/src/mame/drivers/midyunit.c
+++ b/src/mame/drivers/midyunit.c
@@ -175,7 +175,7 @@ static CUSTOM_INPUT( adpcm_irq_state_r )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, midyunit_state )
AM_RANGE(0x00000000, 0x001fffff) AM_READWRITE(midyunit_vram_r, midyunit_vram_w)
AM_RANGE(0x01000000, 0x010fffff) AM_RAM
AM_RANGE(0x01400000, 0x0140ffff) AM_READWRITE(midyunit_cmos_r, midyunit_cmos_w)
@@ -191,7 +191,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( yawdim_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( yawdim_sound_map, AS_PROGRAM, 8, midyunit_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x97ff) AM_DEVWRITE("oki", yawdim_oki_bank_w)
diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c
index c1071839e5d..ed25ccefb67 100644
--- a/src/mame/drivers/midzeus.c
+++ b/src/mame/drivers/midzeus.c
@@ -564,7 +564,7 @@ static READ32_HANDLER( invasn_gun_r )
*
*************************************/
-static ADDRESS_MAP_START( zeus_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( zeus_map, AS_PROGRAM, 32, midzeus_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_RAM AM_BASE(&ram_base)
AM_RANGE(0x400000, 0x41ffff) AM_RAM
@@ -579,7 +579,7 @@ static ADDRESS_MAP_START( zeus_map, AS_PROGRAM, 32 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( zeus2_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( zeus2_map, AS_PROGRAM, 32, midzeus_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_RAM AM_BASE(&ram_base)
AM_RANGE(0x400000, 0x43ffff) AM_RAM
@@ -1118,7 +1118,7 @@ static READ8_HANDLER( PIC16C5X_T0_clk_r )
return 0;
}
-static ADDRESS_MAP_START( pic_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( pic_io_map, AS_IO, 8, midzeus_state )
AM_RANGE(PIC16C5x_T0, PIC16C5x_T0) AM_READ(PIC16C5X_T0_clk_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/mikie.c b/src/mame/drivers/mikie.c
index 1c0854eed4e..38434db7866 100644
--- a/src/mame/drivers/mikie.c
+++ b/src/mame/drivers/mikie.c
@@ -96,7 +96,7 @@ static WRITE8_HANDLER( irq_mask_w )
*
*************************************/
-static ADDRESS_MAP_START( mikie_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mikie_map, AS_PROGRAM, 8, mikie_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_WRITE(mikie_coin_counter_w)
AM_RANGE(0x2002, 0x2002) AM_WRITE(mikie_sh_irqtrigger_w)
@@ -119,7 +119,7 @@ static ADDRESS_MAP_START( mikie_map, AS_PROGRAM, 8 )
AM_RANGE(0x6000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, mikie_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x8000, 0x8000) AM_WRITENOP // sound command latch
diff --git a/src/mame/drivers/mil4000.c b/src/mame/drivers/mil4000.c
index 3ba9ff210ae..c39f80f3caa 100644
--- a/src/mame/drivers/mil4000.c
+++ b/src/mame/drivers/mil4000.c
@@ -270,7 +270,7 @@ static WRITE16_HANDLER( output_w )
// popmessage("%04x\n",data);
}
-static ADDRESS_MAP_START( mil4000_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mil4000_map, AS_PROGRAM, 16, mil4000_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x500000, 0x503fff) AM_RAM_WRITE(sc0_vram_w) AM_BASE_MEMBER(mil4000_state, m_sc0_vram) // CY62256L-70, U77
AM_RANGE(0x504000, 0x507fff) AM_RAM_WRITE(sc1_vram_w) AM_BASE_MEMBER(mil4000_state, m_sc1_vram) // CY62256L-70, U77
diff --git a/src/mame/drivers/miniboy7.c b/src/mame/drivers/miniboy7.c
index 221363417b9..1c3ae897b55 100644
--- a/src/mame/drivers/miniboy7.c
+++ b/src/mame/drivers/miniboy7.c
@@ -266,7 +266,7 @@ static PALETTE_INIT( miniboy7 )
* Memory Map Information *
***********************************/
-static ADDRESS_MAP_START( miniboy7_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( miniboy7_map, AS_PROGRAM, 8, miniboy7_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM? */
AM_RANGE(0x0800, 0x0fff) AM_RAM_WRITE(miniboy7_videoram_w) AM_BASE_MEMBER(miniboy7_state, m_videoram)
AM_RANGE(0x1000, 0x17ff) AM_RAM_WRITE(miniboy7_colorram_w) AM_BASE_MEMBER(miniboy7_state, m_colorram)
diff --git a/src/mame/drivers/minivadr.c b/src/mame/drivers/minivadr.c
index 96aa47db0d0..5c618c32ad9 100644
--- a/src/mame/drivers/minivadr.c
+++ b/src/mame/drivers/minivadr.c
@@ -58,7 +58,7 @@ static SCREEN_UPDATE_RGB32( minivadr )
}
-static ADDRESS_MAP_START( minivadr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( minivadr_map, AS_PROGRAM, 8, minivadr_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0xa000, 0xbfff) AM_RAM AM_BASE_SIZE_MEMBER(minivadr_state, m_videoram, m_videoram_size)
AM_RANGE(0xe008, 0xe008) AM_READ_PORT("INPUTS") AM_WRITENOP // W - ???
diff --git a/src/mame/drivers/mirage.c b/src/mame/drivers/mirage.c
index f8de562f95c..052517e40f9 100644
--- a/src/mame/drivers/mirage.c
+++ b/src/mame/drivers/mirage.c
@@ -131,7 +131,7 @@ static WRITE16_HANDLER( okim0_rombank_w )
state->m_oki_bgm->set_bank_base(0x40000 * (data & 0x7));
}
-static ADDRESS_MAP_START( mirage_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mirage_map, AS_PROGRAM, 16, miragemi_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
/* tilemaps */
AM_RANGE(0x100000, 0x101fff) AM_DEVREADWRITE("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w) // 0x100000 - 0x101fff tested
diff --git a/src/mame/drivers/mirax.c b/src/mame/drivers/mirax.c
index f7b302b523b..1ce5ac8ae26 100644
--- a/src/mame/drivers/mirax.c
+++ b/src/mame/drivers/mirax.c
@@ -220,7 +220,7 @@ static WRITE8_HANDLER( coin_lockout_w )
coin_lockout_w(space->machine(), 1,data & 1);
}
-static ADDRESS_MAP_START( mirax_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mirax_main_map, AS_PROGRAM, 8, mirax_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc800, 0xd7ff) AM_RAM
AM_RANGE(0xe000, 0xe3ff) AM_RAM AM_BASE_MEMBER(mirax_state, m_videoram)
@@ -239,7 +239,7 @@ static ADDRESS_MAP_START( mirax_main_map, AS_PROGRAM, 8 )
// AM_RANGE(0xf900, 0xf900) //sound cmd mirror? ack?
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mirax_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mirax_sound_map, AS_PROGRAM, 8, mirax_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/missb2.c b/src/mame/drivers/missb2.c
index 9f04970cd75..2d94252ecee 100644
--- a/src/mame/drivers/missb2.c
+++ b/src/mame/drivers/missb2.c
@@ -156,7 +156,7 @@ static WRITE8_HANDLER( missb2_bg_bank_w )
/* Memory Maps */
-static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, missb2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdcff) AM_RAM AM_BASE_SIZE_MEMBER(missb2_state, m_videoram, m_videoram_size)
@@ -179,7 +179,7 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8 )
AM_RANGE(0xff98, 0xff98) AM_WRITENOP // ???
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8, missb2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x9000, 0x9fff) AM_ROMBANK("bank2") // ROM data for the background palette ram
AM_RANGE(0xa000, 0xafff) AM_ROMBANK("bank3") // ROM data for the background palette ram
@@ -194,7 +194,7 @@ ADDRESS_MAP_END
// Looks like the original bublbobl code modified to support the OKI M6295.
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, missb2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
diff --git a/src/mame/drivers/missile.c b/src/mame/drivers/missile.c
index c4d7bf0ce51..bbedc932ce6 100644
--- a/src/mame/drivers/missile.c
+++ b/src/mame/drivers/missile.c
@@ -827,7 +827,7 @@ static READ8_HANDLER( missile_r )
*************************************/
/* complete memory map derived from schematics (implemented above) */
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, missile_state )
AM_RANGE(0x0000, 0xffff) AM_READWRITE(missile_r, missile_w) AM_BASE_MEMBER(missile_state, m_videoram)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/mitchell.c b/src/mame/drivers/mitchell.c
index 49d73d6b481..a446c636d4a 100644
--- a/src/mame/drivers/mitchell.c
+++ b/src/mame/drivers/mitchell.c
@@ -302,7 +302,7 @@ static WRITE8_HANDLER( input_w )
*
*************************************/
-static ADDRESS_MAP_START( mgakuen_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mgakuen_map, AS_PROGRAM, 8, mitchell_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(mgakuen_paletteram_r, mgakuen_paletteram_w) /* palette RAM */
@@ -312,7 +312,7 @@ static ADDRESS_MAP_START( mgakuen_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_READWRITE(mgakuen_objram_r, mgakuen_objram_w) /* OBJ RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mitchell_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mitchell_map, AS_PROGRAM, 8, mitchell_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(pang_paletteram_r,pang_paletteram_w) /* Banked palette RAM */
@@ -321,7 +321,7 @@ static ADDRESS_MAP_START( mitchell_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM /* Work RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mitchell_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mitchell_io_map, AS_IO, 8, mitchell_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(pang_gfxctrl_w) /* Palette bank, layer enable, coin counters, more */
AM_RANGE(0x00, 0x02) AM_READ(input_r) /* The Mahjong games and Block Block need special input treatment */
@@ -338,7 +338,7 @@ static ADDRESS_MAP_START( mitchell_io_map, AS_IO, 8 )
ADDRESS_MAP_END
/* spangbl */
-static ADDRESS_MAP_START( spangbl_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spangbl_map, AS_PROGRAM, 8, mitchell_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") AM_WRITENOP
AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(pang_paletteram_r, pang_paletteram_w) /* Banked palette RAM */
@@ -347,7 +347,7 @@ static ADDRESS_MAP_START( spangbl_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM /* Work RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spangbl_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( spangbl_io_map, AS_IO, 8, mitchell_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x02) AM_READ(input_r)
AM_RANGE(0x00, 0x00) AM_WRITE(pangbl_gfxctrl_w) /* Palette bank, layer enable, coin counters, more */
@@ -371,13 +371,13 @@ static WRITE8_HANDLER( spangbl_msm5205_data_w )
}
#endif
-static ADDRESS_MAP_START( spangbl_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spangbl_sound_map, AS_PROGRAM, 8, mitchell_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
// AM_RANGE(0xec00, 0xec00) AM_WRITE( spangbl_msm5205_data_w )
AM_RANGE(0xf000, 0xf3ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spangbl_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( spangbl_sound_io_map, AS_IO, 8, mitchell_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
@@ -389,7 +389,7 @@ static WRITE8_DEVICE_HANDLER( oki_banking_w )
state->m_oki->set_bank_base(0x40000 * (data & 3));
}
-static ADDRESS_MAP_START( mstworld_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mstworld_sound_map, AS_PROGRAM, 8, mitchell_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_DEVWRITE("oki", oki_banking_w)
@@ -404,7 +404,7 @@ static WRITE8_HANDLER(mstworld_sound_w)
device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
}
-static ADDRESS_MAP_START( mstworld_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mstworld_io_map, AS_IO, 8, mitchell_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(mstworld_gfxctrl_w) /* Palette bank, layer enable, coin counters, more */
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/mjkjidai.c b/src/mame/drivers/mjkjidai.c
index 6c7484c3a04..e50d040cb48 100644
--- a/src/mame/drivers/mjkjidai.c
+++ b/src/mame/drivers/mjkjidai.c
@@ -170,7 +170,7 @@ static NVRAM_HANDLER( mjkjidai )
-static ADDRESS_MAP_START( mjkjidai_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mjkjidai_map, AS_PROGRAM, 8, mjkjidai_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM
@@ -181,7 +181,7 @@ static ADDRESS_MAP_START( mjkjidai_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xf7ff) AM_RAM_WRITE(mjkjidai_videoram_w) AM_BASE_MEMBER(mjkjidai_state,m_videoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjkjidai_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mjkjidai_io_map, AS_IO, 8, mjkjidai_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(keyboard_r)
AM_RANGE(0x01, 0x01) AM_READNOP // ???
diff --git a/src/mame/drivers/mjsister.c b/src/mame/drivers/mjsister.c
index 9760b7362f3..b10ae7e0a84 100644
--- a/src/mame/drivers/mjsister.c
+++ b/src/mame/drivers/mjsister.c
@@ -278,13 +278,13 @@ static READ8_HANDLER( mjsister_keys_r )
*
*************************************/
-static ADDRESS_MAP_START( mjsister_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mjsister_map, AS_PROGRAM, 8, mjsister_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") AM_WRITE(mjsister_videoram_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjsister_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mjsister_io_map, AS_IO, 8, mjsister_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITENOP /* HD46505? */
AM_RANGE(0x10, 0x10) AM_DEVWRITE("aysnd", ay8910_address_w)
diff --git a/src/mame/drivers/mlanding.c b/src/mame/drivers/mlanding.c
index a139584be91..9dcd5f75d7d 100644
--- a/src/mame/drivers/mlanding.c
+++ b/src/mame/drivers/mlanding.c
@@ -451,7 +451,7 @@ static WRITE16_HANDLER( ml_mecha_ram_w )
COMBINE_DATA(state->m_mecha_ram+offset*2);
}
-static ADDRESS_MAP_START( mlanding_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mlanding_mem, AS_PROGRAM, 16, mlanding_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_RAM
@@ -489,7 +489,7 @@ ADDRESS_MAP_END
/* Sub CPU Map */
-static ADDRESS_MAP_START( mlanding_sub_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mlanding_sub_mem, AS_PROGRAM, 16, mlanding_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_RAM
AM_RANGE(0x050000, 0x0503ff) AM_RAM AM_SHARE("share3")
@@ -513,7 +513,7 @@ static WRITE8_HANDLER( ml_msm_start_msb_w )
state->m_adpcm_pos = (state->m_adpcm_pos & 0x00ff00) | ((data & 0x0f)<<16) | 0x20;
}
-static ADDRESS_MAP_START( mlanding_z80_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mlanding_z80_mem, AS_PROGRAM, 8, mlanding_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x8fff) AM_RAM
@@ -554,7 +554,7 @@ static READ8_HANDLER( test_r )
}
//mecha driver ?
-static ADDRESS_MAP_START( mlanding_z80_sub_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mlanding_z80_sub_mem, AS_PROGRAM, 8, mlanding_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_MEMBER(mlanding_state, m_mecha_ram)
AM_RANGE(0x8800, 0x8fff) AM_RAM
@@ -563,15 +563,15 @@ static ADDRESS_MAP_START( mlanding_z80_sub_mem, AS_PROGRAM, 8 )
AM_RANGE(0x9800, 0x9803) AM_READ(test_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( DSP_map_program, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( DSP_map_program, AS_PROGRAM, 16, mlanding_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE("share3")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( DSP_map_data, AS_DATA, 16 )
+static ADDRESS_MAP_START( DSP_map_data, AS_DATA, 16, mlanding_state )
AM_RANGE(0x0000, 0x1fff) AM_READWRITE(ml_dotram_r,ml_dotram_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( DSP_map_io, AS_IO, 16 )
+static ADDRESS_MAP_START( DSP_map_io, AS_IO, 16, mlanding_state )
AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READ(dsp_HOLD_signal_r)
// AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITE(dsp_HOLDA_signal_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/model1.c b/src/mame/drivers/model1.c
index 0f4700db54c..2c21567509f 100644
--- a/src/mame/drivers/model1.c
+++ b/src/mame/drivers/model1.c
@@ -869,7 +869,7 @@ static WRITE16_HANDLER( snd_latch_to_68k_w )
device_spin_until_time(&space->device(), attotime::from_usec(40));
}
-static ADDRESS_MAP_START( model1_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( model1_mem, AS_PROGRAM, 16, model1_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x1fffff) AM_ROMBANK("bank1")
AM_RANGE(0x200000, 0x2fffff) AM_ROM
@@ -912,12 +912,12 @@ static ADDRESS_MAP_START( model1_mem, AS_PROGRAM, 16 )
AM_RANGE(0xfc0000, 0xffffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( model1_io, AS_IO, 16 )
+static ADDRESS_MAP_START( model1_io, AS_IO, 16, model1_state )
AM_RANGE(0xd20000, 0xd20003) AM_READ(model1_tgp_copro_ram_r)
AM_RANGE(0xd80000, 0xd80003) AM_READ(model1_tgp_copro_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( model1_vr_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( model1_vr_mem, AS_PROGRAM, 16, model1_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x1fffff) AM_ROMBANK("bank1")
AM_RANGE(0x200000, 0x2fffff) AM_ROM
@@ -960,7 +960,7 @@ static ADDRESS_MAP_START( model1_vr_mem, AS_PROGRAM, 16 )
AM_RANGE(0xfc0000, 0xffffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( model1_vr_io, AS_IO, 16 )
+static ADDRESS_MAP_START( model1_vr_io, AS_IO, 16, model1_state )
AM_RANGE(0xd20000, 0xd20003) AM_READ(model1_vr_tgp_ram_r)
AM_RANGE(0xd80000, 0xd80003) AM_READ(model1_vr_tgp_r)
ADDRESS_MAP_END
@@ -996,7 +996,7 @@ static WRITE16_HANDLER( m1_snd_68k_latch2_w )
{
}
-static ADDRESS_MAP_START( model1_snd, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( model1_snd, AS_PROGRAM, 16, model1_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0xc20000, 0xc20001) AM_READWRITE( m1_snd_68k_latch_r, m1_snd_68k_latch1_w )
AM_RANGE(0xc20002, 0xc20003) AM_READWRITE( m1_snd_v60_ready_r, m1_snd_68k_latch2_w )
diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c
index 0fd53aab4a5..a2a8b57523c 100644
--- a/src/mame/drivers/model2.c
+++ b/src/mame/drivers/model2.c
@@ -1352,7 +1352,7 @@ static WRITE32_HANDLER(model2_3d_zclip_w)
}
/* common map for all Model 2 versions */
-static ADDRESS_MAP_START( model2_base_mem, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( model2_base_mem, AS_PROGRAM, 32, model2_state )
AM_RANGE(0x00000000, 0x001fffff) AM_ROM AM_WRITENOP
AM_RANGE(0x00500000, 0x005fffff) AM_RAM AM_BASE_MEMBER(model2_state, m_workram)
@@ -1398,7 +1398,7 @@ static ADDRESS_MAP_START( model2_base_mem, AS_PROGRAM, 32 )
ADDRESS_MAP_END
/* original Model 2 overrides */
-static ADDRESS_MAP_START( model2o_mem, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( model2o_mem, AS_PROGRAM, 32, model2_state )
AM_RANGE(0x00200000, 0x0021ffff) AM_RAM
AM_RANGE(0x00220000, 0x0023ffff) AM_ROM AM_REGION("maincpu", 0x20000)
@@ -1429,7 +1429,7 @@ static ADDRESS_MAP_START( model2o_mem, AS_PROGRAM, 32 )
ADDRESS_MAP_END
/* 2A-CRX overrides */
-static ADDRESS_MAP_START( model2a_crx_mem, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( model2a_crx_mem, AS_PROGRAM, 32, model2_state )
AM_RANGE(0x00200000, 0x0023ffff) AM_RAM
AM_RANGE(0x00804000, 0x00807fff) AM_READWRITE(geo_prg_r, geo_prg_w)
@@ -1458,7 +1458,7 @@ static ADDRESS_MAP_START( model2a_crx_mem, AS_PROGRAM, 32 )
ADDRESS_MAP_END
/* 2B-CRX overrides */
-static ADDRESS_MAP_START( model2b_crx_mem, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( model2b_crx_mem, AS_PROGRAM, 32, model2_state )
AM_RANGE(0x00200000, 0x0023ffff) AM_RAM
AM_RANGE(0x00804000, 0x00807fff) AM_READWRITE(geo_prg_r, geo_prg_w)
@@ -1493,7 +1493,7 @@ static ADDRESS_MAP_START( model2b_crx_mem, AS_PROGRAM, 32 )
ADDRESS_MAP_END
/* 2C-CRX overrides */
-static ADDRESS_MAP_START( model2c_crx_mem, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( model2c_crx_mem, AS_PROGRAM, 32, model2_state )
AM_RANGE(0x00200000, 0x0023ffff) AM_RAM
AM_RANGE(0x00804000, 0x00807fff) AM_READWRITE(geo_prg_r, geo_prg_w)
@@ -1858,7 +1858,7 @@ static WRITE16_HANDLER( m1_snd_68k_latch2_w )
{
}
-static ADDRESS_MAP_START( model1_snd, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( model1_snd, AS_PROGRAM, 16, model2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x0bffff) AM_ROM AM_REGION("audiocpu", 0x20000) // mirror of second program ROM
AM_RANGE(0xc20000, 0xc20001) AM_READWRITE( m1_snd_68k_latch_r, m1_snd_68k_latch1_w )
@@ -1893,7 +1893,7 @@ static WRITE16_HANDLER( model2snd_ctrl )
}
}
-static ADDRESS_MAP_START( model2_snd, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( model2_snd, AS_PROGRAM, 16, model2_state )
AM_RANGE(0x000000, 0x07ffff) AM_RAM AM_REGION("audiocpu", 0) AM_BASE_MEMBER(model2_state, m_soundram)
AM_RANGE(0x100000, 0x100fff) AM_DEVREADWRITE("scsp", scsp_r, scsp_w)
AM_RANGE(0x400000, 0x400001) AM_WRITE(model2snd_ctrl)
@@ -1956,7 +1956,7 @@ static WRITE32_HANDLER(copro_sharc_buffer_w)
state->m_bufferram[offset & 0x7fff] = data;
}
-static ADDRESS_MAP_START( copro_sharc_map, AS_DATA, 32 )
+static ADDRESS_MAP_START( copro_sharc_map, AS_DATA, 32, model2_state )
AM_RANGE(0x0400000, 0x0bfffff) AM_READ(copro_sharc_input_fifo_r)
AM_RANGE(0x0c00000, 0x13fffff) AM_WRITE(copro_sharc_output_fifo_w)
AM_RANGE(0x1400000, 0x1bfffff) AM_READWRITE(copro_sharc_buffer_r, copro_sharc_buffer_w)
@@ -1964,7 +1964,7 @@ static ADDRESS_MAP_START( copro_sharc_map, AS_DATA, 32 )
ADDRESS_MAP_END
#if 0
-static ADDRESS_MAP_START( geo_sharc_map, AS_DATA, 32 )
+static ADDRESS_MAP_START( geo_sharc_map, AS_DATA, 32, model2_state )
ADDRESS_MAP_END
#endif
@@ -1983,7 +1983,7 @@ static WRITE32_HANDLER(copro_tgp_buffer_w)
state->m_bufferram[offset&0x7fff] = data;
}
-static ADDRESS_MAP_START( copro_tgp_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( copro_tgp_map, AS_PROGRAM, 32, model2_state )
AM_RANGE(0x00000000, 0x00007fff) AM_RAM AM_BASE_MEMBER(model2_state, m_tgp_program)
AM_RANGE(0x00400000, 0x00407fff) AM_READWRITE(copro_tgp_buffer_r, copro_tgp_buffer_w)
AM_RANGE(0xff800000, 0xff9fffff) AM_ROM AM_REGION("tgp", 0)
@@ -2129,12 +2129,12 @@ static READ8_HANDLER( driveio_port_str_r )
return sega_str[offset];
}
-static ADDRESS_MAP_START( drive_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( drive_map, AS_PROGRAM, 8, model2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( drive_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( drive_io_map, AS_IO, 8, model2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP //watchdog
AM_RANGE(0x23, 0x23) AM_WRITE(driveio_port_w)
diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c
index a5312308780..5fed06a4e5b 100644
--- a/src/mame/drivers/model3.c
+++ b/src/mame/drivers/model3.c
@@ -1873,7 +1873,7 @@ static WRITE64_HANDLER(daytona2_rombank_w)
}
}
-static ADDRESS_MAP_START( model3_mem, AS_PROGRAM, 64)
+static ADDRESS_MAP_START( model3_mem, AS_PROGRAM, 64, model3_state )
AM_RANGE(0x00000000, 0x007fffff) AM_RAM AM_BASE_MEMBER(model3_state, m_work_ram) /* work RAM */
AM_RANGE(0x84000000, 0x8400003f) AM_READ( real3d_status_r )
@@ -5083,7 +5083,7 @@ static WRITE16_HANDLER( model3snd_ctrl )
}
}
-static ADDRESS_MAP_START( model3_snd, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( model3_snd, AS_PROGRAM, 16, model3_state )
AM_RANGE(0x000000, 0x07ffff) AM_RAM AM_REGION("scsp1", 0) AM_BASE_MEMBER(model3_state, m_soundram)
AM_RANGE(0x100000, 0x100fff) AM_DEVREADWRITE("scsp1", scsp_r, scsp_w)
AM_RANGE(0x200000, 0x27ffff) AM_RAM AM_REGION("scsp2", 0)
diff --git a/src/mame/drivers/mogura.c b/src/mame/drivers/mogura.c
index 945a97233fd..580945ef85d 100644
--- a/src/mame/drivers/mogura.c
+++ b/src/mame/drivers/mogura.c
@@ -121,14 +121,14 @@ static WRITE8_HANDLER ( mogura_gfxram_w )
}
-static ADDRESS_MAP_START( mogura_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mogura_map, AS_PROGRAM, 8, mogura_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM // main ram
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(mogura_gfxram_w) AM_BASE_MEMBER(mogura_state, m_gfxram) // ram based characters
AM_RANGE(0xf000, 0xffff) AM_RAM_WRITE(mogura_tileram_w) AM_BASE_MEMBER(mogura_state, m_tileram) // tilemap
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mogura_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mogura_io_map, AS_IO, 8, mogura_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP // ??
AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM")
diff --git a/src/mame/drivers/mole.c b/src/mame/drivers/mole.c
index 514fe72cce7..a8ce94cc9f0 100644
--- a/src/mame/drivers/mole.c
+++ b/src/mame/drivers/mole.c
@@ -192,7 +192,7 @@ static READ8_HANDLER( mole_protection_r )
*
*************************************/
-static ADDRESS_MAP_START( mole_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mole_map, AS_PROGRAM, 8, mole_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0800, 0x08ff) AM_READ(mole_protection_r)
AM_RANGE(0x0800, 0x0800) AM_WRITENOP // ???
diff --git a/src/mame/drivers/momoko.c b/src/mame/drivers/momoko.c
index 107536779ba..f1b0390bfb3 100644
--- a/src/mame/drivers/momoko.c
+++ b/src/mame/drivers/momoko.c
@@ -54,7 +54,7 @@ static WRITE8_HANDLER( momoko_bg_read_bank_w )
/****************************************************************************/
-static ADDRESS_MAP_START( momoko_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( momoko_map, AS_PROGRAM, 8, momoko_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd064, 0xd0ff) AM_RAM AM_BASE_SIZE_MEMBER(momoko_state, m_spriteram, m_spriteram_size)
@@ -78,7 +78,7 @@ static ADDRESS_MAP_START( momoko_map, AS_PROGRAM, 8 )
AM_RANGE(0xf007, 0xf007) AM_WRITE(momoko_bg_priority_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( momoko_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( momoko_sound_map, AS_PROGRAM, 8, momoko_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_WRITENOP /* unknown */
diff --git a/src/mame/drivers/monzagp.c b/src/mame/drivers/monzagp.c
index dfc7f642e7a..6d1a548e046 100644
--- a/src/mame/drivers/monzagp.c
+++ b/src/mame/drivers/monzagp.c
@@ -111,7 +111,7 @@ static SCREEN_UPDATE_IND16(monzagp)
return 0;
}
-static ADDRESS_MAP_START( monzagp_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( monzagp_map, AS_PROGRAM, 8, monzagp_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
@@ -211,7 +211,7 @@ static WRITE8_HANDLER(port3_w)
#define I8039_bus 0x120
*/
-static ADDRESS_MAP_START( monzagp_io, AS_IO, 8 )
+static ADDRESS_MAP_START( monzagp_io, AS_IO, 8, monzagp_state )
AM_RANGE(0x00, 0xff) AM_READWRITE(rng_r,port_w)
AM_RANGE(0x100, 0x100) AM_WRITE(port0_w)
AM_RANGE(0x101, 0x101) AM_WRITE(port1_w)
diff --git a/src/mame/drivers/moo.c b/src/mame/drivers/moo.c
index 48152e00c14..7c2d21fcab2 100644
--- a/src/mame/drivers/moo.c
+++ b/src/mame/drivers/moo.c
@@ -259,7 +259,7 @@ static WRITE16_DEVICE_HANDLER( moobl_oki_bank_w )
downcast<okim6295_device *>(device)->set_bank_base((data & 0x0f) * 0x40000);
}
-static ADDRESS_MAP_START( moo_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( moo_map, AS_PROGRAM, 16, moo_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x0c0000, 0x0c003f) AM_DEVWRITE("k056832", k056832_word_w)
AM_RANGE(0x0c2000, 0x0c2007) AM_DEVWRITE("k053246", k053246_word_w)
@@ -296,7 +296,7 @@ static ADDRESS_MAP_START( moo_map, AS_PROGRAM, 16 )
#endif
ADDRESS_MAP_END
-static ADDRESS_MAP_START( moobl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( moobl_map, AS_PROGRAM, 16, moo_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x0c0000, 0x0c003f) AM_DEVWRITE("k056832", k056832_word_w)
AM_RANGE(0x0c2000, 0x0c2007) AM_DEVWRITE("k053246", k053246_word_w)
@@ -322,7 +322,7 @@ static ADDRESS_MAP_START( moobl_map, AS_PROGRAM, 16 )
AM_RANGE(0x1c0000, 0x1c1fff) AM_RAM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bucky_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bucky_map, AS_PROGRAM, 16, moo_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_RAM
AM_RANGE(0x090000, 0x09ffff) AM_RAM AM_BASE_MEMBER(moo_state, m_spriteram) /* Sprite RAM */
@@ -361,7 +361,7 @@ static ADDRESS_MAP_START( bucky_map, AS_PROGRAM, 16 )
#endif
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, moo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_RAM
diff --git a/src/mame/drivers/mosaic.c b/src/mame/drivers/mosaic.c
index 24fa554c2b0..5a54cb9495f 100644
--- a/src/mame/drivers/mosaic.c
+++ b/src/mame/drivers/mosaic.c
@@ -91,7 +91,7 @@ static READ8_HANDLER( gfire2_protection_r )
-static ADDRESS_MAP_START( mosaic_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mosaic_map, AS_PROGRAM, 8, mosaic_state )
AM_RANGE(0x00000, 0x0ffff) AM_ROM
AM_RANGE(0x20000, 0x21fff) AM_RAM
AM_RANGE(0x22000, 0x22fff) AM_RAM_WRITE(mosaic_bgvideoram_w) AM_BASE_MEMBER(mosaic_state, m_bgvideoram)
@@ -99,7 +99,7 @@ static ADDRESS_MAP_START( mosaic_map, AS_PROGRAM, 8 )
AM_RANGE(0x24000, 0x241ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gfire2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gfire2_map, AS_PROGRAM, 8, mosaic_state )
AM_RANGE(0x00000, 0x0ffff) AM_ROM
AM_RANGE(0x10000, 0x17fff) AM_RAM
AM_RANGE(0x22000, 0x22fff) AM_RAM_WRITE(mosaic_bgvideoram_w) AM_BASE_MEMBER(mosaic_state, m_bgvideoram)
@@ -107,7 +107,7 @@ static ADDRESS_MAP_START( gfire2_map, AS_PROGRAM, 8 )
AM_RANGE(0x24000, 0x241ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mosaic_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mosaic_io_map, AS_IO, 8, mosaic_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x3f) AM_WRITENOP /* Z180 internal registers */
AM_RANGE(0x30, 0x30) AM_READNOP /* Z180 internal registers */
@@ -117,7 +117,7 @@ static ADDRESS_MAP_START( mosaic_io_map, AS_IO, 8 )
AM_RANGE(0x76, 0x76) AM_READ_PORT("P2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gfire2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( gfire2_io_map, AS_IO, 8, mosaic_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x3f) AM_WRITENOP /* Z180 internal registers */
AM_RANGE(0x30, 0x30) AM_READNOP /* Z180 internal registers */
diff --git a/src/mame/drivers/mouser.c b/src/mame/drivers/mouser.c
index 7877046898e..f876e437c2f 100644
--- a/src/mame/drivers/mouser.c
+++ b/src/mame/drivers/mouser.c
@@ -65,7 +65,7 @@ static INTERRUPT_GEN( mouser_sound_nmi_assert )
device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
}
-static ADDRESS_MAP_START( mouser_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mouser_map, AS_PROGRAM, 8, mouser_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6bff) AM_RAM
AM_RANGE(0x8800, 0x88ff) AM_WRITENOP /* unknown */
@@ -81,14 +81,14 @@ static ADDRESS_MAP_START( mouser_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mouser_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mouser_sound_map, AS_PROGRAM, 8, mouser_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x3000, 0x3000) AM_READ(mouser_sound_byte_r)
AM_RANGE(0x4000, 0x4000) AM_WRITE(mouser_sound_nmi_clear_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mouser_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mouser_sound_io_map, AS_IO, 8, mouser_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_data_address_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("ay2", ay8910_data_address_w)
diff --git a/src/mame/drivers/mpoker.c b/src/mame/drivers/mpoker.c
index 5a02475f871..a8cb0266c7b 100644
--- a/src/mame/drivers/mpoker.c
+++ b/src/mame/drivers/mpoker.c
@@ -468,7 +468,7 @@ static WRITE8_HANDLER( outport7_w )
//}
*/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, mpoker_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
// AM_RANGE(0x0158, 0x0158) AM_WRITE (muxed_w)
AM_RANGE(0x3800, 0x38ff) AM_RAM AM_SHARE("nvram") /* NVRAM = 2x SCM5101E */
diff --git a/src/mame/drivers/mpu3.c b/src/mame/drivers/mpu3.c
index 65368402cc9..dc815f74b4a 100644
--- a/src/mame/drivers/mpu3.c
+++ b/src/mame/drivers/mpu3.c
@@ -871,7 +871,7 @@ static READ8_HANDLER( mpu3ptm_r )
return ptm2->read(offset >>2);
}
-static ADDRESS_MAP_START( mpu3_basemap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mpu3_basemap, AS_PROGRAM, 8, mpu3_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x8800, 0x881f) AM_READWRITE(mpu3ptm_r, mpu3ptm_w)/* PTM6840 IC2 */
AM_RANGE(0x9000, 0x9003) AM_DEVREADWRITE_MODERN("pia_ic3", pia6821_device, read, write) /* PIA6821 IC3 */
diff --git a/src/mame/drivers/mpu4.c b/src/mame/drivers/mpu4.c
index 5ff30afd78e..c400816c1e2 100644
--- a/src/mame/drivers/mpu4.c
+++ b/src/mame/drivers/mpu4.c
@@ -2908,7 +2908,7 @@ TIMER_DEVICE_CALLBACK( gen_50hz )
update_meters(state);//run at 100Hz to sync with PIAs
}
-static ADDRESS_MAP_START( mpu4_memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mpu4_memmap, AS_PROGRAM, 8, mpu4_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x0800, 0x0810) AM_READWRITE(characteriser_r,characteriser_w)
AM_RANGE(0x0850, 0x0850) AM_READWRITE(bankswitch_r,bankswitch_w) /* write bank (rom page select) */
diff --git a/src/mame/drivers/mpu4vid.c b/src/mame/drivers/mpu4vid.c
index 8e334379b42..cadc1d75250 100644
--- a/src/mame/drivers/mpu4vid.c
+++ b/src/mame/drivers/mpu4vid.c
@@ -1974,7 +1974,7 @@ static MACHINE_RESET( mpu4_vid )
state->m_chr_value = 0;
}
-static ADDRESS_MAP_START( mpu4_68k_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mpu4_68k_map, AS_PROGRAM, 16, mpu4_state )
AM_RANGE(0x000000, 0x7fffff) AM_ROM
AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_BASE_MEMBER(mpu4_state, m_vid_mainram)
// AM_RANGE(0x810000, 0x81ffff) AM_RAM /* ? */
@@ -1990,7 +1990,7 @@ static ADDRESS_MAP_START( mpu4_68k_map, AS_PROGRAM, 16 )
AM_RANGE(0xffd000, 0xffd00f) AM_READWRITE(characteriser16_r, characteriser16_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mpu4oki_68k_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mpu4oki_68k_map, AS_PROGRAM, 16, mpu4_state )
AM_RANGE(0x000000, 0x5fffff) AM_ROM //AM_WRITENOP
AM_RANGE(0x600000, 0x63ffff) AM_RAM /* The Mating Game has an extra 256kB RAM on the program card */
// AM_RANGE(0x640000, 0x7fffff) AM_NOP /* Possible bug, reads and writes here */
@@ -2011,7 +2011,7 @@ static ADDRESS_MAP_START( mpu4oki_68k_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
/* TODO: Fix up MPU4 map*/
-static ADDRESS_MAP_START( mpu4_6809_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mpu4_6809_map, AS_PROGRAM, 8, mpu4_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x0800, 0x0800) AM_DEVREADWRITE_MODERN("acia6850_0", acia6850_device, status_read, control_write)
AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE_MODERN("acia6850_0", acia6850_device, data_read, data_write)
@@ -2028,7 +2028,7 @@ static ADDRESS_MAP_START( mpu4_6809_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION("maincpu",0) /* 64k EPROM on board, only this region read */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bwbvid_68k_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bwbvid_68k_map, AS_PROGRAM, 16, mpu4_state )
AM_RANGE(0x000000, 0x7fffff) AM_ROM
AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_BASE_MEMBER(mpu4_state, m_vid_mainram)
AM_RANGE(0x810000, 0x81ffff) AM_RAM /* ? */
@@ -2045,7 +2045,7 @@ static ADDRESS_MAP_START( bwbvid_68k_map, AS_PROGRAM, 16 )
//AM_RANGE(0xa00004, 0xa0000f) AM_READWRITE(bwb_characteriser16_r, bwb_characteriser16_w)//AM_READWRITE(adpcm_r, adpcm_w) CHR ?
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bwbvid5_68k_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bwbvid5_68k_map, AS_PROGRAM, 16, mpu4_state )
AM_RANGE(0x000000, 0x7fffff) AM_ROM
AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_BASE_MEMBER(mpu4_state, m_vid_mainram)
AM_RANGE(0x810000, 0x81ffff) AM_RAM /* ? */
@@ -2195,7 +2195,7 @@ static const mc6845_interface hd6845_intf =
};
-static ADDRESS_MAP_START( dealem_memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dealem_memmap, AS_PROGRAM, 8, mpu4_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x0800, 0x0800) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
diff --git a/src/mame/drivers/mquake.c b/src/mame/drivers/mquake.c
index fa228156e8e..f391e9fc85d 100644
--- a/src/mame/drivers/mquake.c
+++ b/src/mame/drivers/mquake.c
@@ -93,7 +93,7 @@ static READ8_HANDLER( es5503_sample_r )
return rom[offset + (es5503->get_channel_strobe() * 0x10000)];
}
-static ADDRESS_MAP_START( mquake_es5503_map, AS_0, 8 )
+static ADDRESS_MAP_START( mquake_es5503_map, AS_0, 8, amiga_state )
AM_RANGE(0x000000, 0x1ffff) AM_READ(es5503_sample_r)
ADDRESS_MAP_END
@@ -131,7 +131,7 @@ static WRITE16_HANDLER( coin_chip_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, amiga_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_BASE_SIZE_MEMBER(amiga_state, m_chip_ram, m_chip_ram_size)
AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w)
diff --git a/src/mame/drivers/mrdo.c b/src/mame/drivers/mrdo.c
index 5e52807dbab..ee5f8216a2c 100644
--- a/src/mame/drivers/mrdo.c
+++ b/src/mame/drivers/mrdo.c
@@ -40,7 +40,7 @@ static READ8_HANDLER( mrdo_SECRE_r )
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, mrdo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(mrdo_bgvideoram_w) AM_BASE_MEMBER(mrdo_state, m_bgvideoram)
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(mrdo_fgvideoram_w) AM_BASE_MEMBER(mrdo_state, m_fgvideoram)
diff --git a/src/mame/drivers/mrflea.c b/src/mame/drivers/mrflea.c
index edee318eb00..f133a1604b8 100644
--- a/src/mame/drivers/mrflea.c
+++ b/src/mame/drivers/mrflea.c
@@ -166,7 +166,7 @@ static WRITE8_HANDLER( mrflea_data1_w )
*
*************************************/
-static ADDRESS_MAP_START( mrflea_master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mrflea_master_map, AS_PROGRAM, 8, mrflea_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(mrflea_videoram_w) AM_BASE_MEMBER(mrflea_state, m_videoram)
@@ -174,7 +174,7 @@ static ADDRESS_MAP_START( mrflea_master_map, AS_PROGRAM, 8 )
AM_RANGE(0xec00, 0xecff) AM_RAM_WRITE(mrflea_spriteram_w) AM_BASE_MEMBER(mrflea_state, m_spriteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mrflea_master_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mrflea_master_io_map, AS_IO, 8, mrflea_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP /* watchdog? */
AM_RANGE(0x40, 0x40) AM_WRITE(mrflea_io_w)
@@ -185,14 +185,14 @@ static ADDRESS_MAP_START( mrflea_master_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mrflea_slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mrflea_slave_map, AS_PROGRAM, 8, mrflea_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x80ff) AM_RAM
AM_RANGE(0x9000, 0x905a) AM_RAM /* ? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mrflea_slave_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mrflea_slave_io_map, AS_IO, 8, mrflea_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP /* watchdog */
AM_RANGE(0x10, 0x10) AM_READ(mrflea_interrupt_type_r) AM_WRITENOP /* ? / irq ACK */
diff --git a/src/mame/drivers/mrjong.c b/src/mame/drivers/mrjong.c
index 65a489c3751..bf3f252ceea 100644
--- a/src/mame/drivers/mrjong.c
+++ b/src/mame/drivers/mrjong.c
@@ -67,7 +67,7 @@ static READ8_HANDLER( io_0x03_r )
*
*************************************/
-static ADDRESS_MAP_START( mrjong_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mrjong_map, AS_PROGRAM, 8, mrjong_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa7ff) AM_RAM
@@ -75,7 +75,7 @@ static ADDRESS_MAP_START( mrjong_map, AS_PROGRAM, 8 )
AM_RANGE(0xe400, 0xe7ff) AM_RAM_WRITE(mrjong_colorram_w) AM_BASE_MEMBER(mrjong_state, m_colorram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mrjong_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mrjong_io_map, AS_IO, 8, mrjong_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("P2") AM_WRITE(mrjong_flipscreen_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_DEVWRITE("sn1", sn76496_w)
diff --git a/src/mame/drivers/ms32.c b/src/mame/drivers/ms32.c
index ea87c292d3f..cc26aeae9d6 100644
--- a/src/mame/drivers/ms32.c
+++ b/src/mame/drivers/ms32.c
@@ -354,7 +354,7 @@ static WRITE32_HANDLER( pip_w )
}
-static ADDRESS_MAP_START( ms32_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( ms32_map, AS_PROGRAM, 32, ms32_state )
/* RAM areas verified by testing on real hw - usually accessed at the 0xfc000000 + mirror */
AM_RANGE(0xc0000000, 0xc0007fff) AM_READWRITE8 (ms32_nvram_r8, ms32_nvram_w8, 0x000000ff) AM_MIRROR(0x3c1fe000) // nvram is 8-bit wide, 0x2000 in size */
/* AM_RANGE(0xc0008000, 0xc01fffff) // mirrors of nvramram, handled above */
@@ -422,7 +422,7 @@ static WRITE32_HANDLER( ms32_irq5_guess_w )
irq_raise(space->machine(), 5);
}
-static ADDRESS_MAP_START( f1superb_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( f1superb_map, AS_PROGRAM, 32, ms32_state )
AM_RANGE(0xfd0e0000, 0xfd0e0003) AM_READ(ms32_read_inputs3)
AM_RANGE(0xfce00004, 0xfce00023) AM_RAM // regs?
@@ -1384,7 +1384,7 @@ static WRITE8_HANDLER( to_main_w )
irq_raise(space->machine(), 1);
}
-static ADDRESS_MAP_START( ms32_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ms32_sound_map, AS_PROGRAM, 8, ms32_state )
AM_RANGE(0x0000, 0x3eff) AM_ROM
AM_RANGE(0x3f00, 0x3f0f) AM_DEVREADWRITE("ymf", ymf271_r,ymf271_w)
AM_RANGE(0x3f10, 0x3f10) AM_READWRITE(latch_r,to_main_w)
diff --git a/src/mame/drivers/msisaac.c b/src/mame/drivers/msisaac.c
index ea1065a653b..9e2dcc048de 100644
--- a/src/mame/drivers/msisaac.c
+++ b/src/mame/drivers/msisaac.c
@@ -175,7 +175,7 @@ static WRITE8_HANDLER( msisaac_mcu_w )
#endif
}
-static ADDRESS_MAP_START( msisaac_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( msisaac_map, AS_PROGRAM, 8, msisaac_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_le_w) AM_BASE_GENERIC(paletteram)
@@ -264,7 +264,7 @@ static WRITE8_HANDLER( sound_control_1_w )
//popmessage("SND1 0=%2x 1=%2x", state->m_snd_ctrl0, state->m_snd_ctrl1);
}
-static ADDRESS_MAP_START( msisaac_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( msisaac_sound_map, AS_PROGRAM, 8, msisaac_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("ay1", ay8910_address_data_w)
diff --git a/src/mame/drivers/mugsmash.c b/src/mame/drivers/mugsmash.c
index f63ca213a1a..3d9c1cd043e 100644
--- a/src/mame/drivers/mugsmash.c
+++ b/src/mame/drivers/mugsmash.c
@@ -172,7 +172,7 @@ static READ16_HANDLER ( mugsmash_input_ports_r )
}
#endif
-static ADDRESS_MAP_START( mugsmash_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mugsmash_map, AS_PROGRAM, 16, mugsmash_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(mugsmash_videoram1_w) AM_BASE_MEMBER(mugsmash_state, m_videoram1)
AM_RANGE(0x082000, 0x082fff) AM_RAM_WRITE(mugsmash_videoram2_w) AM_BASE_MEMBER(mugsmash_state, m_videoram2)
@@ -192,7 +192,7 @@ static ADDRESS_MAP_START( mugsmash_map, AS_PROGRAM, 16 )
#endif
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mugsmash_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mugsmash_sound_map, AS_PROGRAM, 8, mugsmash_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("ymsnd", ym2151_r,ym2151_w)
diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c
index 7d47d83b13e..7b82d79c083 100644
--- a/src/mame/drivers/multfish.c
+++ b/src/mame/drivers/multfish.c
@@ -668,7 +668,7 @@ DRIVER_INIT( lhauntent )
ent_decode(machine, 0x22, 0x44, 0x44, 0xbb, 0x24240);
}
-static ADDRESS_MAP_START( multfish_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( multfish_map, AS_PROGRAM, 8, multfish_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM AM_WRITE(multfish_vid_w)
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_DEVREADWRITE("m48t35", multfish_timekeeper_r, multfish_timekeeper_w)
@@ -902,7 +902,7 @@ static WRITE8_HANDLER( multfish_dispenable_w )
state->m_disp_enable = data;
}
-static ADDRESS_MAP_START( multfish_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( multfish_portmap, AS_IO, 8, multfish_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_READ_PORT("IN0")
AM_RANGE(0x11, 0x11) AM_READ_PORT("IN1")
@@ -958,7 +958,7 @@ static ADDRESS_MAP_START( multfish_portmap, AS_IO, 8 )
AM_RANGE(0xf8, 0xfd) AM_WRITE(multfish_bank_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rollfr_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( rollfr_portmap, AS_IO, 8, multfish_state )
AM_RANGE(0x33, 0x33) AM_WRITE(rollfr_hopper_w)
AM_IMPORT_FROM(multfish_portmap)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/multigam.c b/src/mame/drivers/multigam.c
index a37adee142c..2a347511408 100644
--- a/src/mame/drivers/multigam.c
+++ b/src/mame/drivers/multigam.c
@@ -326,7 +326,7 @@ static WRITE8_HANDLER(multigam_mapper2_w)
*******************************************************/
-static ADDRESS_MAP_START( multigam_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( multigam_map, AS_PROGRAM, 8, multigam_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM /* NES RAM */
AM_RANGE(0x0800, 0x0fff) AM_RAM /* additional RAM */
AM_RANGE(0x2000, 0x3fff) AM_DEVREADWRITE_MODERN("ppu", ppu2c0x_device, read, write)
@@ -344,7 +344,7 @@ static ADDRESS_MAP_START( multigam_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM AM_WRITE(multigam_mapper2_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( multigmt_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( multigmt_map, AS_PROGRAM, 8, multigam_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM /* NES RAM */
AM_RANGE(0x0800, 0x0fff) AM_RAM /* additional RAM */
AM_RANGE(0x3000, 0x3000) AM_WRITE(multigam_switch_prg_rom)
@@ -615,7 +615,7 @@ static WRITE8_HANDLER(multigm3_switch_prg_rom)
*******************************************************/
-static ADDRESS_MAP_START( multigm3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( multigm3_map, AS_PROGRAM, 8, multigam_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM /* NES RAM */
AM_RANGE(0x0800, 0x0fff) AM_RAM /* additional RAM */
AM_RANGE(0x2000, 0x3fff) AM_DEVREADWRITE_MODERN("ppu", ppu2c0x_device, read, write)
@@ -931,7 +931,7 @@ static WRITE8_HANDLER(supergm3_chr_bank_w)
*******************************************************/
-static ADDRESS_MAP_START( supergm3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( supergm3_map, AS_PROGRAM, 8, multigam_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM /* NES RAM */
AM_RANGE(0x0800, 0x0fff) AM_RAM /* additional RAM */
AM_RANGE(0x2000, 0x3fff) AM_DEVREADWRITE_MODERN("ppu", ppu2c0x_device, read, write)
diff --git a/src/mame/drivers/munchmo.c b/src/mame/drivers/munchmo.c
index 514ef7adfe1..c8c5b43d742 100644
--- a/src/mame/drivers/munchmo.c
+++ b/src/mame/drivers/munchmo.c
@@ -86,7 +86,7 @@ static READ8_DEVICE_HANDLER( munchmo_ayreset_r )
*
*************************************/
-static ADDRESS_MAP_START( mnchmobl_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mnchmobl_map, AS_PROGRAM, 8, munchmo_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
AM_RANGE(0xa000, 0xa3ff) AM_MIRROR(0x0400) AM_RAM AM_BASE_MEMBER(munchmo_state, m_sprite_xpos)
@@ -111,7 +111,7 @@ static ADDRESS_MAP_START( mnchmobl_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* memory map provided thru schematics */
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, munchmo_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_READ(soundlatch_r)
AM_RANGE(0x4000, 0x4fff) AM_DEVWRITE("ay1", ay8910_data_w)
diff --git a/src/mame/drivers/murogem.c b/src/mame/drivers/murogem.c
index b4b58f92e54..1d8f2b7f5a8 100644
--- a/src/mame/drivers/murogem.c
+++ b/src/mame/drivers/murogem.c
@@ -133,7 +133,7 @@ static WRITE8_HANDLER( outport_w )
}
-static ADDRESS_MAP_START( murogem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( murogem_map, AS_PROGRAM, 8, murogem_state )
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
AM_RANGE(0x4001, 0x4001) AM_DEVWRITE_MODERN("crtc", mc6845_device, register_w)
diff --git a/src/mame/drivers/murogmbl.c b/src/mame/drivers/murogmbl.c
index de6fd3c9c87..81e144ed1e7 100644
--- a/src/mame/drivers/murogmbl.c
+++ b/src/mame/drivers/murogmbl.c
@@ -73,7 +73,7 @@ static PALETTE_INIT( murogmbl )
}
}
-static ADDRESS_MAP_START( murogmbl_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( murogmbl_map, AS_PROGRAM, 8, murogmbl_state )
AM_RANGE(0x0000, 0x1fFf) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM
diff --git a/src/mame/drivers/mustache.c b/src/mame/drivers/mustache.c
index ffd2af9362e..678824f2a25 100644
--- a/src/mame/drivers/mustache.c
+++ b/src/mame/drivers/mustache.c
@@ -42,7 +42,7 @@ YM2151:
#define YM_CLOCK (XTAL1/4)
-static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, mustache_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(mustache_videoram_w) AM_BASE_MEMBER(mustache_state, m_videoram)
diff --git a/src/mame/drivers/mw18w.c b/src/mame/drivers/mw18w.c
index 7bd3c441b02..8ebc6193c3d 100644
--- a/src/mame/drivers/mw18w.c
+++ b/src/mame/drivers/mw18w.c
@@ -71,12 +71,12 @@ static CUSTOM_INPUT( mw18w_sensors_r )
-static ADDRESS_MAP_START( mw18w_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mw18w_map, AS_PROGRAM, 8, mw18w_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mw18w_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( mw18w_portmap, AS_IO, 8, mw18w_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(mw18w_sound0_w)
diff --git a/src/mame/drivers/mw8080bw.c b/src/mame/drivers/mw8080bw.c
index 0d4e609cb5b..4de1dafae22 100644
--- a/src/mame/drivers/mw8080bw.c
+++ b/src/mame/drivers/mw8080bw.c
@@ -207,7 +207,7 @@ static WRITE8_HANDLER( mw8080bw_reversable_shift_count_w)
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x1fff) AM_ROM AM_WRITENOP
AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_RAM AM_BASE_SIZE_MEMBER(mw8080bw_state, m_main_ram, m_main_ram_size)
@@ -323,7 +323,7 @@ static CUSTOM_INPUT( seawolf_erase_input_r )
}
-static ADDRESS_MAP_START( seawolf_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( seawolf_io_map, AS_IO, 8, mw8080bw_state )
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_PORT("IN0")
@@ -436,7 +436,7 @@ static WRITE8_HANDLER( gunfight_io_w )
}
-static ADDRESS_MAP_START( gunfight_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( gunfight_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
@@ -632,7 +632,7 @@ static WRITE8_HANDLER( tornbase_io_w )
}
-static ADDRESS_MAP_START( tornbase_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( tornbase_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
@@ -752,7 +752,7 @@ MACHINE_CONFIG_END
*
*************************************/
-static ADDRESS_MAP_START( zzzap_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( zzzap_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
@@ -919,7 +919,7 @@ static WRITE8_HANDLER( maze_io_w )
}
-static ADDRESS_MAP_START( maze_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( maze_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x3)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
@@ -989,7 +989,7 @@ static MACHINE_START( boothill )
}
-static ADDRESS_MAP_START( boothill_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( boothill_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
@@ -1083,7 +1083,7 @@ static WRITE8_HANDLER( checkmat_io_w )
}
-static ADDRESS_MAP_START( checkmat_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( checkmat_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x3)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
@@ -1219,7 +1219,7 @@ static CUSTOM_INPUT( desertgu_dip_sw_0_1_r )
}
-static ADDRESS_MAP_START( desertgu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( desertgu_io_map, AS_IO, 8, mw8080bw_state )
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_PORT("IN0")
@@ -1341,7 +1341,7 @@ static CUSTOM_INPUT( dplay_pitch_right_input_r )
}
-static ADDRESS_MAP_START( dplay_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( dplay_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
@@ -1519,7 +1519,7 @@ static MACHINE_START( gmissile )
}
-static ADDRESS_MAP_START( gmissile_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( gmissile_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
@@ -1615,7 +1615,7 @@ static MACHINE_START( m4 )
}
-static ADDRESS_MAP_START( m4_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( m4_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
@@ -1731,7 +1731,7 @@ static CUSTOM_INPUT( clowns_controller_r )
}
-static ADDRESS_MAP_START( clowns_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( clowns_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
@@ -1868,7 +1868,7 @@ MACHINE_CONFIG_END
*
*************************************/
-static ADDRESS_MAP_START( spacwalk_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( spacwalk_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
@@ -1962,7 +1962,7 @@ MACHINE_CONFIG_END
*
*************************************/
-static ADDRESS_MAP_START( shuffle_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( shuffle_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0xf) /* yes, 4, and no mirroring on the read handlers */
AM_RANGE(0x01, 0x01) AM_DEVREAD("mb14241", mb14241_shift_result_r)
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN0")
@@ -2042,7 +2042,7 @@ MACHINE_CONFIG_END
*
*************************************/
-static ADDRESS_MAP_START( dogpatch_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( dogpatch_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
@@ -2205,7 +2205,7 @@ static WRITE8_HANDLER( spcenctr_io_w )
}
-static ADDRESS_MAP_START( spcenctr_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( spcenctr_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0xfc) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0xfc) AM_READ_PORT("IN1")
@@ -2312,7 +2312,7 @@ static MACHINE_START( phantom2 )
}
-static ADDRESS_MAP_START( phantom2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( phantom2_io_map, AS_IO, 8, mw8080bw_state )
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_PORT("IN0")
@@ -2438,7 +2438,7 @@ static WRITE8_HANDLER( bowler_lights_2_w )
}
-static ADDRESS_MAP_START( bowler_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( bowler_io_map, AS_IO, 8, mw8080bw_state )
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_PORT("IN0")
@@ -2629,7 +2629,7 @@ int invaders_is_cabinet_cocktail(running_machine &machine)
}
-static ADDRESS_MAP_START( invaders_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( invaders_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
@@ -2760,7 +2760,7 @@ static CUSTOM_INPUT( blueshrk_coin_input_r )
}
-static ADDRESS_MAP_START( blueshrk_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( blueshrk_io_map, AS_IO, 8, mw8080bw_state )
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_PORT("IN0")
@@ -2840,7 +2840,7 @@ static UINT32 invad2ct_coin_input_r(void *param)
#endif
-static ADDRESS_MAP_START( invad2ct_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( invad2ct_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/mwarr.c b/src/mame/drivers/mwarr.c
index 2761567c382..05b081fa9f4 100644
--- a/src/mame/drivers/mwarr.c
+++ b/src/mame/drivers/mwarr.c
@@ -181,7 +181,7 @@ static WRITE16_HANDLER( mwarr_brightness_w )
*
*************************************/
-static ADDRESS_MAP_START( mwarr_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mwarr_map, AS_PROGRAM, 16, mwarr_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x1007ff) AM_RAM_WRITE(bg_videoram_w) AM_BASE_MEMBER(mwarr_state, m_bg_videoram)
AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(mlow_videoram_w) AM_BASE_MEMBER(mwarr_state, m_mlow_videoram)
diff --git a/src/mame/drivers/mystston.c b/src/mame/drivers/mystston.c
index 88cd1b1999d..c7afa07da79 100644
--- a/src/mame/drivers/mystston.c
+++ b/src/mame/drivers/mystston.c
@@ -99,7 +99,7 @@ static WRITE8_HANDLER( mystston_ay8910_select_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, mystston_state )
AM_RANGE(0x0000, 0x077f) AM_RAM
AM_RANGE(0x0780, 0x07df) AM_RAM AM_BASE_MEMBER(mystston_state, m_spriteram)
AM_RANGE(0x07e0, 0x0fff) AM_RAM
diff --git a/src/mame/drivers/mystwarr.c b/src/mame/drivers/mystwarr.c
index 563ce46e31f..a1d68efb3aa 100644
--- a/src/mame/drivers/mystwarr.c
+++ b/src/mame/drivers/mystwarr.c
@@ -251,7 +251,7 @@ static WRITE16_HANDLER( K053247_scattered_word_w )
/* 68000 memory handlers */
/* Mystic Warriors */
-static ADDRESS_MAP_START( mystwarr_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mystwarr_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // main program
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_MEMBER(mystwarr_state, m_gx_workram)
AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(K053247_scattered_word_r,K053247_scattered_word_w) AM_BASE_MEMBER(mystwarr_state, m_spriteram)
@@ -288,7 +288,7 @@ static ADDRESS_MAP_START( mystwarr_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
/* Metamorphic Force */
-static ADDRESS_MAP_START( metamrph_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( metamrph_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // main program
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_MEMBER(mystwarr_state, m_gx_workram)
AM_RANGE(0x210000, 0x210fff) AM_READWRITE(K053247_word_r,K053247_word_w)
@@ -330,7 +330,7 @@ static ADDRESS_MAP_START( metamrph_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
/* Violent Storm */
-static ADDRESS_MAP_START( viostorm_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( viostorm_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // main program
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_MEMBER(mystwarr_state, m_gx_workram)
AM_RANGE(0x210000, 0x210fff) AM_READWRITE(K053247_word_r,K053247_word_w)
@@ -427,7 +427,7 @@ static WRITE16_HANDLER( mccontrol_w )
}
/* Martial Champion */
-static ADDRESS_MAP_START( martchmp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( martchmp_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // main program
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE_MEMBER(mystwarr_state, m_gx_workram) // work RAM
AM_RANGE(0x300000, 0x3fffff) AM_ROM // data ROM
@@ -468,7 +468,7 @@ static ADDRESS_MAP_START( martchmp_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
/* Ultimate Battler Dadandarn */
-static ADDRESS_MAP_START( dadandrn_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dadandrn_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // main program and data ROM
AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(K053247_scattered_word_r,K053247_scattered_word_w) AM_BASE_MEMBER(mystwarr_state, m_spriteram)
AM_RANGE(0x410000, 0x411fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM
@@ -515,7 +515,7 @@ ADDRESS_MAP_END
// a00000 = the 128k tilemap
// 800000 = the 256k tilemap
// c00000 = 936 tiles (7fffff window)
-static ADDRESS_MAP_START( gaiapols_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gaiapols_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x000000, 0x2fffff) AM_ROM // main program
AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(K053247_scattered_word_r,K053247_scattered_word_w) AM_BASE_MEMBER(mystwarr_state, m_spriteram)
AM_RANGE(0x410000, 0x411fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM
@@ -582,7 +582,7 @@ static WRITE8_HANDLER( sound_bankswitch_w )
quite similar to xexex/gijoe/asterix's sound.
*/
-static ADDRESS_MAP_START( mystwarr_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mystwarr_sound_map, AS_PROGRAM, 8, mystwarr_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
AM_RANGE(0x0000, 0xbfff) AM_WRITENOP
diff --git a/src/mame/drivers/n8080.c b/src/mame/drivers/n8080.c
index 9c35006f112..a8bdee125d0 100644
--- a/src/mame/drivers/n8080.c
+++ b/src/mame/drivers/n8080.c
@@ -35,20 +35,20 @@ static READ8_HANDLER( n8080_shift_r )
return state->m_shift_data >> (8 - state->m_shift_bits);
}
-static ADDRESS_MAP_START( main_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_cpu_map, AS_PROGRAM, 8, n8080_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_MEMBER(n8080_state, m_videoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( helifire_main_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( helifire_main_cpu_map, AS_PROGRAM, 8, n8080_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_MEMBER(n8080_state, m_videoram)
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE_MEMBER(n8080_state, m_colorram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( main_io_map, AS_IO, 8, n8080_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/namcofl.c b/src/mame/drivers/namcofl.c
index c8fe62df572..4b349dfdd64 100644
--- a/src/mame/drivers/namcofl.c
+++ b/src/mame/drivers/namcofl.c
@@ -228,7 +228,7 @@ static WRITE32_HANDLER( namcofl_share_w )
COMBINE_DATA(state->m_shareram+offset*2+1);
}
-static ADDRESS_MAP_START( namcofl_mem, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( namcofl_mem, AS_PROGRAM, 32, namcofl_state )
AM_RANGE(0x00000000, 0x000fffff) AM_RAMBANK("bank1")
AM_RANGE(0x10000000, 0x100fffff) AM_RAMBANK("bank2")
AM_RANGE(0x20000000, 0x201fffff) AM_ROM AM_REGION("user1", 0) /* data */
@@ -329,14 +329,14 @@ static READ8_HANDLER(dac2_r) { return 0xff; }
static READ8_HANDLER(dac1_r) { return 0xff; }
static READ8_HANDLER(dac0_r) { return 0xff; }
-static ADDRESS_MAP_START( namcoc75_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( namcoc75_am, AS_PROGRAM, 16, namcofl_state )
AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE_MODERN("c352", c352_device, read, write)
AM_RANGE(0x004000, 0x00bfff) AM_RAM_WRITE(mcu_shared_w) AM_BASE_MEMBER(namcofl_state, m_shareram)
AM_RANGE(0x00c000, 0x00ffff) AM_ROM AM_REGION("c75", 0)
AM_RANGE(0x200000, 0x27ffff) AM_ROM AM_REGION("c75data", 0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( namcoc75_io, AS_IO, 8 )
+static ADDRESS_MAP_START( namcoc75_io, AS_IO, 8, namcofl_state )
AM_RANGE(M37710_PORT6, M37710_PORT6) AM_READWRITE(port6_r, port6_w)
AM_RANGE(M37710_PORT7, M37710_PORT7) AM_READ(port7_r)
AM_RANGE(M37710_ADC7_L, M37710_ADC7_L) AM_READ(dac7_r)
diff --git a/src/mame/drivers/namcona1.c b/src/mame/drivers/namcona1.c
index b8f8cc4ccb1..a8781cc2f62 100644
--- a/src/mame/drivers/namcona1.c
+++ b/src/mame/drivers/namcona1.c
@@ -745,7 +745,7 @@ static WRITE16_HANDLER( mcu_mailbox_w_mcu )
COMBINE_DATA(&state->m_mcu_mailbox[offset%8]);
}
-static ADDRESS_MAP_START( namcona1_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( namcona1_main_map, AS_PROGRAM, 16, namcona1_state )
AM_RANGE(0x000000, 0x07ffff) AM_RAM AM_BASE_MEMBER(namcona1_state, m_workram)
AM_RANGE(0x3f8000, 0x3fffff) AM_READWRITE(mcu_mailbox_r, mcu_mailbox_w_68k)
AM_RANGE(0x400000, 0xbfffff) AM_ROM AM_REGION("maincpu", 0x280000) /* data */
@@ -762,7 +762,7 @@ static ADDRESS_MAP_START( namcona1_main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( namcona2_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( namcona2_main_map, AS_PROGRAM, 16, namcona1_state )
AM_RANGE(0x000000, 0x07ffff) AM_RAM AM_BASE_MEMBER(namcona1_state, m_workram)
AM_RANGE(0x3f8000, 0x3fffff) AM_READWRITE(mcu_mailbox_r, mcu_mailbox_w_68k)
AM_RANGE(0x400000, 0xbfffff) AM_ROM AM_REGION("maincpu", 0x280000) /* data */
@@ -832,7 +832,7 @@ static WRITE16_DEVICE_HANDLER(snd_w)
}
}
-static ADDRESS_MAP_START( namcona1_mcu_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( namcona1_mcu_map, AS_PROGRAM, 16, namcona1_state )
AM_RANGE(0x000800, 0x000fff) AM_READWRITE(mcu_mailbox_r, mcu_mailbox_w_mcu) // "Mailslot" communications ports
AM_RANGE(0x001000, 0x001fff) AM_DEVREADWRITE("c140", snd_r, snd_w) // C140-alike sound chip
AM_RANGE(0x002000, 0x002fff) AM_READWRITE(na1mcu_shared_r, na1mcu_shared_w) // mirror of first page of shared work RAM
@@ -963,7 +963,7 @@ static READ8_HANDLER( portana_r )
return (port & bitnum[offset>>1]) ? 0xff : 0x00;
}
-static ADDRESS_MAP_START( namcona1_mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( namcona1_mcu_io_map, AS_IO, 8, namcona1_state )
AM_RANGE(M37710_PORT4, M37710_PORT4) AM_READWRITE( port4_r, port4_w )
AM_RANGE(M37710_PORT5, M37710_PORT5) AM_READWRITE( port5_r, port5_w )
AM_RANGE(M37710_PORT6, M37710_PORT6) AM_READWRITE( port6_r, port6_w )
diff --git a/src/mame/drivers/namconb1.c b/src/mame/drivers/namconb1.c
index 2d5f49f18b3..06449a1022e 100644
--- a/src/mame/drivers/namconb1.c
+++ b/src/mame/drivers/namconb1.c
@@ -853,7 +853,7 @@ static WRITE32_HANDLER(namconb_share_w)
COMBINE_DATA(state->m_namconb_shareram+offset*2);
}
-static ADDRESS_MAP_START( namconb1_am, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( namconb1_am, AS_PROGRAM, 32, namconb1_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10001f) AM_READ(gunbulet_gun_r)
AM_RANGE(0x1c0000, 0x1cffff) AM_RAM
@@ -871,7 +871,7 @@ static ADDRESS_MAP_START( namconb1_am, AS_PROGRAM, 32 )
AM_RANGE(0x700000, 0x707fff) AM_RAM AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( namconb2_am, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( namconb2_am, AS_PROGRAM, 32, namconb1_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x1c0000, 0x1cffff) AM_RAM
AM_RANGE(0x1e4000, 0x1e4003) AM_READWRITE(randgen_r,srand_w)
@@ -916,7 +916,7 @@ static WRITE16_HANDLER( nbmcu_shared_w )
}
}
-static ADDRESS_MAP_START( namcoc75_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( namcoc75_am, AS_PROGRAM, 16, namconb1_state )
AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE_MODERN("c352", c352_device, read, write)
AM_RANGE(0x004000, 0x00bfff) AM_RAM_WRITE(nbmcu_shared_w) AM_BASE_MEMBER(namconb1_state, m_namconb_shareram)
AM_RANGE(0x00c000, 0x00ffff) AM_ROM AM_REGION("c75", 0)
@@ -1003,7 +1003,7 @@ static READ8_HANDLER(dac0_r) // bit 6
return (input_port_read_safe(space->machine(), "P3", 0xff)<<7)&0x80;
}
-static ADDRESS_MAP_START( namcoc75_io, AS_IO, 8 )
+static ADDRESS_MAP_START( namcoc75_io, AS_IO, 8, namconb1_state )
AM_RANGE(M37710_PORT6, M37710_PORT6) AM_READWRITE(port6_r, port6_w)
AM_RANGE(M37710_PORT7, M37710_PORT7) AM_READ(port7_r)
AM_RANGE(M37710_ADC7_L, M37710_ADC7_L) AM_READ(dac7_r)
diff --git a/src/mame/drivers/namcond1.c b/src/mame/drivers/namcond1.c
index 2f14cdedd05..30bbc928101 100644
--- a/src/mame/drivers/namcond1.c
+++ b/src/mame/drivers/namcond1.c
@@ -76,7 +76,7 @@ Notes:
/*************************************************************/
-static ADDRESS_MAP_START( namcond1_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( namcond1_map, AS_PROGRAM, 16, namcond1_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(namcond1_shared_ram_r,namcond1_shared_ram_w) AM_BASE_MEMBER(namcond1_state, m_shared_ram)
AM_RANGE(0x800000, 0x80000f) AM_READWRITE(ygv608_r,ygv608_w)
@@ -251,7 +251,7 @@ static WRITE8_HANDLER( mcu_pa_write )
}
/* H8/3002 MCU stuff */
-static ADDRESS_MAP_START( nd1h8rwmap, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( nd1h8rwmap, AS_PROGRAM, 16, namcond1_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_READWRITE( sharedram_sub_r, sharedram_sub_w )
AM_RANGE(0xa00000, 0xa07fff) AM_DEVREADWRITE_MODERN("c352", c352_device, read, write)
@@ -262,7 +262,7 @@ static ADDRESS_MAP_START( nd1h8rwmap, AS_PROGRAM, 16 )
AM_RANGE(0xc00040, 0xc00041) AM_NOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nd1h8iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( nd1h8iomap, AS_IO, 8, namcond1_state )
AM_RANGE(H8_PORT_7, H8_PORT_7) AM_READ( mcu_p7_read )
AM_RANGE(H8_PORT_A, H8_PORT_A) AM_READWRITE( mcu_pa_read, mcu_pa_write )
AM_RANGE(H8_ADC_0_L, H8_ADC_3_H) AM_NOP // MCU reads these, but the games have no analog controls
diff --git a/src/mame/drivers/namcos1.c b/src/mame/drivers/namcos1.c
index 1d5004c7953..f4044d2ddb1 100644
--- a/src/mame/drivers/namcos1.c
+++ b/src/mame/drivers/namcos1.c
@@ -428,7 +428,7 @@ static WRITE8_HANDLER( namcos1_dac1_w )
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, namcos1_state )
AM_RANGE(0x0000, 0x1fff) AM_RAMBANK("bank1")
AM_RANGE(0x2000, 0x3fff) AM_RAMBANK("bank2")
AM_RANGE(0x4000, 0x5fff) AM_RAMBANK("bank3")
@@ -448,7 +448,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, namcos1_state )
AM_RANGE(0x0000, 0x1fff) AM_RAMBANK("bank9")
AM_RANGE(0x2000, 0x3fff) AM_RAMBANK("bank10")
AM_RANGE(0x4000, 0x5fff) AM_RAMBANK("bank11")
@@ -466,7 +466,7 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, namcos1_state )
AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank17") /* Banked ROMs */
AM_RANGE(0x4000, 0x4001) AM_DEVREAD("ymsnd", ym2151_status_port_r)
AM_RANGE(0x4000, 0x4001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -480,7 +480,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, namcos1_state )
AM_RANGE(0x0000, 0x001f) AM_READWRITE(m6801_io_r, m6801_io_w)
AM_RANGE(0x0080, 0x00ff) AM_RAM /* built in RAM */
AM_RANGE(0x1000, 0x1003) AM_READ(dsw_r)
@@ -497,7 +497,7 @@ static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8, namcos1_state )
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ_PORT("COIN") AM_WRITE(namcos1_coin_w)
AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READNOP AM_WRITE(namcos1_dac_gain_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/namcos10.c b/src/mame/drivers/namcos10.c
index 60a551761e3..d085c69f03f 100644
--- a/src/mame/drivers/namcos10.c
+++ b/src/mame/drivers/namcos10.c
@@ -281,7 +281,7 @@ public:
: psx_state(mconfig, type, tag) { }
};
-static ADDRESS_MAP_START( namcos10_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( namcos10_map, AS_PROGRAM, 32, namcos10_state )
AM_RANGE(0x00000000, 0x00ffffff) AM_RAM AM_SHARE("share1") /* ram */
AM_RANGE(0x1fc00000, 0x1fffffff) AM_ROM AM_SHARE("share2") AM_REGION("user1", 0) /* bios */
AM_RANGE(0x80000000, 0x80ffffff) AM_RAM AM_SHARE("share1") /* ram mirror */
diff --git a/src/mame/drivers/namcos11.c b/src/mame/drivers/namcos11.c
index b30ce4922ba..3992f684553 100644
--- a/src/mame/drivers/namcos11.c
+++ b/src/mame/drivers/namcos11.c
@@ -691,7 +691,7 @@ static READ32_HANDLER( lightgun_r )
return data;
}
-static ADDRESS_MAP_START( namcos11_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( namcos11_map, AS_PROGRAM, 32, namcos11_state )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE("share1") /* ram */
AM_RANGE(0x1fa04000, 0x1fa0ffff) AM_RAM AM_BASE_MEMBER(namcos11_state, m_sharedram) /* shared ram with C76 */
AM_RANGE(0x1fa20000, 0x1fa2ffff) AM_WRITE(keycus_w) AM_BASE_SIZE_MEMBER(namcos11_state, m_keycus, m_keycus_size) /* keycus */
@@ -744,7 +744,7 @@ static READ16_HANDLER( c76_inputs_r )
return 0xff;
}
-ADDRESS_MAP_START( c76_map, AS_PROGRAM, 16 )
+ADDRESS_MAP_START( c76_map, AS_PROGRAM, 16, namcos11_state )
AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE_MODERN("c352", c352_device, read, write)
AM_RANGE(0x001000, 0x001007) AM_READ( c76_inputs_r )
AM_RANGE(0x004000, 0x00bfff) AM_READWRITE( c76_shared_r, c76_shared_w )
@@ -806,7 +806,7 @@ static READ8_HANDLER(pocketrc_steer_r)
return input_port_read(space->machine(), "STEERING");
}
-ADDRESS_MAP_START( c76_io_map, AS_IO, 8 )
+ADDRESS_MAP_START( c76_io_map, AS_IO, 8, namcos11_state )
AM_RANGE(M37710_ADC7_L, M37710_ADC7_L) AM_READ(dac7_r)
AM_RANGE(M37710_ADC6_L, M37710_ADC6_L) AM_READ(dac6_r)
AM_RANGE(M37710_ADC5_L, M37710_ADC5_L) AM_READ(dac5_r)
diff --git a/src/mame/drivers/namcos12.c b/src/mame/drivers/namcos12.c
index 4293f5f642d..6b75de66ca2 100644
--- a/src/mame/drivers/namcos12.c
+++ b/src/mame/drivers/namcos12.c
@@ -1229,7 +1229,7 @@ static WRITE32_HANDLER( s12_dma_bias_w )
state->m_n_dmabias = data;
}
-static ADDRESS_MAP_START( namcos12_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( namcos12_map, AS_PROGRAM, 32, namcos12_state )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE("share1") /* ram */
AM_RANGE(0x1f000000, 0x1f000003) AM_READNOP AM_WRITE(bankoffset_w) /* banking */
AM_RANGE(0x1f080000, 0x1f083fff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE_MEMBER(namcos12_state, m_sharedram) /* shared ram?? */
@@ -1418,7 +1418,7 @@ static MACHINE_RESET( namcos12 )
}
/* H8/3002 MCU stuff */
-static ADDRESS_MAP_START( s12h8rwmap, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( s12h8rwmap, AS_PROGRAM, 16, namcos12_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_READWRITE( sharedram_sub_r, sharedram_sub_w )
AM_RANGE(0x280000, 0x287fff) AM_DEVREADWRITE_MODERN("c352", c352_device, read, write)
@@ -1599,7 +1599,7 @@ static READ8_HANDLER( s12_mcu_gun_v_r )
return 0;
}
-static ADDRESS_MAP_START( s12h8iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( s12h8iomap, AS_IO, 8, namcos12_state )
AM_RANGE(H8_PORT_7, H8_PORT_7) AM_READ_PORT("DSW")
AM_RANGE(H8_PORT_8, H8_PORT_8) AM_READ( s12_mcu_p8_r ) AM_WRITENOP
AM_RANGE(H8_PORT_A, H8_PORT_A) AM_READWRITE( s12_mcu_pa_r, s12_mcu_pa_w )
diff --git a/src/mame/drivers/namcos2.c b/src/mame/drivers/namcos2.c
index 83f4ef16214..75066dd181b 100644
--- a/src/mame/drivers/namcos2.c
+++ b/src/mame/drivers/namcos2.c
@@ -467,6 +467,13 @@ $a00000 checks have been seen on the Final Lap boards.
/*************************************************************/
/* 68000/6809/63705 Shared memory area - DUAL PORT Memory */
/*************************************************************/
+class namcos2_state : public driver_device
+{
+public:
+ namcos2_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ { }
+};
static UINT8 *namcos2_dpram; /* 2Kx8 */
@@ -589,7 +596,7 @@ static WRITE8_HANDLER( namcos2_dpram_byte_w )
0xc00000 ONWARDS are unverified memory locations on the video board
*/
-static ADDRESS_MAP_START( namcos2_68k_default_cpu_board_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( namcos2_68k_default_cpu_board_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0x200000, 0x3fffff) AM_READ(namcos2_68k_data_rom_r)
AM_RANGE(0x400000, 0x41ffff) AM_READWRITE(namco_tilemapvideoram16_r,namco_tilemapvideoram16_w)
AM_RANGE(0x420000, 0x42003f) AM_READWRITE(namco_tilemapcontrol16_r,namco_tilemapcontrol16_w)
@@ -602,7 +609,7 @@ ADDRESS_MAP_END
/*************************************************************/
-static ADDRESS_MAP_START( common_default_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( common_default_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(namcos2_sprite_ram_r,namcos2_sprite_ram_w) AM_BASE(&namcos2_sprite_ram)
AM_RANGE(0xc40000, 0xc40001) AM_READWRITE(namcos2_gfx_ctrl_r,namcos2_gfx_ctrl_w)
AM_RANGE(0xc80000, 0xc9ffff) AM_READWRITE(namcos2_68k_roz_ram_r,namcos2_68k_roz_ram_w) AM_BASE(&namcos2_68k_roz_ram)
@@ -611,7 +618,7 @@ static ADDRESS_MAP_START( common_default_am, AS_PROGRAM, 16 )
AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( master_default_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( master_default_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAMBANK(NAMCOS2_68K_MASTER_RAM)
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)
@@ -619,7 +626,7 @@ static ADDRESS_MAP_START( master_default_am, AS_PROGRAM, 16 )
AM_IMPORT_FROM( common_default_am )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_default_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( slave_default_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAMBANK(NAMCOS2_68K_SLAVE_RAM)
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE(namcos2_68k_slave_C148_r,namcos2_68k_slave_C148_w)
@@ -629,7 +636,7 @@ ADDRESS_MAP_END
/*************************************************************/
-static ADDRESS_MAP_START( common_finallap_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( common_finallap_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0x300000, 0x33ffff) AM_READ(namcos2_flap_prot_r)
AM_RANGE(0x800000, 0x80ffff) AM_READ(namcos2_sprite_ram_r) AM_WRITE(namcos2_sprite_ram_w) AM_BASE(&namcos2_sprite_ram)
AM_RANGE(0x840000, 0x840001) AM_READ(namcos2_gfx_ctrl_r) AM_WRITE(namcos2_gfx_ctrl_w)
@@ -638,7 +645,7 @@ static ADDRESS_MAP_START( common_finallap_am, AS_PROGRAM, 16 )
AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( master_finallap_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( master_finallap_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAMBANK(NAMCOS2_68K_MASTER_RAM)
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)
@@ -646,7 +653,7 @@ static ADDRESS_MAP_START( master_finallap_am, AS_PROGRAM, 16 )
AM_IMPORT_FROM( common_finallap_am )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_finallap_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( slave_finallap_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAMBANK(NAMCOS2_68K_SLAVE_RAM)
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE(namcos2_68k_slave_C148_r,namcos2_68k_slave_C148_w)
@@ -655,14 +662,14 @@ ADDRESS_MAP_END
/*************************************************************/
-static ADDRESS_MAP_START( common_sgunner_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( common_sgunner_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0x800000, 0x8141ff) AM_READWRITE(namco_obj16_r,namco_obj16_w)
AM_RANGE(0x818000, 0x818001) AM_WRITENOP
AM_RANGE(0xa00000, 0xa0000f) AM_READWRITE(namcos2_68k_key_r,namcos2_68k_key_w)
AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( master_sgunner_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( master_sgunner_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAMBANK(NAMCOS2_68K_MASTER_RAM)
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)
@@ -670,7 +677,7 @@ static ADDRESS_MAP_START( master_sgunner_am, AS_PROGRAM, 16 )
AM_IMPORT_FROM( common_sgunner_am )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_sgunner_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( slave_sgunner_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAMBANK(NAMCOS2_68K_SLAVE_RAM)
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE(namcos2_68k_slave_C148_r,namcos2_68k_slave_C148_w)
@@ -679,7 +686,7 @@ ADDRESS_MAP_END
/*************************************************************/
-static ADDRESS_MAP_START( common_metlhawk_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( common_metlhawk_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(namcos2_sprite_ram_r,namcos2_sprite_ram_w) AM_BASE(&namcos2_sprite_ram) \
AM_RANGE(0xc40000, 0xc4ffff) AM_READWRITE(namco_rozvideoram16_r,namco_rozvideoram16_w) \
AM_RANGE(0xd00000, 0xd0001f) AM_READWRITE(namco_rozcontrol16_r,namco_rozcontrol16_w) \
@@ -687,7 +694,7 @@ static ADDRESS_MAP_START( common_metlhawk_am, AS_PROGRAM, 16 )
AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( master_metlhawk_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( master_metlhawk_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAMBANK(NAMCOS2_68K_MASTER_RAM)
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)
@@ -695,7 +702,7 @@ static ADDRESS_MAP_START( master_metlhawk_am, AS_PROGRAM, 16 )
AM_IMPORT_FROM( common_metlhawk_am )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_metlhawk_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( slave_metlhawk_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAMBANK(NAMCOS2_68K_SLAVE_RAM)
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE(namcos2_68k_slave_C148_r,namcos2_68k_slave_C148_w)
@@ -704,7 +711,7 @@ ADDRESS_MAP_END
/*************************************************************/
-static ADDRESS_MAP_START( common_luckywld_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( common_luckywld_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0x800000, 0x8141ff) AM_READWRITE(namco_obj16_r,namco_obj16_w)
AM_RANGE(0x818000, 0x818001) AM_NOP /* enable? */
AM_RANGE(0x81a000, 0x81a001) AM_WRITENOP /* enable? */
@@ -717,7 +724,7 @@ static ADDRESS_MAP_START( common_luckywld_am, AS_PROGRAM, 16 )
AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( master_luckywld_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( master_luckywld_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAMBANK(NAMCOS2_68K_MASTER_RAM)
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)
@@ -725,7 +732,7 @@ static ADDRESS_MAP_START( master_luckywld_am, AS_PROGRAM, 16 )
AM_IMPORT_FROM( common_luckywld_am )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_luckywld_am, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( slave_luckywld_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAMBANK(NAMCOS2_68K_SLAVE_RAM)
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE(namcos2_68k_slave_C148_r,namcos2_68k_slave_C148_w)
@@ -736,7 +743,7 @@ ADDRESS_MAP_END
/* 6809 SOUND CPU Memory declarations */
/*************************************************************/
-static ADDRESS_MAP_START( sound_default_am, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_default_am, AS_PROGRAM, 8, namcos2_state )
AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank6") /* banked */
AM_RANGE(0x4000, 0x4001) AM_DEVREADWRITE("ymsnd", ym2151_r,ym2151_w)
AM_RANGE(0x5000, 0x6fff) AM_DEVREADWRITE("c140", c140_r,c140_w)
@@ -755,7 +762,7 @@ ADDRESS_MAP_END
/* 68705 IO CPU Memory declarations */
/*************************************************************/
-static ADDRESS_MAP_START( mcu_default_am, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_default_am, AS_PROGRAM, 8, namcos2_state )
/* input ports and dips are mapped here */
AM_RANGE(0x0000, 0x0000) AM_READNOP /* Keep logging quiet */
AM_RANGE(0x0001, 0x0001) AM_READ(namcos2_input_port_0_r)
@@ -1605,7 +1612,7 @@ via software as INT1
/* */
/*************************************************************/
-static MACHINE_CONFIG_START( default, driver_device )
+static MACHINE_CONFIG_START( default, namcos2_state )
MCFG_CPU_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */
MCFG_CPU_PROGRAM_MAP(master_default_am)
MCFG_CPU_VBLANK_INT("screen", namcos2_68k_master_vblank)
@@ -1681,7 +1688,7 @@ static MACHINE_CONFIG_DERIVED( default3, default )
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_START( gollygho, driver_device )
+static MACHINE_CONFIG_START( gollygho, namcos2_state )
MCFG_CPU_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */
MCFG_CPU_PROGRAM_MAP(master_default_am)
MCFG_CPU_VBLANK_INT("screen", namcos2_68k_master_vblank)
@@ -1730,7 +1737,7 @@ static MACHINE_CONFIG_START( gollygho, driver_device )
MCFG_SOUND_ROUTE(1, "rspeaker", 0.80)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_START( finallap, driver_device )
+static MACHINE_CONFIG_START( finallap, namcos2_state )
MCFG_CPU_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */
MCFG_CPU_PROGRAM_MAP(master_finallap_am)
MCFG_CPU_VBLANK_INT("screen", namcos2_68k_master_vblank)
@@ -1779,7 +1786,7 @@ static MACHINE_CONFIG_START( finallap, driver_device )
MCFG_SOUND_ROUTE(1, "rspeaker", 0.80)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_START( sgunner, driver_device )
+static MACHINE_CONFIG_START( sgunner, namcos2_state )
MCFG_CPU_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */
MCFG_CPU_PROGRAM_MAP(master_sgunner_am)
MCFG_CPU_VBLANK_INT("screen", namcos2_68k_master_vblank)
@@ -1828,7 +1835,7 @@ static MACHINE_CONFIG_START( sgunner, driver_device )
MCFG_SOUND_ROUTE(1, "rspeaker", 0.80)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_START( luckywld, driver_device )
+static MACHINE_CONFIG_START( luckywld, namcos2_state )
MCFG_CPU_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */
MCFG_CPU_PROGRAM_MAP(master_luckywld_am)
MCFG_CPU_VBLANK_INT("screen", namcos2_68k_master_vblank)
@@ -1877,7 +1884,7 @@ static MACHINE_CONFIG_START( luckywld, driver_device )
MCFG_SOUND_ROUTE(1, "rspeaker", 0.80)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_START( metlhawk, driver_device )
+static MACHINE_CONFIG_START( metlhawk, namcos2_state )
MCFG_CPU_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */
MCFG_CPU_PROGRAM_MAP(master_metlhawk_am)
MCFG_CPU_VBLANK_INT("screen", namcos2_68k_master_vblank)
diff --git a/src/mame/drivers/namcos21.c b/src/mame/drivers/namcos21.c
index 3bd12da65a1..70178961483 100644
--- a/src/mame/drivers/namcos21.c
+++ b/src/mame/drivers/namcos21.c
@@ -765,17 +765,17 @@ static WRITE16_HANDLER( dsp_xf_w )
if (ENABLE_LOGGING) logerror("xf(%d)\n",data);
}
-static ADDRESS_MAP_START( master_dsp_program, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( master_dsp_program, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM /* BIOS */
AM_RANGE(0x8000, 0xbfff) AM_RAM AM_BASE_MEMBER(namcos21_state, m_master_dsp_code)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( master_dsp_data, AS_DATA, 16 )
+static ADDRESS_MAP_START( master_dsp_data, AS_DATA, 16, namcos21_state )
AM_RANGE(0x2000, 0x200f) AM_READWRITE(dspcuskey_r,dspcuskey_w)
AM_RANGE(0x8000, 0xffff) AM_READWRITE(dspram16_r,dspram16_w) /* 0x8000 words */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( master_dsp_io, AS_IO, 16 )
+static ADDRESS_MAP_START( master_dsp_io, AS_IO, 16, namcos21_state )
AM_RANGE(0x00,0x00) AM_READWRITE(dsp_port0_r,dsp_port0_w)
AM_RANGE(0x01,0x01) AM_READWRITE(dsp_port1_r,dsp_port1_w)
AM_RANGE(0x02,0x02) AM_READWRITE(dsp_port2_r,dsp_port2_w)
@@ -895,16 +895,16 @@ static READ16_HANDLER( slave_portf_r )
return 1;
}
-static ADDRESS_MAP_START( slave_dsp_program, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( slave_dsp_program, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM /* BIOS */
AM_RANGE(0x8000, 0x8fff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_dsp_data, AS_DATA, 16 )
+static ADDRESS_MAP_START( slave_dsp_data, AS_DATA, 16, namcos21_state )
/* no external data memory */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_dsp_io, AS_IO, 16 )
+static ADDRESS_MAP_START( slave_dsp_io, AS_IO, 16, namcos21_state )
AM_RANGE(0x00,0x00) AM_READWRITE(slave_port0_r,slave_port0_w)
AM_RANGE(0x02,0x02) AM_READ(slave_port2_r)
AM_RANGE(0x03,0x03) AM_READWRITE(slave_port3_r,slave_port3_w)
@@ -1106,7 +1106,7 @@ static READ16_HANDLER( NAMCO_C139_SCI_register_r ){ return 0; }
AM_RANGE(0xc00000, 0xcfffff) AM_READ(data2_r) /* Cyber Sled */ \
AM_RANGE(0xd00000, 0xdfffff) AM_READ(data2_r) \
-static ADDRESS_MAP_START( namcos21_68k_master, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( namcos21_68k_master, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* private work RAM */
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)// AM_BASE(&namcos2_eeprom) AM_SIZE(&namcos2_eeprom_size)
@@ -1114,7 +1114,7 @@ static ADDRESS_MAP_START( namcos21_68k_master, AS_PROGRAM, 16 )
NAMCO21_68K_COMMON
ADDRESS_MAP_END
-static ADDRESS_MAP_START( namcos21_68k_slave, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( namcos21_68k_slave, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAM /* private work RAM */
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE(namcos2_68k_slave_C148_r,namcos2_68k_slave_C148_w)
@@ -1266,17 +1266,17 @@ static READ16_HANDLER( winrun_table_r )
return state->m_winrun_polydata[offset];
}
-static ADDRESS_MAP_START( winrun_dsp_program, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( winrun_dsp_program, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( winrun_dsp_data, AS_DATA, 16 )
+static ADDRESS_MAP_START( winrun_dsp_data, AS_DATA, 16, namcos21_state )
AM_RANGE( 0x2000, 0x200f ) AM_READWRITE(winrun_cuskey_r,winrun_cuskey_w)
AM_RANGE( 0x4000, 0x4fff ) AM_READWRITE(winrun_dspcomram_r,winrun_dspcomram_w)
AM_RANGE( 0x8000, 0xffff ) AM_READ(winrun_table_r )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( winrun_dsp_io, AS_IO, 16 )
+static ADDRESS_MAP_START( winrun_dsp_io, AS_IO, 16, namcos21_state )
AM_RANGE(0x08,0x09) AM_READWRITE(winrun_dsp_pointrom_data_r,winrun_dsp_pointrom_addr_w)
AM_RANGE(0x0a,0x0a) AM_WRITE(winrun_dsp_render_w)
AM_RANGE(0x0b,0x0b) AM_WRITENOP
@@ -1349,7 +1349,7 @@ static WRITE16_HANDLER( winrun_dspcomram_control_w )
COMBINE_DATA( &state->m_winrun_dspcomram_control[offset] );
}
-static ADDRESS_MAP_START( am_master_winrun, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( am_master_winrun, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* work RAM */
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)// AM_BASE(&namcos2_eeprom) AM_SIZE(&namcos2_eeprom_size)
@@ -1369,7 +1369,7 @@ static ADDRESS_MAP_START( am_master_winrun, AS_PROGRAM, 16 )
AM_RANGE(0xb80000, 0xb8000f) AM_READWRITE(NAMCO_C139_SCI_register_r,NAMCO_C139_SCI_register_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( am_slave_winrun, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( am_slave_winrun, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAM
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE(namcos2_68k_slave_C148_r,namcos2_68k_slave_C148_w)
@@ -1381,7 +1381,7 @@ static ADDRESS_MAP_START( am_slave_winrun, AS_PROGRAM, 16 )
AM_RANGE(0xb80000, 0xb8000f) AM_READWRITE(NAMCO_C139_SCI_register_r,NAMCO_C139_SCI_register_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( am_gpu_winrun, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( am_gpu_winrun, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_READWRITE(winrun_gpu_color_r,winrun_gpu_color_w) /* ? */
AM_RANGE(0x180000, 0x19ffff) AM_RAM /* work RAM */
@@ -1399,7 +1399,7 @@ ADDRESS_MAP_END
/* SOUND 6809 CPU Memory declarations */
/*************************************************************/
-static ADDRESS_MAP_START( am_sound_winrun, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( am_sound_winrun, AS_PROGRAM, 8, namcos21_state )
AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank6") /* banked */
AM_RANGE(0x3000, 0x3003) AM_WRITENOP /* ? */
AM_RANGE(0x4000, 0x4001) AM_DEVREADWRITE("ymsnd", ym2151_r,ym2151_w)
@@ -1419,7 +1419,7 @@ ADDRESS_MAP_END
/* I/O HD63705 MCU Memory declarations */
/*************************************************************/
-static ADDRESS_MAP_START( am_mcu_winrun, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( am_mcu_winrun, AS_PROGRAM, 8, namcos21_state )
AM_RANGE(0x0000, 0x0000) AM_READNOP
AM_RANGE(0x0001, 0x0001) AM_READ_PORT("PORTB") /* p1,p2 start */
AM_RANGE(0x0002, 0x0002) AM_READ_PORT("PORTC") /* coins */
@@ -1458,7 +1458,7 @@ ADDRESS_MAP_END
AM_RANGE(0xb80000, 0xb8000f) AM_READWRITE(NAMCO_C139_SCI_register_r,NAMCO_C139_SCI_register_w) \
-static ADDRESS_MAP_START( driveyes_68k_master, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( driveyes_68k_master, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* private work RAM */
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)// AM_BASE(&namcos2_eeprom) AM_SIZE(&namcos2_eeprom_size)
@@ -1472,7 +1472,7 @@ static ADDRESS_MAP_START( driveyes_68k_master, AS_PROGRAM, 16 )
DRIVEYES_68K_COMMON
ADDRESS_MAP_END
-static ADDRESS_MAP_START( driveyes_68k_slave, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( driveyes_68k_slave, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* private work RAM */
AM_RANGE(0x1c0000, 0x1fffff) AM_READ(namcos2_68k_slave_C148_r) AM_WRITE(namcos2_68k_slave_C148_w)
diff --git a/src/mame/drivers/namcos22.c b/src/mame/drivers/namcos22.c
index dd287a6505e..07b4b283438 100644
--- a/src/mame/drivers/namcos22.c
+++ b/src/mame/drivers/namcos22.c
@@ -1797,18 +1797,18 @@ static WRITE16_HANDLER( master_render_device_w )
}
}
-static ADDRESS_MAP_START( master_dsp_program, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( master_dsp_program, AS_PROGRAM, 16, namcos22_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM /* internal ROM (4k words) */
AM_RANGE(0x4000, 0x7fff) AM_ROM AM_BASE_MEMBER(namcos22_state, m_mpMasterExternalRAM)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( master_dsp_data, AS_DATA, 16 )
+static ADDRESS_MAP_START( master_dsp_data, AS_DATA, 16, namcos22_state )
AM_RANGE(0x1000, 0x3fff) AM_RAM
AM_RANGE(0x4000, 0x7fff) AM_READ(master_external_ram_r) AM_WRITE(master_external_ram_w)
AM_RANGE(0x8000, 0xffff) AM_READ(namcos22_dspram16_r) AM_WRITE(namcos22_dspram16_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( master_dsp_io, AS_IO, 16 )
+static ADDRESS_MAP_START( master_dsp_io, AS_IO, 16, namcos22_state )
AM_RANGE(0x0,0x0) AM_WRITE(point_ram_loword_iw) AM_READ(point_ram_loword_r)
AM_RANGE(0x1,0x1) AM_WRITE(point_ram_hiword_w) AM_READ(point_ram_hiword_ir)
AM_RANGE(0x2,0x2) AM_WRITE(dsp_unk2_w) AM_READ(pdp_begin_r)
@@ -1891,16 +1891,16 @@ static WRITE16_HANDLER( dsp_slave_portb_w )
/* The slave dsp uses this to transmit a command sequence to an external device. */
}
-static ADDRESS_MAP_START( slave_dsp_program, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( slave_dsp_program, AS_PROGRAM, 16, namcos22_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM /* internal ROM */
AM_RANGE(0x8000, 0x9fff) AM_ROM AM_BASE_MEMBER(namcos22_state, m_mpSlaveExternalRAM)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_dsp_data, AS_DATA, 16 )
+static ADDRESS_MAP_START( slave_dsp_data, AS_DATA, 16, namcos22_state )
AM_RANGE(0x8000, 0x9fff) AM_READ(slave_external_ram_r) AM_WRITE(slave_external_ram_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slave_dsp_io, AS_IO, 16 )
+static ADDRESS_MAP_START( slave_dsp_io, AS_IO, 16, namcos22_state )
/* unknown signal */
AM_RANGE(0x3,0x3) AM_READ(dsp_slave_port3_r)
@@ -2546,7 +2546,7 @@ static WRITE32_HANDLER( namcos22s_chipselect_w )
}
/* Namco Super System 22 */
-static ADDRESS_MAP_START( namcos22s_am, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( namcos22s_am, AS_PROGRAM, 32, namcos22_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM
AM_RANGE(0x400000, 0x40001f) AM_READWRITE(namcos22_keycus_r, namcos22_keycus_w)
AM_RANGE(0x410000, 0x413fff) AM_RAM /* C139 SCI buffer */
@@ -2617,7 +2617,7 @@ static WRITE16_HANDLER( s22mcu_shared_w )
*/
// Super System 22 M37710
-static ADDRESS_MAP_START( mcu_program, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mcu_program, AS_PROGRAM, 16, namcos22_state )
AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE_MODERN("c352", c352_device, read, write)
AM_RANGE(0x004000, 0x00bfff) AM_READWRITE( s22mcu_shared_r, s22mcu_shared_w )
AM_RANGE(0x00c000, 0x00ffff) AM_ROM AM_REGION("user4", 0xc000)
@@ -2629,7 +2629,7 @@ static ADDRESS_MAP_START( mcu_program, AS_PROGRAM, 16 )
ADDRESS_MAP_END
// System 22 37702
-static ADDRESS_MAP_START( mcu_s22_program, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mcu_s22_program, AS_PROGRAM, 16, namcos22_state )
AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE_MODERN("c352", c352_device, read, write)
AM_RANGE(0x004000, 0x00bfff) AM_READWRITE( s22mcu_shared_r, s22mcu_shared_w )
AM_RANGE(0x00c000, 0x00ffff) AM_ROM AM_REGION("mcu", 0)
@@ -2945,7 +2945,7 @@ static READ8_HANDLER( airco22_mcu_adc_r )
}
}
-static ADDRESS_MAP_START( mcu_io, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_io, AS_IO, 8, namcos22_state )
AM_RANGE(M37710_PORT4, M37710_PORT4) AM_READ( mcu_port4_r ) AM_WRITE( mcu_port4_w )
AM_RANGE(M37710_PORT5, M37710_PORT5) AM_READ( mcu_port5_r ) AM_WRITE( mcu_port5_w )
AM_RANGE(M37710_PORT6, M37710_PORT6) AM_READ( mcu_port6_r ) AM_WRITE( mcu_port6_w )
@@ -2958,7 +2958,7 @@ static READ8_HANDLER( mcu_port4_s22_r )
return state->m_p4 | 0x10; // for C74, 0x10 selects sound MCU role, 0x00 selects control-reading role
}
-static ADDRESS_MAP_START( mcu_s22_io, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_s22_io, AS_IO, 8, namcos22_state )
AM_RANGE(M37710_PORT4, M37710_PORT4) AM_READ( mcu_port4_s22_r )
ADDRESS_MAP_END
@@ -3031,7 +3031,7 @@ MACHINE_CONFIG_END
/* Namco System 22 */
-static ADDRESS_MAP_START( namcos22_am, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( namcos22_am, AS_PROGRAM, 32, namcos22_state )
/**
* Program ROM (2M bytes)
* Mounted position: LLB: CPU 4D, LMB: CPU 2D, UMB: CPU 8D, UUB: CPU 6D
diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c
index 7a3317dd520..f1534fffa55 100644
--- a/src/mame/drivers/namcos23.c
+++ b/src/mame/drivers/namcos23.c
@@ -2419,7 +2419,7 @@ static MACHINE_START( s23 )
c361.timer->adjust(attotime::never);
}
-static ADDRESS_MAP_START( gorgon_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( gorgon_map, AS_PROGRAM, 32, namcos23_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffffff)
AM_RANGE(0x00000000, 0x003fffff) AM_RAM
AM_RANGE(0x01000000, 0x010000ff) AM_READWRITE( p3d_r, p3d_w )
@@ -2450,7 +2450,7 @@ static ADDRESS_MAP_START( gorgon_map, AS_PROGRAM, 32 )
AM_RANGE(0x0fc00000, 0x0fffffff) AM_WRITENOP AM_ROM AM_REGION("user1", 0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ss23_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( ss23_map, AS_PROGRAM, 32, namcos23_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffffff)
AM_RANGE(0x00000000, 0x00ffffff) AM_RAM
AM_RANGE(0x01000000, 0x010000ff) AM_READWRITE( p3d_r, p3d_w )
@@ -2496,14 +2496,14 @@ static WRITE32_HANDLER( sh2_shared_w )
COMBINE_DATA(&state->m_gmen_sh2_shared[offset]);
}
-static ADDRESS_MAP_START( gmen_mips_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( gmen_mips_map, AS_PROGRAM, 32, namcos23_state )
AM_IMPORT_FROM(ss23_map)
AM_RANGE(0x0e400000, 0x0e400003) AM_READ( gmen_trigger_sh2 )
AM_RANGE(0x0e700000, 0x0e707fff) AM_READWRITE( sh2_shared_r, sh2_shared_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gmen_sh2_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( gmen_sh2_map, AS_PROGRAM, 32, namcos23_state )
AM_RANGE( 0x00000000, 0x00007fff ) AM_RAM AM_BASE_MEMBER(namcos23_state, m_gmen_sh2_shared)
AM_RANGE( 0x04000000, 0x043fffff ) AM_RAM // SH-2 main work RAM
ADDRESS_MAP_END
@@ -2552,7 +2552,7 @@ static WRITE16_HANDLER( sub_interrupt_main_w )
}
/* H8/3002 MCU stuff */
-static ADDRESS_MAP_START( s23h8rwmap, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( s23h8rwmap, AS_PROGRAM, 16, namcos23_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_READWRITE( sharedram_sub_r, sharedram_sub_w )
AM_RANGE(0x280000, 0x287fff) AM_DEVREADWRITE_MODERN("c352", c352_device, read, write)
@@ -2905,7 +2905,7 @@ static WRITE8_HANDLER(s23_mcu_p6_w)
// printf("%02x to port 6\n", data);
}
-static ADDRESS_MAP_START( s23h8iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( s23h8iomap, AS_IO, 8, namcos23_state )
AM_RANGE(H8_PORT_6, H8_PORT_6) AM_READWRITE( s23_mcu_p6_r, s23_mcu_p6_w )
AM_RANGE(H8_PORT_7, H8_PORT_7) AM_READ_PORT( "H8PORT" )
AM_RANGE(H8_PORT_8, H8_PORT_8) AM_READ( s23_mcu_p8_r ) AM_WRITENOP
@@ -2921,7 +2921,7 @@ static ADDRESS_MAP_START( s23h8iomap, AS_IO, 8 )
ADDRESS_MAP_END
// version without serial hookup to I/O board for games where the PIC isn't dumped
-static ADDRESS_MAP_START( s23h8noiobmap, AS_IO, 8 )
+static ADDRESS_MAP_START( s23h8noiobmap, AS_IO, 8, namcos23_state )
AM_RANGE(H8_PORT_6, H8_PORT_6) AM_READWRITE( s23_mcu_p6_r, s23_mcu_p6_w )
AM_RANGE(H8_PORT_7, H8_PORT_7) AM_READ_PORT( "H8PORT" )
AM_RANGE(H8_PORT_8, H8_PORT_8) AM_READ( s23_mcu_p8_r ) AM_WRITENOP
@@ -3001,7 +3001,7 @@ static READ8_HANDLER(iob_r)
}
/* H8/3334 (Namco C78) I/O board MCU */
-static ADDRESS_MAP_START( s23iobrdmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( s23iobrdmap, AS_PROGRAM, 8, namcos23_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("ioboard", 0)
AM_RANGE(0x6000, 0x6000) AM_READ_PORT("TC2P0") // 0-1 = coin 0-3 = coin connect, 0-5 = test 0-6 = down select, 0-7 = up select, 0-8 = enter
AM_RANGE(0x6001, 0x6001) AM_READ_PORT("TC2P1") // 1-1 = gun trigger 1-2 = foot pedal
@@ -3013,7 +3013,7 @@ static ADDRESS_MAP_START( s23iobrdmap, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xf7ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( timecrs2iobrdmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( timecrs2iobrdmap, AS_PROGRAM, 8, namcos23_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("ioboard", 0)
AM_RANGE(0x6000, 0x6000) AM_READ_PORT("TC2P0")
AM_RANGE(0x6001, 0x6001) AM_READ_PORT("TC2P1")
@@ -3024,7 +3024,7 @@ static ADDRESS_MAP_START( timecrs2iobrdmap, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xf7ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gorgoniobrdmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gorgoniobrdmap, AS_PROGRAM, 8, namcos23_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("ioboard", 0)
AM_RANGE(0x6000, 0x6000) AM_READ_PORT("RRP0") // 0-5 = start
AM_RANGE(0x6001, 0x6001) AM_READ_PORT("RRP1") //
@@ -3041,7 +3041,7 @@ ADDRESS_MAP_END
port 5 bit 2 = LED to indicate transmitting packet to main
port 4 bit 2 = SENSE line back to main (0 = asserted, 1 = dropped)
*/
-static ADDRESS_MAP_START( s23iobrdiomap, AS_IO, 8 )
+static ADDRESS_MAP_START( s23iobrdiomap, AS_IO, 8, namcos23_state )
AM_RANGE(H8_PORT_4, H8_PORT_4) AM_READWRITE( s23_iob_p4_r, s23_iob_p4_w )
AM_RANGE(H8_PORT_5, H8_PORT_5) AM_NOP // status LED in bit 2
AM_RANGE(H8_PORT_6, H8_PORT_6) AM_NOP // unknown
diff --git a/src/mame/drivers/namcos86.c b/src/mame/drivers/namcos86.c
index d42c6dd90c9..b5d0ac03428 100644
--- a/src/mame/drivers/namcos86.c
+++ b/src/mame/drivers/namcos86.c
@@ -333,7 +333,7 @@ static MACHINE_RESET( namco86 )
-static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8, namcos86_state )
AM_RANGE(0x0000, 0x1fff) AM_READWRITE(rthunder_videoram1_r,rthunder_videoram1_w) AM_BASE_MEMBER(namcos86_state, m_rthunder_videoram1)
AM_RANGE(0x2000, 0x3fff) AM_READWRITE(rthunder_videoram2_r,rthunder_videoram2_w) AM_BASE_MEMBER(namcos86_state, m_rthunder_videoram2)
@@ -364,7 +364,7 @@ ADDRESS_MAP_END
#define CPU2_MEMORY(NAME,ADDR_SPRITE,ADDR_VIDEO1,ADDR_VIDEO2,ADDR_ROM,ADDR_BANK,ADDR_WDOG,ADDR_INT) \
-static ADDRESS_MAP_START( NAME##_cpu2_map, AS_PROGRAM, 8 ) \
+static ADDRESS_MAP_START( NAME##_cpu2_map, AS_PROGRAM, 8, namcos86_state ) \
AM_RANGE(ADDR_SPRITE+0x0000, ADDR_SPRITE+0x1fff) AM_READWRITE(rthunder_spriteram_r,rthunder_spriteram_w) AM_BASE_MEMBER(namcos86_state, m_rthunder_spriteram) \
AM_RANGE(ADDR_VIDEO1+0x0000, ADDR_VIDEO1+0x1fff) AM_READWRITE(rthunder_videoram1_r,rthunder_videoram1_w) \
AM_RANGE(ADDR_VIDEO2+0x0000, ADDR_VIDEO2+0x1fff) AM_READWRITE(rthunder_videoram2_r,rthunder_videoram2_w) \
@@ -389,7 +389,7 @@ CPU2_MEMORY( wndrmomo, 0x2000, 0x4000, 0x6000, UNUSED, UNUSED, 0xc000, 0xc800 )
#define MCU_MEMORY(NAME,ADDR_LOWROM,ADDR_INPUT,ADDR_UNK1,ADDR_UNK2) \
-static ADDRESS_MAP_START( NAME##_mcu_map, AS_PROGRAM, 8 ) \
+static ADDRESS_MAP_START( NAME##_mcu_map, AS_PROGRAM, 8, namcos86_state ) \
AM_RANGE(0x0000, 0x001f) AM_READWRITE(m6801_io_r,m6801_io_w) \
AM_RANGE(0x0080, 0x00ff) AM_RAM \
AM_RANGE(0x1000, 0x13ff) AM_DEVREADWRITE("namco", namcos1_cus30_r, namcos1_cus30_w) /* PSG device, shared RAM */ \
@@ -422,7 +422,7 @@ static READ8_HANDLER( readFF )
return 0xff;
}
-static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8, namcos86_state )
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ_PORT("IN2")
AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ(readFF) /* leds won't work otherwise */
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_WRITE(namcos86_coin_w)
diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c
index 58cdebe3dde..56669afe3a3 100644
--- a/src/mame/drivers/naomi.c
+++ b/src/mame/drivers/naomi.c
@@ -1551,7 +1551,7 @@ static WRITE64_DEVICE_HANDLER( eeprom_93c46a_w )
* Naomi 1 address map
*/
-static ADDRESS_MAP_START( naomi_map, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( naomi_map, AS_PROGRAM, 64, dc_state )
/* Area 0 */
AM_RANGE(0x00000000, 0x001fffff) AM_MIRROR(0xa2000000) AM_ROM AM_REGION("maincpu", 0) // BIOS
@@ -1603,7 +1603,7 @@ ADDRESS_MAP_END
* Naomi 2 address map
*/
-static ADDRESS_MAP_START( naomi2_map, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( naomi2_map, AS_PROGRAM, 64, dc_state )
/* Area 0 */
AM_RANGE(0x00000000, 0x001fffff) AM_MIRROR(0xa2000000) AM_ROM AM_REGION("maincpu", 0) // BIOS
@@ -1662,7 +1662,7 @@ static ADDRESS_MAP_START( naomi2_map, AS_PROGRAM, 64 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( naomi_port, AS_IO, 64 )
+static ADDRESS_MAP_START( naomi_port, AS_IO, 64, dc_state )
AM_RANGE(0x00, 0x0f) AM_DEVREADWRITE("main_eeprom", eeprom_93c46a_r, eeprom_93c46a_w)
ADDRESS_MAP_END
@@ -1755,7 +1755,7 @@ static WRITE64_HANDLER( aw_modem_w )
mame_printf_verbose("MODEM: [%08x=%x] write %" I64FMT "x to %x, mask %" I64FMT "x\n", 0x600000+reg*4, dat, data, offset, mem_mask);
}
-static ADDRESS_MAP_START( aw_map, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( aw_map, AS_PROGRAM, 64, dc_state )
/* Area 0 */
AM_RANGE(0x00000000, 0x0001ffff) AM_READWRITE( aw_flash_r, aw_flash_w ) AM_REGION("awflash", 0)
AM_RANGE(0xa0000000, 0xa001ffff) AM_READWRITE( aw_flash_r, aw_flash_w ) AM_REGION("awflash", 0)
@@ -1827,7 +1827,7 @@ static const aica_interface aica_config =
};
-static ADDRESS_MAP_START( dc_audio_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( dc_audio_map, AS_PROGRAM, 32, dc_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x007fffff) AM_RAM AM_BASE_MEMBER( dc_state, dc_sound_ram ) /* shared with SH-4 */
AM_RANGE(0x00800000, 0x00807fff) AM_DEVREADWRITE("aica", dc_arm_aica_r, dc_arm_aica_w)
diff --git a/src/mame/drivers/naughtyb.c b/src/mame/drivers/naughtyb.c
index 1be78b12d31..da106d24f66 100644
--- a/src/mame/drivers/naughtyb.c
+++ b/src/mame/drivers/naughtyb.c
@@ -246,7 +246,7 @@ static WRITE8_HANDLER( popflame_protection_w )
-static ADDRESS_MAP_START( naughtyb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( naughtyb_map, AS_PROGRAM, 8, naughtyb_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_MEMBER(naughtyb_state, m_videoram)
@@ -259,7 +259,7 @@ static ADDRESS_MAP_START( naughtyb_map, AS_PROGRAM, 8 )
AM_RANGE(0xb800, 0xbfff) AM_READ(dsw0_port_r) // DSW0
ADDRESS_MAP_END
-static ADDRESS_MAP_START( popflame_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( popflame_map, AS_PROGRAM, 8, naughtyb_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_MEMBER(naughtyb_state, m_videoram)
diff --git a/src/mame/drivers/nbmj8688.c b/src/mame/drivers/nbmj8688.c
index bb0f54f05ad..3c5fb27a977 100644
--- a/src/mame/drivers/nbmj8688.c
+++ b/src/mame/drivers/nbmj8688.c
@@ -280,17 +280,17 @@ static DRIVER_INIT( barline )
nb1413m3_type = NB1413M3_BARLINE;
}
-static ADDRESS_MAP_START( mjsikaku_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mjsikaku_map, AS_PROGRAM, 8, nbmj8688_state )
AM_RANGE(0x0000, 0xf7ff) AM_ROM
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( secolove_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( secolove_map, AS_PROGRAM, 8, nbmj8688_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ojousan_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ojousan_map, AS_PROGRAM, 8, nbmj8688_state )
AM_RANGE(0x0000, 0x6fff) AM_ROM
AM_RANGE(0x7000, 0x7fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x8000, 0xffff) AM_ROM
@@ -304,7 +304,7 @@ static READ8_HANDLER( ff_r )
return 0xff;
}
-static ADDRESS_MAP_START( secolove_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( secolove_io_map, AS_IO, 8, nbmj8688_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
@@ -329,7 +329,7 @@ static WRITE8_HANDLER( barline_output_w )
coin_counter_w(space->machine(), 0,data & 0x02);
}
-static ADDRESS_MAP_START( barline_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( barline_io_map, AS_IO, 8, nbmj8688_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_sndrombank1_w)
@@ -347,7 +347,7 @@ static ADDRESS_MAP_START( barline_io_map, AS_IO, 8 )
AM_RANGE(0xf1, 0xf1) AM_READ(nb1413m3_dipsw2_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( crystalg_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( crystalg_io_map, AS_IO, 8, nbmj8688_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
@@ -367,7 +367,7 @@ static ADDRESS_MAP_START( crystalg_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( otonano_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( otonano_io_map, AS_IO, 8, nbmj8688_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
@@ -386,7 +386,7 @@ static ADDRESS_MAP_START( otonano_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kaguya_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( kaguya_io_map, AS_IO, 8, nbmj8688_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
@@ -406,7 +406,7 @@ static ADDRESS_MAP_START( kaguya_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( iemoto_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( iemoto_io_map, AS_IO, 8, nbmj8688_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
@@ -428,7 +428,7 @@ static ADDRESS_MAP_START( iemoto_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( seiha_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( seiha_io_map, AS_IO, 8, nbmj8688_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
@@ -449,7 +449,7 @@ static ADDRESS_MAP_START( seiha_io_map, AS_IO, 8 )
AM_RANGE(0xf0, 0xf0) AM_WRITE(mjsikaku_scrolly_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjgaiden_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mjgaiden_io_map, AS_IO, 8, nbmj8688_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
@@ -469,7 +469,7 @@ static ADDRESS_MAP_START( mjgaiden_io_map, AS_IO, 8 )
AM_RANGE(0xf0, 0xf0) AM_WRITE(mjsikaku_scrolly_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( p16bit_LCD_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( p16bit_LCD_io_map, AS_IO, 8, nbmj8688_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
@@ -495,7 +495,7 @@ static ADDRESS_MAP_START( p16bit_LCD_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjsikaku_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mjsikaku_io_map, AS_IO, 8, nbmj8688_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
@@ -516,7 +516,7 @@ static ADDRESS_MAP_START( mjsikaku_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mmsikaku_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mmsikaku_io_map, AS_IO, 8, nbmj8688_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
diff --git a/src/mame/drivers/nbmj8891.c b/src/mame/drivers/nbmj8891.c
index 3df27c88cee..e162b091dac 100644
--- a/src/mame/drivers/nbmj8891.c
+++ b/src/mame/drivers/nbmj8891.c
@@ -329,82 +329,82 @@ static DRIVER_INIT( taiwanmb )
}
-static ADDRESS_MAP_START( gionbana_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gionbana_map, AS_PROGRAM, 8, nbmj8891_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf00f) AM_READWRITE(nbmj8891_clut_r,nbmj8891_clut_w)
AM_RANGE(0xf400, 0xf5ff) AM_READWRITE(nbmj8891_palette_type1_r,nbmj8891_palette_type1_w)
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mgion_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mgion_map, AS_PROGRAM, 8, nbmj8891_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf1ff) AM_READWRITE(nbmj8891_palette_type1_r,nbmj8891_palette_type1_w)
AM_RANGE(0xf400, 0xf40f) AM_READWRITE(nbmj8891_clut_r,nbmj8891_clut_w)
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( omotesnd_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( omotesnd_map, AS_PROGRAM, 8, nbmj8891_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf400, 0xf5ff) AM_READWRITE(nbmj8891_palette_type1_r,nbmj8891_palette_type1_w)
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hanamomo_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hanamomo_map, AS_PROGRAM, 8, nbmj8891_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf1ff) AM_READWRITE(nbmj8891_palette_type1_r,nbmj8891_palette_type1_w)
AM_RANGE(0xf400, 0xf40f) AM_READWRITE(nbmj8891_clut_r,nbmj8891_clut_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( scandalm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( scandalm_map, AS_PROGRAM, 8, nbmj8891_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf400, 0xf5ff) AM_READWRITE(nbmj8891_palette_type1_r,nbmj8891_palette_type1_w)
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( club90s_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( club90s_map, AS_PROGRAM, 8, nbmj8891_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf80f) AM_READWRITE(nbmj8891_clut_r,nbmj8891_clut_w)
AM_RANGE(0xfc00, 0xfdff) AM_READWRITE(nbmj8891_palette_type1_r,nbmj8891_palette_type1_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lovehous_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lovehous_map, AS_PROGRAM, 8, nbmj8891_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf00f) AM_READWRITE(nbmj8891_clut_r,nbmj8891_clut_w)
AM_RANGE(0xf400, 0xf5ff) AM_READWRITE(nbmj8891_palette_type2_r,nbmj8891_palette_type2_w)
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( maiko_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( maiko_map, AS_PROGRAM, 8, nbmj8891_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf1ff) AM_READWRITE(nbmj8891_palette_type2_r,nbmj8891_palette_type2_w)
AM_RANGE(0xf400, 0xf40f) AM_READWRITE(nbmj8891_clut_r,nbmj8891_clut_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hnxmasev_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hnxmasev_map, AS_PROGRAM, 8, nbmj8891_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf200, 0xf3ff) AM_READWRITE(nbmj8891_palette_type2_r,nbmj8891_palette_type2_w)
AM_RANGE(0xf700, 0xf70f) AM_READWRITE(nbmj8891_clut_r,nbmj8891_clut_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hnageman_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hnageman_map, AS_PROGRAM, 8, nbmj8891_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf00f) AM_READWRITE(nbmj8891_clut_r,nbmj8891_clut_w)
AM_RANGE(0xf400, 0xf5ff) AM_READWRITE(nbmj8891_palette_type2_r,nbmj8891_palette_type2_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mmaiko_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mmaiko_map, AS_PROGRAM, 8, nbmj8891_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf1ff) AM_READWRITE(nbmj8891_palette_type2_r,nbmj8891_palette_type2_w)
AM_RANGE(0xf400, 0xf40f) AM_READWRITE(nbmj8891_clut_r,nbmj8891_clut_w)
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hanaoji_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hanaoji_map, AS_PROGRAM, 8, nbmj8891_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf200, 0xf3ff) AM_READWRITE(nbmj8891_palette_type2_r,nbmj8891_palette_type2_w)
AM_RANGE(0xf700, 0xf70f) AM_READWRITE(nbmj8891_clut_r,nbmj8891_clut_w)
@@ -416,7 +416,7 @@ static READ8_HANDLER( taiwanmb_unk_r )
return 0x00; // MCU or 1413M3 STATUS?
}
-static ADDRESS_MAP_START( taiwanmb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( taiwanmb_map, AS_PROGRAM, 8, nbmj8891_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xec00, 0xedff) AM_READWRITE(nbmj8891_palette_type3_r,nbmj8891_palette_type3_w)
AM_RANGE(0xf800, 0xfeff) AM_RAM AM_SHARE("nvram")
@@ -438,7 +438,7 @@ static ADDRESS_MAP_START( taiwanmb_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gionbana_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( gionbana_io_map, AS_IO, 8, nbmj8891_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
@@ -457,7 +457,7 @@ static ADDRESS_MAP_START( gionbana_io_map, AS_IO, 8 )
AM_RANGE(0xf1, 0xf1) AM_READ(nb1413m3_dipsw2_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mgion_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mgion_io_map, AS_IO, 8, nbmj8891_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
@@ -476,7 +476,7 @@ static ADDRESS_MAP_START( mgion_io_map, AS_IO, 8 )
AM_RANGE(0xf1, 0xf1) AM_READ(nb1413m3_dipsw2_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( omotesnd_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( omotesnd_io_map, AS_IO, 8, nbmj8891_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x07) AM_WRITE(nbmj8891_blitter_w)
@@ -498,7 +498,7 @@ static ADDRESS_MAP_START( omotesnd_io_map, AS_IO, 8 )
AM_RANGE(0xf1, 0xf1) AM_READ(nb1413m3_dipsw2_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hanamomo_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( hanamomo_io_map, AS_IO, 8, nbmj8891_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
@@ -517,7 +517,7 @@ static ADDRESS_MAP_START( hanamomo_io_map, AS_IO, 8 )
AM_RANGE(0xf1, 0xf1) AM_READ(nb1413m3_dipsw2_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( msjiken_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( msjiken_io_map, AS_IO, 8, nbmj8891_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
@@ -536,7 +536,7 @@ static ADDRESS_MAP_START( msjiken_io_map, AS_IO, 8 )
AM_RANGE(0xf1, 0xf1) AM_READ(nb1413m3_dipsw2_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( scandal_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( scandal_io_map, AS_IO, 8, nbmj8891_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x40, 0x4f) AM_WRITE(nbmj8891_clut_w)
@@ -555,7 +555,7 @@ static ADDRESS_MAP_START( scandal_io_map, AS_IO, 8 )
AM_RANGE(0xf1, 0xf1) AM_READ(nb1413m3_dipsw2_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( scandalm_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( scandalm_io_map, AS_IO, 8, nbmj8891_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x07) AM_WRITE(nbmj8891_blitter_w)
@@ -575,7 +575,7 @@ static ADDRESS_MAP_START( scandalm_io_map, AS_IO, 8 )
AM_RANGE(0xf1, 0xf1) AM_READ(nb1413m3_dipsw2_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bananadr_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( bananadr_io_map, AS_IO, 8, nbmj8891_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x07) AM_WRITE(nbmj8891_blitter_w)
@@ -595,7 +595,7 @@ static ADDRESS_MAP_START( bananadr_io_map, AS_IO, 8 )
AM_RANGE(0xf1, 0xf1) AM_READ(nb1413m3_dipsw2_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lovehous_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( lovehous_io_map, AS_IO, 8, nbmj8891_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
@@ -614,7 +614,7 @@ static ADDRESS_MAP_START( lovehous_io_map, AS_IO, 8 )
AM_RANGE(0xf1, 0xf1) AM_READ(nb1413m3_dipsw2_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( maiko_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( maiko_io_map, AS_IO, 8, nbmj8891_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
@@ -633,7 +633,7 @@ static ADDRESS_MAP_START( maiko_io_map, AS_IO, 8 )
AM_RANGE(0xf1, 0xf1) AM_READ(nb1413m3_dipsw2_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( taiwanmb_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( taiwanmb_io_map, AS_IO, 8, nbmj8891_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x81, 0x81) AM_DEVREAD("fmsnd", ay8910_r)
diff --git a/src/mame/drivers/nbmj8900.c b/src/mame/drivers/nbmj8900.c
index 4153ad87a5b..c99e2863a2a 100644
--- a/src/mame/drivers/nbmj8900.c
+++ b/src/mame/drivers/nbmj8900.c
@@ -108,21 +108,21 @@ static DRIVER_INIT( togenkyo )
}
-static ADDRESS_MAP_START( ohpaipee_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ohpaipee_map, AS_PROGRAM, 8, nbmj8900_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf00f) AM_READWRITE(nbmj8900_clut_r, nbmj8900_clut_w)
AM_RANGE(0xf400, 0xf5ff) AM_READWRITE(nbmj8900_palette_type1_r, nbmj8900_palette_type1_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( togenkyo_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( togenkyo_map, AS_PROGRAM, 8, nbmj8900_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf00f) AM_READWRITE(nbmj8900_clut_r, nbmj8900_clut_w)
AM_RANGE(0xf400, 0xf5ff) AM_READWRITE(nbmj8900_palette_type1_r, nbmj8900_palette_type1_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ohpaipee_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( ohpaipee_io_map, AS_IO, 8, nbmj8900_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
diff --git a/src/mame/drivers/nbmj8991.c b/src/mame/drivers/nbmj8991.c
index 6ea02e966ff..8db0b1b8ca3 100644
--- a/src/mame/drivers/nbmj8991.c
+++ b/src/mame/drivers/nbmj8991.c
@@ -190,70 +190,70 @@ static DRIVER_INIT( av2mj2rg )
}
-static ADDRESS_MAP_START( pstadium_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pstadium_map, AS_PROGRAM, 8, nbmj8991_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf00f) AM_READWRITE(nbmj8991_clut_r,nbmj8991_clut_w)
AM_RANGE(0xf200, 0xf3ff) AM_RAM_WRITE(nbmj8991_palette_type3_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("nvram") // finalbny
ADDRESS_MAP_END
-static ADDRESS_MAP_START( triplew1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( triplew1_map, AS_PROGRAM, 8, nbmj8991_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf1ff) AM_RAM_WRITE(nbmj8991_palette_type3_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf200, 0xf20f) AM_READWRITE(nbmj8991_clut_r,nbmj8991_clut_w)
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("nvram") // mjgottub
ADDRESS_MAP_END
-static ADDRESS_MAP_START( triplew2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( triplew2_map, AS_PROGRAM, 8, nbmj8991_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf1ff) AM_RAM_WRITE(nbmj8991_palette_type3_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf400, 0xf40f) AM_READWRITE(nbmj8991_clut_r,nbmj8991_clut_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjlstory_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mjlstory_map, AS_PROGRAM, 8, nbmj8991_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf200, 0xf3ff) AM_RAM_WRITE(nbmj8991_palette_type3_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf700, 0xf70f) AM_READWRITE(nbmj8991_clut_r,nbmj8991_clut_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( galkoku_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( galkoku_map, AS_PROGRAM, 8, nbmj8991_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf00f) AM_READWRITE(nbmj8991_clut_r,nbmj8991_clut_w)
AM_RANGE(0xf400, 0xf5ff) AM_RAM_WRITE(nbmj8991_palette_type1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("nvram") // hyouban
ADDRESS_MAP_END
-static ADDRESS_MAP_START( galkaika_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( galkaika_map, AS_PROGRAM, 8, nbmj8991_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf00f) AM_READWRITE(nbmj8991_clut_r,nbmj8991_clut_w)
AM_RANGE(0xf400, 0xf5ff) AM_RAM_WRITE(nbmj8991_palette_type2_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("nvram") // tokimbsj
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tokyogal_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tokyogal_map, AS_PROGRAM, 8, nbmj8991_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf1ff) AM_RAM_WRITE(nbmj8991_palette_type2_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf400, 0xf40f) AM_READWRITE(nbmj8991_clut_r,nbmj8991_clut_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( av2mj1bb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( av2mj1bb_map, AS_PROGRAM, 8, nbmj8991_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf1ff) AM_RAM_WRITE(nbmj8991_palette_type3_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf500, 0xf50f) AM_READWRITE(nbmj8991_clut_r,nbmj8991_clut_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( av2mj2rg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( av2mj2rg_map, AS_PROGRAM, 8, nbmj8991_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf00f) AM_READWRITE(nbmj8991_clut_r,nbmj8991_clut_w)
AM_RANGE(0xf200, 0xf3ff) AM_RAM_WRITE(nbmj8991_palette_type3_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( galkoku_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( galkoku_io_map, AS_IO, 8, nbmj8991_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READWRITE(nb1413m3_sndrom_r,nbmj8991_blitter_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_w)
@@ -267,7 +267,7 @@ static ADDRESS_MAP_START( galkoku_io_map, AS_IO, 8 )
AM_RANGE(0xf1, 0xf1) AM_READ(nb1413m3_dipsw2_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hyouban_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( hyouban_io_map, AS_IO, 8, nbmj8991_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READWRITE(nb1413m3_sndrom_r,nbmj8991_blitter_w)
AM_RANGE(0x81, 0x81) AM_DEVREAD("fmsnd", ay8910_r)
@@ -282,7 +282,7 @@ static ADDRESS_MAP_START( hyouban_io_map, AS_IO, 8 )
AM_RANGE(0xf1, 0xf1) AM_READ(nb1413m3_dipsw2_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pstadium_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( pstadium_io_map, AS_IO, 8, nbmj8991_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_WRITE(nbmj8991_blitter_w)
AM_RANGE(0x80, 0x80) AM_WRITE(nbmj8991_sound_w)
@@ -295,7 +295,7 @@ static ADDRESS_MAP_START( pstadium_io_map, AS_IO, 8 )
AM_RANGE(0xf8, 0xf8) AM_READ(nb1413m3_dipsw2_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( av2mj1bb_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( av2mj1bb_io_map, AS_IO, 8, nbmj8991_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_WRITE(nbmj8991_blitter_w)
AM_RANGE(0x80, 0x80) AM_WRITE(nbmj8991_sound_w)
@@ -310,13 +310,13 @@ static ADDRESS_MAP_START( av2mj1bb_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nbmj8991_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nbmj8991_sound_map, AS_PROGRAM, 8, nbmj8991_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nbmj8991_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( nbmj8991_sound_io_map, AS_IO, 8, nbmj8991_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(nbmj8991_sound_r) AM_DEVWRITE("dac1", DAC_WRITE)
AM_RANGE(0x02, 0x02) AM_DEVWRITE("dac2", DAC_WRITE)
diff --git a/src/mame/drivers/nbmj9195.c b/src/mame/drivers/nbmj9195.c
index 1f48d697402..9eff861fda6 100644
--- a/src/mame/drivers/nbmj9195.c
+++ b/src/mame/drivers/nbmj9195.c
@@ -692,7 +692,7 @@ static DRIVER_INIT( nbmj9195 )
nbmj9195_soundbank_w(space, 0, 0);
}
-static ADDRESS_MAP_START( tmpz84c011_regs, AS_IO, 8 )
+static ADDRESS_MAP_START( tmpz84c011_regs, AS_IO, 8, nbmj9195_state )
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("main_ctc", z80ctc_r,z80ctc_w)
AM_RANGE(0x50, 0x50) AM_READWRITE(tmpz84c011_0_pa_r,tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_READWRITE(tmpz84c011_0_pb_r,tmpz84c011_0_pb_w)
@@ -706,31 +706,31 @@ static ADDRESS_MAP_START( tmpz84c011_regs, AS_IO, 8 )
AM_RANGE(0x44, 0x44) AM_READWRITE(tmpz84c011_0_dir_pe_r,tmpz84c011_0_dir_pe_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sailorws_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sailorws_map, AS_PROGRAM, 8, nbmj9195_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf1ff) AM_READWRITE(nbmj9195_palette_r,nbmj9195_palette_w)
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjuraden_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mjuraden_map, AS_PROGRAM, 8, nbmj9195_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf200, 0xf3ff) AM_READWRITE(nbmj9195_palette_r,nbmj9195_palette_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( koinomp_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( koinomp_map, AS_PROGRAM, 8, nbmj9195_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe1ff) AM_READWRITE(nbmj9195_palette_r,nbmj9195_palette_w)
AM_RANGE(0xe800, 0xefff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ngpgal_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ngpgal_map, AS_PROGRAM, 8, nbmj9195_state )
AM_RANGE(0x0000, 0xcfff) AM_ROM
AM_RANGE(0xd000, 0xd1ff) AM_READWRITE(nbmj9195_palette_r,nbmj9195_palette_w)
AM_RANGE(0xd800, 0xdfff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mscoutm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mscoutm_map, AS_PROGRAM, 8, nbmj9195_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe5ff) AM_RAM
AM_RANGE(0xe600, 0xebff) AM_READWRITE(nbmj9195_nb22090_palette_r,nbmj9195_nb22090_palette_w)
@@ -738,7 +738,7 @@ static ADDRESS_MAP_START( mscoutm_map, AS_PROGRAM, 8 )
AM_RANGE(0xf200, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjegolf_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mjegolf_map, AS_PROGRAM, 8, nbmj9195_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe5ff) AM_READWRITE(nbmj9195_nb22090_palette_r,nbmj9195_nb22090_palette_w)
AM_RANGE(0xe600, 0xebff) AM_RAM
@@ -746,7 +746,7 @@ static ADDRESS_MAP_START( mjegolf_map, AS_PROGRAM, 8 )
AM_RANGE(0xf200, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjuraden_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mjuraden_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -761,7 +761,7 @@ static ADDRESS_MAP_START( mjuraden_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( koinomp_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( koinomp_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -781,7 +781,7 @@ static ADDRESS_MAP_START( koinomp_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( patimono_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( patimono_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -799,7 +799,7 @@ static ADDRESS_MAP_START( patimono_io_map, AS_IO, 8 )
AM_RANGE(0xd0, 0xdf) AM_WRITE(nbmj9195_clut_1_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mmehyou_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mmehyou_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -813,7 +813,7 @@ static ADDRESS_MAP_START( mmehyou_io_map, AS_IO, 8 )
AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gal10ren_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( gal10ren_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -831,7 +831,7 @@ static ADDRESS_MAP_START( gal10ren_io_map, AS_IO, 8 )
AM_RANGE(0xd8, 0xd8) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( renaiclb_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( renaiclb_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -849,7 +849,7 @@ static ADDRESS_MAP_START( renaiclb_io_map, AS_IO, 8 )
AM_RANGE(0xf0, 0xff) AM_WRITE(nbmj9195_clut_0_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjlaman_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mjlaman_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -868,7 +868,7 @@ static ADDRESS_MAP_START( mjlaman_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mkeibaou_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mkeibaou_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -887,7 +887,7 @@ static ADDRESS_MAP_START( mkeibaou_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pachiten_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( pachiten_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -905,7 +905,7 @@ static ADDRESS_MAP_START( pachiten_io_map, AS_IO, 8 )
AM_RANGE(0xe6, 0xe6) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sailorws_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sailorws_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -923,7 +923,7 @@ static ADDRESS_MAP_START( sailorws_io_map, AS_IO, 8 )
AM_RANGE(0xf6, 0xf6) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sailorwr_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sailorwr_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -942,7 +942,7 @@ static ADDRESS_MAP_START( sailorwr_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( psailor1_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( psailor1_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -960,7 +960,7 @@ static ADDRESS_MAP_START( psailor1_io_map, AS_IO, 8 )
AM_RANGE(0xf6, 0xf6) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( psailor2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( psailor2_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -978,7 +978,7 @@ static ADDRESS_MAP_START( psailor2_io_map, AS_IO, 8 )
AM_RANGE(0xf6, 0xf6) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( otatidai_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( otatidai_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -996,7 +996,7 @@ static ADDRESS_MAP_START( otatidai_io_map, AS_IO, 8 )
AM_RANGE(0xb8, 0xb8) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( yosimoto_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( yosimoto_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -1014,7 +1014,7 @@ static ADDRESS_MAP_START( yosimoto_io_map, AS_IO, 8 )
AM_RANGE(0xd0, 0xdf) AM_WRITE(nbmj9195_clut_1_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jituroku_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( jituroku_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -1032,7 +1032,7 @@ static ADDRESS_MAP_START( jituroku_io_map, AS_IO, 8 )
AM_RANGE(0xf8, 0xf8) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ngpgal_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( ngpgal_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -1046,7 +1046,7 @@ static ADDRESS_MAP_START( ngpgal_io_map, AS_IO, 8 )
AM_RANGE(0xd0, 0xdf) AM_WRITE(nbmj9195_clut_0_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjgottsu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mjgottsu_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -1060,7 +1060,7 @@ static ADDRESS_MAP_START( mjgottsu_io_map, AS_IO, 8 )
AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cmehyou_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( cmehyou_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -1074,7 +1074,7 @@ static ADDRESS_MAP_START( cmehyou_io_map, AS_IO, 8 )
AM_RANGE(0xd0, 0xdf) AM_WRITE(nbmj9195_clut_0_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjkoiura_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mjkoiura_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -1088,7 +1088,7 @@ static ADDRESS_MAP_START( mjkoiura_io_map, AS_IO, 8 )
AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mkoiuraa_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mkoiuraa_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -1102,7 +1102,7 @@ static ADDRESS_MAP_START( mkoiuraa_io_map, AS_IO, 8 )
AM_RANGE(0xd0, 0xdf) AM_WRITE(nbmj9195_clut_0_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mscoutm_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mscoutm_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -1122,7 +1122,7 @@ static ADDRESS_MAP_START( mscoutm_io_map, AS_IO, 8 )
AM_RANGE(0xf0, 0xff) AM_WRITE(nbmj9195_clut_1_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( imekura_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( imekura_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -1142,7 +1142,7 @@ static ADDRESS_MAP_START( imekura_io_map, AS_IO, 8 )
AM_RANGE(0xf0, 0xff) AM_WRITE(nbmj9195_clut_1_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjegolf_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mjegolf_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
@@ -1164,13 +1164,13 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( sailorws_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sailorws_sound_map, AS_PROGRAM, 8, nbmj9195_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sailorws_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sailorws_sound_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("audio_ctc", z80ctc_r,z80ctc_w)
AM_RANGE(0x50, 0x50) AM_READWRITE(tmpz84c011_1_pa_r,tmpz84c011_1_pa_w)
diff --git a/src/mame/drivers/nemesis.c b/src/mame/drivers/nemesis.c
index 049a3f4e3e9..59dbabba364 100644
--- a/src/mame/drivers/nemesis.c
+++ b/src/mame/drivers/nemesis.c
@@ -297,7 +297,7 @@ static WRITE8_DEVICE_HANDLER( city_sound_bank_w )
}
-static ADDRESS_MAP_START( nemesis_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( nemesis_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x04ffff) AM_RAM_WRITE(nemesis_charram_word_w) AM_BASE_SIZE_MEMBER(nemesis_state, m_charram, m_charram_size)
AM_RANGE(0x050000, 0x051fff) AM_RAM
@@ -328,7 +328,7 @@ static ADDRESS_MAP_START( nemesis_map, AS_PROGRAM, 16 )
AM_RANGE(0x060000, 0x067fff) AM_RAM /* WORK RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gx400_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gx400_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM /* ROM BIOS */
AM_RANGE(0x010000, 0x01ffff) AM_RAM
AM_RANGE(0x020000, 0x0287ff) AM_READWRITE(gx400_sharedram_word_r, gx400_sharedram_word_w)
@@ -363,7 +363,7 @@ static ADDRESS_MAP_START( gx400_map, AS_PROGRAM, 16 )
AM_RANGE(0x080000, 0x0bffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( konamigt_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( konamigt_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x04ffff) AM_RAM_WRITE(nemesis_charram_word_w) AM_BASE_SIZE_MEMBER(nemesis_state, m_charram, m_charram_size)
AM_RANGE(0x050000, 0x051fff) AM_RAM
@@ -395,7 +395,7 @@ static ADDRESS_MAP_START( konamigt_map, AS_PROGRAM, 16 )
AM_RANGE(0x070000, 0x070001) AM_READ(konamigt_input_word_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rf2_gx400_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rf2_gx400_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM /* ROM BIOS */
AM_RANGE(0x010000, 0x01ffff) AM_RAM
AM_RANGE(0x020000, 0x0287ff) AM_READWRITE(gx400_sharedram_word_r, gx400_sharedram_word_w)
@@ -431,7 +431,7 @@ static ADDRESS_MAP_START( rf2_gx400_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, nemesis_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0xa000, 0xafff) AM_DEVWRITE("k007232", k005289_pitch_A_w)
@@ -447,7 +447,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe405, 0xe405) AM_DEVWRITE("ay2", ay8910_data_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gx400_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gx400_sound_map, AS_PROGRAM, 8, nemesis_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x87ff) AM_RAM AM_BASE_MEMBER(nemesis_state, m_gx400_shared_ram)
AM_RANGE(0xa000, 0xafff) AM_DEVWRITE("k007232", k005289_pitch_A_w)
@@ -467,7 +467,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( salamand_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( salamand_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x087fff) AM_RAM
AM_RANGE(0x090000, 0x091fff) AM_RAM_WRITE(salamander_palette_word_w) AM_BASE_MEMBER(nemesis_state, m_paletteram)
@@ -492,7 +492,7 @@ static ADDRESS_MAP_START( salamand_map, AS_PROGRAM, 16 )
AM_RANGE(0x190f80, 0x190fff) AM_BASE_MEMBER(nemesis_state, m_yscroll2)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( blkpnthr_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( blkpnthr_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x081fff) AM_RAM_WRITE(salamander_palette_word_w) AM_BASE_MEMBER(nemesis_state, m_paletteram)
AM_RANGE(0x090000, 0x097fff) AM_RAM
@@ -517,7 +517,7 @@ static ADDRESS_MAP_START( blkpnthr_map, AS_PROGRAM, 16 )
AM_RANGE(0x190000, 0x190fff) AM_RAM AM_BASE_SIZE_MEMBER(nemesis_state, m_spriteram, m_spriteram_size) /* more sprite ram ??? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( citybomb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( citybomb_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x080000, 0x087fff) AM_RAM
AM_RANGE(0x0e0000, 0x0e1fff) AM_RAM_WRITE(salamander_palette_word_w) AM_BASE_MEMBER(nemesis_state, m_paletteram)
@@ -544,7 +544,7 @@ static ADDRESS_MAP_START( citybomb_map, AS_PROGRAM, 16 )
AM_RANGE(0x310000, 0x310fff) AM_RAM AM_BASE_SIZE_MEMBER(nemesis_state, m_spriteram, m_spriteram_size) /* more sprite ram ??? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nyanpani_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( nyanpani_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x040000, 0x047fff) AM_RAM
AM_RANGE(0x060000, 0x061fff) AM_RAM_WRITE(salamander_palette_word_w) AM_BASE_MEMBER(nemesis_state, m_paletteram)
@@ -577,7 +577,7 @@ static READ8_HANDLER( wd_r )
return state->m_frame_counter;
}
-static ADDRESS_MAP_START( sal_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sal_sound_map, AS_PROGRAM, 8, nemesis_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
@@ -588,7 +588,7 @@ static ADDRESS_MAP_START( sal_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf000) AM_DEVWRITE("vlm", salamand_speech_start_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( blkpnthr_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( blkpnthr_sound_map, AS_PROGRAM, 8, nemesis_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
@@ -597,7 +597,7 @@ static ADDRESS_MAP_START( blkpnthr_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe000) AM_READ(wd_r) /* watchdog?? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( city_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( city_sound_map, AS_PROGRAM, 8, nemesis_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9800, 0x987f) AM_DEVREADWRITE("k051649", k051649_waveform_r, k051649_waveform_w)
@@ -613,7 +613,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( hcrash_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hcrash_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x040000, 0x05ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM
diff --git a/src/mame/drivers/neogeo.c b/src/mame/drivers/neogeo.c
index 739160ffb09..ab0138ef4f6 100644
--- a/src/mame/drivers/neogeo.c
+++ b/src/mame/drivers/neogeo.c
@@ -1087,7 +1087,7 @@ static MACHINE_RESET( neogeo )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, neogeo_state )
AM_RANGE(0x000000, 0x00007f) AM_ROMBANK(NEOGEO_BANK_VECTORS)
AM_RANGE(0x000080, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_MIRROR(0x0f0000) AM_RAM
@@ -1121,7 +1121,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, neogeo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROMBANK(NEOGEO_BANK_AUDIO_CPU_MAIN_BANK)
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(NEOGEO_BANK_AUDIO_CPU_CART_BANK + 3)
AM_RANGE(0xc000, 0xdfff) AM_ROMBANK(NEOGEO_BANK_AUDIO_CPU_CART_BANK + 2)
@@ -1138,7 +1138,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( audio_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( audio_io_map, AS_IO, 8, neogeo_state )
/*AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READWRITE(audio_command_r, audio_cpu_clear_nmi_w);*/ /* may not and NMI clear */
AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READ(audio_command_r)
AM_RANGE(0x04, 0x07) AM_MIRROR(0xff00) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
diff --git a/src/mame/drivers/neoprint.c b/src/mame/drivers/neoprint.c
index 71360597840..d358043cc32 100644
--- a/src/mame/drivers/neoprint.c
+++ b/src/mame/drivers/neoprint.c
@@ -200,7 +200,7 @@ static WRITE8_HANDLER( audio_result_w )
state->m_audio_result = data;
}
-static ADDRESS_MAP_START( neoprint_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( neoprint_map, AS_PROGRAM, 16, neoprint_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
/* AM_RANGE(0x100000, 0x17ffff) multi-cart or banking, some writes points here if anything lies there too */
AM_RANGE(0x200000, 0x20ffff) AM_RAM
@@ -270,7 +270,7 @@ static READ16_HANDLER( rom_window_r )
return rom[offset | 0x80000/2 | state->m_bank_val*0x40000/2];
}
-static ADDRESS_MAP_START( nprsp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( nprsp_map, AS_PROGRAM, 16, neoprint_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x0fffff) AM_READ(rom_window_r)
AM_RANGE(0x200000, 0x200001) AM_READWRITE(neoprint_audio_result_r,audio_command_w)
@@ -297,7 +297,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( neoprint_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( neoprint_audio_map, AS_PROGRAM, 8, neoprint_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM//AM_ROMBANK(NEOGEO_BANK_AUDIO_CPU_MAIN_BANK)
// AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(NEOGEO_BANK_AUDIO_CPU_CART_BANK + 3)
// AM_RANGE(0xc000, 0xdfff) AM_ROMBANK(NEOGEO_BANK_AUDIO_CPU_CART_BANK + 2)
@@ -314,7 +314,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( neoprint_audio_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( neoprint_audio_io_map, AS_IO, 8, neoprint_state )
/*AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READWRITE(audio_command_r, audio_cpu_clear_nmi_w);*/ /* may not and NMI clear */
AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READ(audio_command_r) AM_WRITENOP
AM_RANGE(0x04, 0x07) AM_MIRROR(0xff00) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
diff --git a/src/mame/drivers/news.c b/src/mame/drivers/news.c
index 596bec05299..2c7d9c092ee 100644
--- a/src/mame/drivers/news.c
+++ b/src/mame/drivers/news.c
@@ -19,7 +19,7 @@ driver by David Haywood
#include "sound/okim6295.h"
-static ADDRESS_MAP_START( news_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( news_map, AS_PROGRAM, 8, news_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* 4000-7fff is written to during startup, probably leftover code */
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(news_fgram_w) AM_BASE_MEMBER(news_state, m_fgram)
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(news_bgram_w) AM_BASE_MEMBER(news_state, m_bgram)
diff --git a/src/mame/drivers/nexus3d.c b/src/mame/drivers/nexus3d.c
index 3981814ba28..39df633859e 100644
--- a/src/mame/drivers/nexus3d.c
+++ b/src/mame/drivers/nexus3d.c
@@ -145,7 +145,7 @@ static READ32_HANDLER( nexus3d_unk_r )
//
//}
-static ADDRESS_MAP_START( nexus3d_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( nexus3d_map, AS_PROGRAM, 32, nexus3d_state )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_BASE_MEMBER(nexus3d_state, m_mainram)
AM_RANGE(0x00400000, 0x01ffffff) AM_RAM // ?? uploads various data, + pointers to data in the 0x01ffxxxx range, might be video system related
diff --git a/src/mame/drivers/nightgal.c b/src/mame/drivers/nightgal.c
index 3b04e804a3d..06a475bad9e 100644
--- a/src/mame/drivers/nightgal.c
+++ b/src/mame/drivers/nightgal.c
@@ -464,7 +464,7 @@ static READ8_DEVICE_HANDLER( input_2p_r )
* Night Gal
********************************/
#ifdef UNUSED_CODE
-static ADDRESS_MAP_START( nightgal_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nightgal_map, AS_PROGRAM, 8, nightgal_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc100, 0xc100) AM_READ(nsc_latch_r)
AM_RANGE(0xc200, 0xc200) AM_WRITE(nsc_latch_w)
@@ -472,7 +472,7 @@ static ADDRESS_MAP_START( nightgal_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nightgal_io, AS_IO, 8 )
+static ADDRESS_MAP_START( nightgal_io, AS_IO, 8, nightgal_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01,0x01) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x02,0x03) AM_DEVWRITE("aysnd", ay8910_data_address_w)
@@ -485,7 +485,7 @@ static ADDRESS_MAP_START( nightgal_io, AS_IO, 8 )
AM_RANGE(0x12,0x14) AM_WRITE(blitter_w) //data for the nsc to be processed
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nsc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nsc_map, AS_PROGRAM, 8, nightgal_state )
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x0080, 0x0080) AM_READ(blitter_status_r)
AM_RANGE(0x0081, 0x0083) AM_READ(nsc_blit_r)
@@ -505,14 +505,14 @@ ADDRESS_MAP_END
* Sexy Gal
********************************/
-static ADDRESS_MAP_START( sexygal_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sexygal_map, AS_PROGRAM, 8, nightgal_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_RAM //???
AM_RANGE(0xe000, 0xefff) AM_READWRITE(royalqn_comm_r, royalqn_comm_w) AM_BASE_MEMBER(nightgal_state,m_comms_ram)
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sexygal_io, AS_IO, 8 )
+static ADDRESS_MAP_START( sexygal_io, AS_IO, 8, nightgal_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00,0x01) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
// AM_RANGE(0x10,0x10) AM_WRITE(output_w)
@@ -523,7 +523,7 @@ static ADDRESS_MAP_START( sexygal_io, AS_IO, 8 )
AM_RANGE(0x14,0x14) AM_MIRROR(0xe8) AM_READNOP AM_WRITE(royalqn_blitter_2_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sexygal_nsc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sexygal_nsc_map, AS_PROGRAM, 8, nightgal_state )
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x0080, 0x0080) AM_READ(blitter_status_r)
AM_RANGE(0x0081, 0x0083) AM_READ(royalqn_nsc_blit_r)
@@ -540,14 +540,14 @@ ADDRESS_MAP_END
* Royal Queen
********************************/
-static ADDRESS_MAP_START( royalqn_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( royalqn_map, AS_PROGRAM, 8, nightgal_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_NOP
AM_RANGE(0xc000, 0xdfff) AM_READWRITE(royalqn_comm_r, royalqn_comm_w) AM_BASE_MEMBER(nightgal_state,m_comms_ram)
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( royalqn_io, AS_IO, 8 )
+static ADDRESS_MAP_START( royalqn_io, AS_IO, 8, nightgal_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01,0x01) AM_MIRROR(0xec) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x02,0x03) AM_MIRROR(0xec) AM_DEVWRITE("aysnd", ay8910_data_address_w)
@@ -561,7 +561,7 @@ static ADDRESS_MAP_START( royalqn_io, AS_IO, 8 )
AM_RANGE(0x17,0x17) AM_MIRROR(0xe8) AM_NOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( royalqn_nsc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( royalqn_nsc_map, AS_PROGRAM, 8, nightgal_state )
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x0080, 0x0080) AM_READ(blitter_status_r)
AM_RANGE(0x0081, 0x0083) AM_READ(royalqn_nsc_blit_r)
diff --git a/src/mame/drivers/ninjakd2.c b/src/mame/drivers/ninjakd2.c
index 7377bcd06e4..e879b18ddef 100644
--- a/src/mame/drivers/ninjakd2.c
+++ b/src/mame/drivers/ninjakd2.c
@@ -392,7 +392,7 @@ static WRITE8_HANDLER( omegaf_io_protection_w )
*
*************************************/
-static ADDRESS_MAP_START( ninjakd2_main_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ninjakd2_main_cpu, AS_PROGRAM, 8, ninjakd2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("KEYCOIN")
@@ -413,7 +413,7 @@ static ADDRESS_MAP_START( ninjakd2_main_cpu, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mnight_main_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mnight_main_cpu, AS_PROGRAM, 8, ninjakd2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xd9ff) AM_RAM
@@ -434,7 +434,7 @@ static ADDRESS_MAP_START( mnight_main_cpu, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( robokid_main_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( robokid_main_cpu, AS_PROGRAM, 8, ninjakd2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram)
@@ -462,7 +462,7 @@ static ADDRESS_MAP_START( robokid_main_cpu, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( omegaf_main_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( omegaf_main_cpu, AS_PROGRAM, 8, ninjakd2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("KEYCOIN")
@@ -489,7 +489,7 @@ static ADDRESS_MAP_START( omegaf_main_cpu, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ninjakd2_sound_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ninjakd2_sound_cpu, AS_PROGRAM, 8, ninjakd2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
@@ -497,7 +497,7 @@ static ADDRESS_MAP_START( ninjakd2_sound_cpu, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf000) AM_WRITE(ninjakd2_pcm_play_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ninjakd2_sound_io, AS_IO, 8 )
+static ADDRESS_MAP_START( ninjakd2_sound_io, AS_IO, 8, ninjakd2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("2203.1", ym2203_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("2203.2", ym2203_w)
diff --git a/src/mame/drivers/ninjaw.c b/src/mame/drivers/ninjaw.c
index 5688b6e2f2f..f21fa3ebf60 100644
--- a/src/mame/drivers/ninjaw.c
+++ b/src/mame/drivers/ninjaw.c
@@ -428,7 +428,7 @@ static WRITE16_HANDLER( tc0100scn_triple_screen_w )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( ninjaw_master_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ninjaw_master_map, AS_PROGRAM, 16, ninjaw_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x0c0000, 0x0cffff) AM_RAM /* main ram */
AM_RANGE(0x200000, 0x200001) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_portreg_r, tc0220ioc_portreg_w, 0x00ff)
@@ -451,7 +451,7 @@ ADDRESS_MAP_END
// NB there could be conflicts between which cpu writes what to the
// palette, as our interleaving won't match the original board.
-static ADDRESS_MAP_START( ninjaw_slave_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ninjaw_slave_map, AS_PROGRAM, 16, ninjaw_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_RAM /* main ram */
AM_RANGE(0x200000, 0x200001) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_portreg_r, tc0220ioc_portreg_w, 0x00ff)
@@ -464,7 +464,7 @@ static ADDRESS_MAP_START( ninjaw_slave_map, AS_PROGRAM, 16 )
AM_RANGE(0x360000, 0x360007) AM_DEVREADWRITE("tc0110pcr_3", tc0110pcr_word_r, tc0110pcr_step1_word_w) /* palette (3rd screen) */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( darius2_master_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( darius2_master_map, AS_PROGRAM, 16, ninjaw_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x0c0000, 0x0cffff) AM_RAM /* main ram */
AM_RANGE(0x200000, 0x200001) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_portreg_r, tc0220ioc_portreg_w, 0x00ff)
@@ -484,7 +484,7 @@ static ADDRESS_MAP_START( darius2_master_map, AS_PROGRAM, 16 )
AM_RANGE(0x360000, 0x360007) AM_DEVREADWRITE("tc0110pcr_3", tc0110pcr_word_r, tc0110pcr_step1_word_w) /* palette (3rd screen) */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( darius2_slave_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( darius2_slave_map, AS_PROGRAM, 16, ninjaw_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_RAM /* main ram */
AM_RANGE(0x200000, 0x200001) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_portreg_r, tc0220ioc_portreg_w, 0x00ff)
@@ -497,7 +497,7 @@ ADDRESS_MAP_END
/***************************************************************************/
-static ADDRESS_MAP_START( ninjaw_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ninjaw_sound_map, AS_PROGRAM, 8, ninjaw_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10")
AM_RANGE(0xc000, 0xdfff) AM_RAM
diff --git a/src/mame/drivers/nitedrvr.c b/src/mame/drivers/nitedrvr.c
index b8bb6ede0d5..d450f1b0017 100644
--- a/src/mame/drivers/nitedrvr.c
+++ b/src/mame/drivers/nitedrvr.c
@@ -42,7 +42,7 @@
/* Memory Map */
-static ADDRESS_MAP_START( nitedrvr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nitedrvr_map, AS_PROGRAM, 8, nitedrvr_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x100) // SCRAM
AM_RANGE(0x0200, 0x027f) AM_RAM_WRITE(nitedrvr_videoram_w) AM_MIRROR(0x180) AM_BASE_MEMBER(nitedrvr_state, m_videoram) // PFW
AM_RANGE(0x0400, 0x05ff) AM_WRITE(nitedrvr_hvc_w) AM_BASE_MEMBER(nitedrvr_state, m_hvc) // POSH, POSV, CHAR, Watchdog
diff --git a/src/mame/drivers/niyanpai.c b/src/mame/drivers/niyanpai.c
index 90cd8b48d34..54086fa7f5d 100644
--- a/src/mame/drivers/niyanpai.c
+++ b/src/mame/drivers/niyanpai.c
@@ -356,7 +356,7 @@ static WRITE16_HANDLER ( musobana_inputport_w )
state->m_musobana_inputport = data;
}
-static ADDRESS_MAP_START( tmp68301_regs, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tmp68301_regs, AS_PROGRAM, 16, niyanpai_state )
AM_RANGE(0xfffc00, 0xfffc0f) AM_READWRITE(tmp68301_address_decoder_r,tmp68301_address_decoder_w)
AM_RANGE(0xfffc80, 0xfffc9f) AM_READWRITE(tmp68301_interrupt_controller_r,tmp68301_interrupt_controller_w)
AM_RANGE(0xfffd00, 0xfffd0f) AM_READWRITE(tmp68301_parallel_interface_r,tmp68301_parallel_interface_w)
@@ -364,7 +364,7 @@ static ADDRESS_MAP_START( tmp68301_regs, AS_PROGRAM, 16 )
AM_RANGE(0xfffe00, 0xfffe4f) AM_READWRITE(tmp68301_timer_r,tmp68301_timer_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( niyanpai_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( niyanpai_map, AS_PROGRAM, 16, niyanpai_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x040fff) AM_RAM AM_SHARE("nvram")
@@ -399,7 +399,7 @@ static ADDRESS_MAP_START( niyanpai_map, AS_PROGRAM, 16 )
AM_IMPORT_FROM( tmp68301_regs )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( musobana_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( musobana_map, AS_PROGRAM, 16, niyanpai_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x040fff) AM_RAM
@@ -437,7 +437,7 @@ static ADDRESS_MAP_START( musobana_map, AS_PROGRAM, 16 )
AM_IMPORT_FROM( tmp68301_regs )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mhhonban_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mhhonban_map, AS_PROGRAM, 16, niyanpai_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x040fff) AM_RAM
@@ -478,13 +478,13 @@ static ADDRESS_MAP_START( mhhonban_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( niyanpai_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( niyanpai_sound_map, AS_PROGRAM, 8, niyanpai_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( niyanpai_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( niyanpai_sound_io_map, AS_IO, 8, niyanpai_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("ctc", z80ctc_r, z80ctc_w)
AM_RANGE(0x50, 0x50) AM_READWRITE(tmpz84c011_0_pa_r, tmpz84c011_0_pa_w)
diff --git a/src/mame/drivers/nmg5.c b/src/mame/drivers/nmg5.c
index 3de4a0fc7b4..0378e4e05ce 100644
--- a/src/mame/drivers/nmg5.c
+++ b/src/mame/drivers/nmg5.c
@@ -327,7 +327,7 @@ static WRITE8_DEVICE_HANDLER( oki_banking_w )
********************************************************************/
-static ADDRESS_MAP_START( nmg5_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( nmg5_map, AS_PROGRAM, 16, nmg5_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x120000, 0x12ffff) AM_RAM
AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
@@ -347,7 +347,7 @@ static ADDRESS_MAP_START( nmg5_map, AS_PROGRAM, 16 )
AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_BASE_MEMBER(nmg5_state, m_bitmap)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pclubys_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pclubys_map, AS_PROGRAM, 16, nmg5_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
AM_RANGE(0x440000, 0x4407ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
@@ -372,17 +372,17 @@ ADDRESS_MAP_END
********************************************************************/
-static ADDRESS_MAP_START( nmg5_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nmg5_sound_map, AS_PROGRAM, 8, nmg5_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pclubys_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pclubys_sound_map, AS_PROGRAM, 8, nmg5_state )
AM_RANGE(0x0000, 0xf7ff) AM_ROM
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, nmg5_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVWRITE("oki", oki_banking_w)
AM_RANGE(0x10, 0x11) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w)
diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c
index c32a4420811..08cf30a3184 100644
--- a/src/mame/drivers/nmk16.c
+++ b/src/mame/drivers/nmk16.c
@@ -311,7 +311,7 @@ static WRITE16_HANDLER( afega_soundlatch_w )
/***************************************************************************/
-static ADDRESS_MAP_START( vandyke_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( vandyke_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1")
@@ -329,7 +329,7 @@ static ADDRESS_MAP_START( vandyke_map, AS_PROGRAM, 16 )
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_BASE_MEMBER(nmk16_state, m_mainram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( vandykeb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( vandykeb_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1")
@@ -348,7 +348,7 @@ static ADDRESS_MAP_START( vandykeb_map, AS_PROGRAM, 16 )
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_BASE_MEMBER(nmk16_state, m_mainram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( manybloc_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( manybloc_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1")
@@ -365,7 +365,7 @@ static ADDRESS_MAP_START( manybloc_map, AS_PROGRAM, 16 )
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_BASE_MEMBER(nmk16_state, m_mainram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tharrier_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tharrier_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
AM_RANGE(0x080002, 0x080003) AM_READ(tharrier_mcu_r) // AM_READ_PORT("IN1")
@@ -385,7 +385,7 @@ static ADDRESS_MAP_START( tharrier_map, AS_PROGRAM, 16 )
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_BASE_MEMBER(nmk16_state, m_mainram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tharrier_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tharrier_sound_map, AS_PROGRAM, 8, nmk16_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xf000, 0xf000) AM_READWRITE(soundlatch_r,soundlatch2_w)
@@ -395,7 +395,7 @@ static ADDRESS_MAP_START( tharrier_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf700, 0xf700) AM_WRITE(tharrier_oki6295_bankswitch_1_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tharrier_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( tharrier_sound_io_map, AS_IO, 8, nmk16_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
ADDRESS_MAP_END
@@ -403,7 +403,7 @@ ADDRESS_MAP_END
//Read input port 1 030c8/ BAD
//3478 GOOD
-static ADDRESS_MAP_START( mustang_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mustang_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1")
@@ -420,7 +420,7 @@ static ADDRESS_MAP_START( mustang_map, AS_PROGRAM, 16 )
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_BASE_MEMBER(nmk16_state, m_mainram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mustangb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mustangb_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1")
@@ -438,7 +438,7 @@ static ADDRESS_MAP_START( mustangb_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( twinactn_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( twinactn_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1")
@@ -456,7 +456,7 @@ static ADDRESS_MAP_START( twinactn_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( acrobatm_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( acrobatm_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x00000, 0x3ffff) AM_ROM
AM_RANGE(0x80000, 0x8ffff) AM_RAM AM_BASE_MEMBER(nmk16_state, m_mainram)
AM_RANGE(0xc0000, 0xc0001) AM_READ_PORT("IN0")
@@ -474,7 +474,7 @@ static ADDRESS_MAP_START( acrobatm_map, AS_PROGRAM, 16 )
AM_RANGE(0xd4000, 0xd47ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_BASE_MEMBER(nmk16_state, m_nmk_txvideoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bioship_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bioship_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1")
@@ -653,7 +653,7 @@ static WRITE16_HANDLER( hachamf_mainram_w )
}
}
-static ADDRESS_MAP_START( hachamf_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hachamf_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
/* I/O Region */
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
@@ -881,7 +881,7 @@ static TIMER_DEVICE_CALLBACK( hachamf_mcu_sim )
mcu_run(timer.machine(),0);
}
-static ADDRESS_MAP_START( tdragon_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tdragon_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x044022, 0x044023) AM_READNOP /* No Idea */
// AM_RANGE(0x0b0000, 0x0b7fff) AM_RAM /* Work RAM */
@@ -904,7 +904,7 @@ static ADDRESS_MAP_START( tdragon_map, AS_PROGRAM, 16 )
AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_BASE_MEMBER(nmk16_state, m_nmk_txvideoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tdragonb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tdragonb_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x044022, 0x044023) AM_READNOP /* No Idea */
AM_RANGE(0x0b0000, 0x0bffff) AM_RAM AM_BASE_MEMBER(nmk16_state, m_mainram)
@@ -921,7 +921,7 @@ static ADDRESS_MAP_START( tdragonb_map, AS_PROGRAM, 16 )
AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_BASE_MEMBER(nmk16_state, m_nmk_txvideoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ssmissin_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ssmissin_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x0b0000, 0x0bffff) AM_RAM AM_BASE_MEMBER(nmk16_state, m_mainram)
AM_RANGE(0x0c0000, 0x0c0001) AM_READ_PORT("IN0")
@@ -937,7 +937,7 @@ static ADDRESS_MAP_START( ssmissin_map, AS_PROGRAM, 16 )
AM_RANGE(0x0d0000, 0x0d07ff) AM_MIRROR(0x1800) AM_RAM_WRITE(nmk_txvideoram_w) AM_BASE_MEMBER(nmk16_state, m_nmk_txvideoram) //mirror for airattck
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ssmissin_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ssmissin_sound_map, AS_PROGRAM, 8, nmk16_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_WRITE(ssmissin_soundbank_w)
@@ -945,7 +945,7 @@ static ADDRESS_MAP_START( ssmissin_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( strahl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( strahl_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x00000, 0x3ffff) AM_ROM
AM_RANGE(0x80000, 0x80001) AM_READ_PORT("IN0")
AM_RANGE(0x80002, 0x80003) AM_READ_PORT("IN1")
@@ -964,7 +964,7 @@ static ADDRESS_MAP_START( strahl_map, AS_PROGRAM, 16 )
AM_RANGE(0xf0000, 0xfffff) AM_RAM AM_BASE_MEMBER(nmk16_state, m_mainram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( macross_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( macross_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1")
@@ -982,7 +982,7 @@ static ADDRESS_MAP_START( macross_map, AS_PROGRAM, 16 )
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_BASE_MEMBER(nmk16_state, m_mainram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gunnail_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gunnail_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1")
@@ -1002,7 +1002,7 @@ static ADDRESS_MAP_START( gunnail_map, AS_PROGRAM, 16 )
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_BASE_MEMBER(nmk16_state, m_mainram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( macross2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( macross2_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("IN0")
AM_RANGE(0x100002, 0x100003) AM_READ_PORT("IN1")
@@ -1028,7 +1028,7 @@ static ADDRESS_MAP_START( macross2_map, AS_PROGRAM, 16 )
AM_RANGE(0x1f0000, 0x1fffff) AM_RAM AM_BASE_MEMBER(nmk16_state, m_mainram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( raphero_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( raphero_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("IN0")
AM_RANGE(0x100002, 0x100003) AM_READ_PORT("IN1")
@@ -1075,7 +1075,7 @@ static WRITE8_HANDLER( raphero_sound_rombank_w )
memory_set_bankptr(space->machine(), "bank1",space->machine().region("audiocpu")->base() + 0x10000 + (data & 0x07) * 0x4000);
}
-static ADDRESS_MAP_START( raphero_sound_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( raphero_sound_mem_map, AS_PROGRAM, 8, nmk16_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
@@ -1088,7 +1088,7 @@ static ADDRESS_MAP_START( raphero_sound_mem_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( macross2_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( macross2_sound_map, AS_PROGRAM, 8, nmk16_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* banked ROM */
AM_RANGE(0xa000, 0xa000) AM_READNOP /* IRQ ack? watchdog? */
@@ -1097,7 +1097,7 @@ static ADDRESS_MAP_START( macross2_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf000) AM_READWRITE(soundlatch_r,soundlatch2_w) /* from 68000 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( macross2_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( macross2_sound_io_map, AS_IO, 8, nmk16_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0x80, 0x80) AM_DEVREADWRITE_MODERN("oki1", okim6295_device, read, write)
@@ -1105,7 +1105,7 @@ static ADDRESS_MAP_START( macross2_sound_io_map, AS_IO, 8 )
AM_RANGE(0x90, 0x97) AM_DEVWRITE("nmk112", nmk112_okibank_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bjtwin_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bjtwin_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1")
@@ -4618,7 +4618,7 @@ static WRITE16_HANDLER( afega_scroll1_w )
*/
-static ADDRESS_MAP_START( afega, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( afega, AS_PROGRAM, 16, nmk16_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") // Buttons
@@ -4687,7 +4687,7 @@ static WRITE8_DEVICE_HANDLER( spec2k_oki1_banking_w )
downcast<okim6295_device *>(device)->set_bank_base(0x40000);
}
-static ADDRESS_MAP_START( afega_sound_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( afega_sound_cpu, AS_PROGRAM, 8, nmk16_state )
AM_RANGE(0x0003, 0x0003) AM_WRITENOP // bug in sound prg?
AM_RANGE(0x0004, 0x0004) AM_WRITENOP // bug in sound prg?
AM_RANGE(0x0000, 0xefff) AM_ROM
@@ -4697,7 +4697,7 @@ static ADDRESS_MAP_START( afega_sound_cpu, AS_PROGRAM, 8 )
AM_RANGE(0xf80a, 0xf80a) AM_DEVREADWRITE_MODERN("oki1", okim6295_device, read, write) // M6295
ADDRESS_MAP_END
-static ADDRESS_MAP_START( firehawk_sound_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( firehawk_sound_cpu, AS_PROGRAM, 8, nmk16_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xfff0, 0xfff0) AM_READ(soundlatch_r)
@@ -4718,7 +4718,7 @@ static WRITE8_DEVICE_HANDLER( twinactn_oki_bank_w )
// logerror("%04x: oki bank %02x\n", cpu_get_pc(&space->device()), data);
}
-static ADDRESS_MAP_START( twinactn_sound_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( twinactn_sound_cpu, AS_PROGRAM, 8, nmk16_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_DEVWRITE("oki1", twinactn_oki_bank_w)
diff --git a/src/mame/drivers/norautp.c b/src/mame/drivers/norautp.c
index abdebcbd02c..20ed8e90b2a 100644
--- a/src/mame/drivers/norautp.c
+++ b/src/mame/drivers/norautp.c
@@ -809,13 +809,13 @@ static READ8_HANDLER( test2_r )
+----------+---------+--------------+--------+--------------+--------+--------------+------------------------+
*/
-static ADDRESS_MAP_START( norautp_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( norautp_map, AS_PROGRAM, 8, norautp_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM AM_SHARE("nvram") /* 6116 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( norautp_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( norautp_portmap, AS_IO, 8, norautp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x60, 0x63) AM_MIRROR(0x1c) AM_DEVREADWRITE_MODERN("ppi8255_0", i8255_device, read, write)
AM_RANGE(0xa0, 0xa3) AM_MIRROR(0x1c) AM_DEVREADWRITE_MODERN("ppi8255_1", i8255_device, read, write)
@@ -840,69 +840,69 @@ ADDRESS_MAP_END
*/
-static ADDRESS_MAP_START( nortest1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nortest1_map, AS_PROGRAM, 8, norautp_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x5000, 0x57ff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( norautxp_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( norautxp_map, AS_PROGRAM, 8, norautp_state )
// ADDRESS_MAP_GLOBAL_MASK(~0x4000)
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x3fff) AM_ROM /* need to be checked */
AM_RANGE(0x6000, 0x67ff) AM_RAM AM_SHARE("nvram") /* HM6116 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( norautx4_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( norautx4_map, AS_PROGRAM, 8, norautp_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x6000, 0x67ff) AM_RAM AM_SHARE("nvram") /* 6116 */
ADDRESS_MAP_END
#ifdef UNUSED_CODE
-static ADDRESS_MAP_START( norautx8_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( norautx8_map, AS_PROGRAM, 8, norautp_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* need to be checked */
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("nvram") /* 6116 */
ADDRESS_MAP_END
#endif
-static ADDRESS_MAP_START( kimble_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kimble_map, AS_PROGRAM, 8, norautp_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xc800, 0xc9ff) AM_RAM /* working RAM? */
ADDRESS_MAP_END
#ifdef UNUSED_CODE
-static ADDRESS_MAP_START( norautxp_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( norautxp_portmap, AS_IO, 8, norautp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
#endif
-static ADDRESS_MAP_START( newhilop_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( newhilop_map, AS_PROGRAM, 8, norautp_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("nvram") /* 6116 */
ADDRESS_MAP_END
/*********** 8080 based **********/
-static ADDRESS_MAP_START( dphl_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dphl_map, AS_PROGRAM, 8, norautp_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff) /* A15 not connected */
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x5000, 0x53ff) AM_RAM AM_SHARE("nvram") /* should be 2x 0x100 segments (4x 2111) */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dphla_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dphla_map, AS_PROGRAM, 8, norautp_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ssjkrpkr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ssjkrpkr_map, AS_PROGRAM, 8, norautp_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dphltest_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dphltest_map, AS_PROGRAM, 8, norautp_state )
// ADDRESS_MAP_GLOBAL_MASK(0x7fff) /* A15 not connected */
AM_RANGE(0x0000, 0x6fff) AM_ROM
AM_RANGE(0x7000, 0x7fff) AM_RAM
@@ -922,12 +922,12 @@ ADDRESS_MAP_END
The code read on port $62, when is suppossed to be set as output.
*/
-static ADDRESS_MAP_START( kimbldhl_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kimbldhl_map, AS_PROGRAM, 8, norautp_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( drhl_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( drhl_map, AS_PROGRAM, 8, norautp_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff) /* A15 not connected */
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x5000, 0x53ff) AM_RAM AM_SHARE("nvram")
diff --git a/src/mame/drivers/nova2001.c b/src/mame/drivers/nova2001.c
index fa01387cc36..ba6d68e9f8b 100644
--- a/src/mame/drivers/nova2001.c
+++ b/src/mame/drivers/nova2001.c
@@ -175,7 +175,7 @@ static MACHINE_START( ninjakun )
*
*************************************/
-static ADDRESS_MAP_START( nova2001_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nova2001_map, AS_PROGRAM, 8, nova2001_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xa7ff) AM_RAM_WRITE(nova2001_fg_videoram_w) AM_BASE_MEMBER(nova2001_state, m_fg_videoram)
AM_RANGE(0xa800, 0xafff) AM_RAM_WRITE(nova2001_bg_videoram_w) AM_BASE_MEMBER(nova2001_state, m_bg_videoram)
@@ -193,7 +193,7 @@ static ADDRESS_MAP_START( nova2001_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ninjakun_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ninjakun_cpu1_map, AS_PROGRAM, 8, nova2001_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("ay1", ay8910_address_data_w)
@@ -212,7 +212,7 @@ static ADDRESS_MAP_START( ninjakun_cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0xe400, 0xe7ff) AM_RAM AM_SHARE("share6")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ninjakun_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ninjakun_cpu2_map, AS_PROGRAM, 8, nova2001_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x7fff) AM_ROM AM_REGION("maincpu", 0x2000)
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("ay1", ay8910_address_data_w)
@@ -232,7 +232,7 @@ static ADDRESS_MAP_START( ninjakun_cpu2_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pkunwar_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pkunwar_map, AS_PROGRAM, 8, nova2001_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_MEMBER(nova2001_state, m_spriteram)
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(nova2001_bg_videoram_w) AM_BASE_MEMBER(nova2001_state, m_bg_videoram)
@@ -244,13 +244,13 @@ static ADDRESS_MAP_START( pkunwar_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pkunwar_io, AS_IO, 8 )
+static ADDRESS_MAP_START( pkunwar_io, AS_IO, 8, nova2001_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(pkunwar_flipscreen_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( raiders5_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( raiders5_cpu1_map, AS_PROGRAM, 8, nova2001_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_MEMBER(nova2001_state, m_spriteram)
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(nova2001_fg_videoram_w) AM_BASE_MEMBER(nova2001_state, m_fg_videoram)
@@ -266,7 +266,7 @@ static ADDRESS_MAP_START( raiders5_cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( raiders5_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( raiders5_cpu2_map, AS_PROGRAM, 8, nova2001_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x8001, 0x8001) AM_DEVREAD("ay1", ay8910_r)
@@ -282,7 +282,7 @@ static ADDRESS_MAP_START( raiders5_cpu2_map, AS_PROGRAM, 8 )
AM_RANGE(0xe002, 0xe002) AM_WRITE(pkunwar_flipscreen_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( raiders5_io, AS_IO, 8 )
+static ADDRESS_MAP_START( raiders5_io, AS_IO, 8, nova2001_state )
AM_RANGE(0x00, 0x00) AM_READNOP /* unknown */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/nsmpoker.c b/src/mame/drivers/nsmpoker.c
index 3f71e410af8..d10adc2b721 100644
--- a/src/mame/drivers/nsmpoker.c
+++ b/src/mame/drivers/nsmpoker.c
@@ -160,7 +160,7 @@ static READ8_HANDLER( debug_r )
* Memory Map Information *
*************************/
-static ADDRESS_MAP_START( nsmpoker_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nsmpoker_map, AS_PROGRAM, 8, nsmpoker_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x9000, 0xafff) AM_RAM // OK... cleared at beginning.
AM_RANGE(0xb000, 0xcfff) AM_ROM // WRONG... just to map the last rom somewhere.
@@ -168,7 +168,7 @@ static ADDRESS_MAP_START( nsmpoker_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM_WRITE(nsmpoker_colorram_w) AM_BASE_MEMBER(nsmpoker_state, m_colorram) // WRONG... just a placeholder.
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nsmpoker_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( nsmpoker_portmap, AS_IO, 8, nsmpoker_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xf0, 0xf0) AM_READ(debug_r) // kind of trap at beginning
ADDRESS_MAP_END
diff --git a/src/mame/drivers/nss.c b/src/mame/drivers/nss.c
index 4c6051c0856..e0615741757 100644
--- a/src/mame/drivers/nss.c
+++ b/src/mame/drivers/nss.c
@@ -309,7 +309,7 @@ public:
};
-static ADDRESS_MAP_START( snes_map, AS_PROGRAM, 8)
+static ADDRESS_MAP_START( snes_map, AS_PROGRAM, 8, nss_state )
AM_RANGE(0x000000, 0x2fffff) AM_READWRITE(snes_r_bank1, snes_w_bank1) /* I/O and ROM (repeats for each bank) */
AM_RANGE(0x300000, 0x3fffff) AM_READWRITE(snes_r_bank2, snes_w_bank2) /* I/O and ROM (repeats for each bank) */
AM_RANGE(0x400000, 0x5fffff) AM_READ(snes_r_bank3) /* ROM (and reserved in Mode 20) */
@@ -330,7 +330,7 @@ static WRITE8_DEVICE_HANDLER( spc_ram_100_w )
spc_ram_w(device, offset + 0x100, data);
}
-static ADDRESS_MAP_START( spc_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spc_mem, AS_PROGRAM, 8, nss_state )
AM_RANGE(0x0000, 0x00ef) AM_DEVREADWRITE("spc700", spc_ram_r, spc_ram_w) /* lower 32k ram */
AM_RANGE(0x00f0, 0x00ff) AM_DEVREADWRITE("spc700", spc_io_r, spc_io_w) /* spc io */
AM_RANGE(0x0100, 0xffff) AM_DEVWRITE("spc700", spc_ram_100_w)
@@ -412,7 +412,7 @@ static WRITE8_HANDLER( m50458_w )
}
-static ADDRESS_MAP_START( bios_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bios_map, AS_PROGRAM, 8, nss_state )
AM_RANGE(0x0000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8fff) AM_RAM // vram perhaps?
@@ -484,7 +484,7 @@ static WRITE8_HANDLER( port82_w ) // EEPROM2?
*/
}
-static ADDRESS_MAP_START( bios_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( bios_io_map, AS_IO, 8, nss_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(port00_r)
AM_RANGE(0x01, 0x01) AM_READ(port01_r)
diff --git a/src/mame/drivers/nwk-tr.c b/src/mame/drivers/nwk-tr.c
index 5cf8ea1bdd9..8f893bb7a41 100644
--- a/src/mame/drivers/nwk-tr.c
+++ b/src/mame/drivers/nwk-tr.c
@@ -488,7 +488,7 @@ static MACHINE_START( nwktr )
ppcdrc_add_fastram(machine.device("maincpu"), 0x00000000, 0x003fffff, FALSE, state->m_work_ram);
}
-static ADDRESS_MAP_START( nwktr_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( nwktr_map, AS_PROGRAM, 32, nwktr_state )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_BASE_MEMBER(nwktr_state, m_work_ram) /* Work RAM */
AM_RANGE(0x74000000, 0x740000ff) AM_DEVREADWRITE("k001604", k001604_reg_r, k001604_reg_w)
AM_RANGE(0x74010000, 0x74017fff) AM_RAM_WRITE(paletteram32_w) AM_BASE_GENERIC(paletteram)
@@ -511,7 +511,7 @@ ADDRESS_MAP_END
/*****************************************************************************/
-static ADDRESS_MAP_START( sound_memmap, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sound_memmap, AS_PROGRAM, 16, nwktr_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* Work RAM */
AM_RANGE(0x200000, 0x200fff) AM_DEVREADWRITE("rfsnd", rf5c400_r, rf5c400_w) /* Ricoh RF5C400 */
@@ -534,7 +534,7 @@ static WRITE32_HANDLER( dsp_dataram_w )
state->m_sharc_dataram[offset] = data;
}
-static ADDRESS_MAP_START( sharc_map, AS_DATA, 32 )
+static ADDRESS_MAP_START( sharc_map, AS_DATA, 32, nwktr_state )
AM_RANGE(0x0400000, 0x041ffff) AM_READWRITE(cgboard_0_shared_sharc_r, cgboard_0_shared_sharc_w)
AM_RANGE(0x0500000, 0x05fffff) AM_READWRITE(dsp_dataram_r, dsp_dataram_w)
AM_RANGE(0x1400000, 0x14fffff) AM_RAM
diff --git a/src/mame/drivers/nycaptor.c b/src/mame/drivers/nycaptor.c
index 14232cef917..60a3d21cb10 100644
--- a/src/mame/drivers/nycaptor.c
+++ b/src/mame/drivers/nycaptor.c
@@ -345,7 +345,7 @@ static WRITE8_HANDLER( nycaptor_generic_control_w )
memory_set_bankptr(space->machine(), "bank1", space->machine().region("maincpu")->base() + 0x10000 + ((data&0x08)>>3)*0x4000 );
}
-static ADDRESS_MAP_START( nycaptor_master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nycaptor_master_map, AS_PROGRAM, 8, nycaptor_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_BASE_SIZE_MEMBER(nycaptor_state, m_videoram, m_videoram_size)
@@ -371,7 +371,7 @@ static ADDRESS_MAP_START( nycaptor_master_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w) AM_BASE_MEMBER(nycaptor_state, m_sharedram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nycaptor_slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nycaptor_slave_map, AS_PROGRAM, 8, nycaptor_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_BASE_SIZE_MEMBER(nycaptor_state, m_videoram, m_videoram_size)
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSWA")
@@ -390,7 +390,7 @@ static ADDRESS_MAP_START( nycaptor_slave_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nycaptor_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nycaptor_sound_map, AS_PROGRAM, 8, nycaptor_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc801) AM_DEVWRITE("ay1", ay8910_address_data_w)
@@ -406,7 +406,7 @@ static ADDRESS_MAP_START( nycaptor_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_NOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nycaptor_m68705_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nycaptor_m68705_map, AS_PROGRAM, 8, nycaptor_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(nycaptor_68705_port_a_r, nycaptor_68705_port_a_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(nycaptor_68705_port_b_r, nycaptor_68705_port_b_w)
@@ -452,7 +452,7 @@ static WRITE8_HANDLER( cyclshtg_generic_control_w )
}
-static ADDRESS_MAP_START( cyclshtg_master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cyclshtg_master_map, AS_PROGRAM, 8, nycaptor_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_BASE_SIZE_MEMBER(nycaptor_state, m_videoram, m_videoram_size)
@@ -477,7 +477,7 @@ static ADDRESS_MAP_START( cyclshtg_master_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w) AM_BASE_MEMBER(nycaptor_state, m_sharedram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cyclshtg_slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cyclshtg_slave_map, AS_PROGRAM, 8, nycaptor_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_BASE_SIZE_MEMBER(nycaptor_state, m_videoram, m_videoram_size)
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSWA")
@@ -501,7 +501,7 @@ static READ8_HANDLER( unk_r )
return space->machine().rand();
}
-static ADDRESS_MAP_START( bronx_master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bronx_master_map, AS_PROGRAM, 8, nycaptor_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_BASE_SIZE_MEMBER(nycaptor_state, m_videoram, m_videoram_size)
@@ -526,7 +526,7 @@ static ADDRESS_MAP_START( bronx_master_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w) AM_BASE_MEMBER(nycaptor_state, m_sharedram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bronx_slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bronx_slave_map, AS_PROGRAM, 8, nycaptor_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_READWRITE(nycaptor_videoram_r, nycaptor_videoram_w) AM_BASE_SIZE_MEMBER(nycaptor_state, m_videoram, m_videoram_size)
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSWA")
@@ -546,7 +546,7 @@ static ADDRESS_MAP_START( bronx_slave_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bronx_slave_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( bronx_slave_io_map, AS_IO, 8, nycaptor_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM AM_REGION("user1", 0)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/nyny.c b/src/mame/drivers/nyny.c
index bb43866fa7a..b4be73765a5 100644
--- a/src/mame/drivers/nyny.c
+++ b/src/mame/drivers/nyny.c
@@ -528,7 +528,7 @@ static WRITE8_HANDLER( nyny_pia_1_2_w )
}
-static ADDRESS_MAP_START( nyny_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nyny_main_map, AS_PROGRAM, 8, nyny_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_MEMBER(nyny_state, m_videoram1)
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE_MEMBER(nyny_state, m_colorram1)
AM_RANGE(0x4000, 0x5fff) AM_RAM AM_BASE_MEMBER(nyny_state, m_videoram2)
@@ -546,7 +546,7 @@ static ADDRESS_MAP_START( nyny_main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nyny_audio_1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nyny_audio_1_map, AS_PROGRAM, 8, nyny_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */
AM_RANGE(0x0080, 0x0fff) AM_NOP
@@ -563,7 +563,7 @@ static ADDRESS_MAP_START( nyny_audio_1_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nyny_audio_2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nyny_audio_2_map, AS_PROGRAM, 8, nyny_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */
AM_RANGE(0x0080, 0x0fff) AM_NOP
diff --git a/src/mame/drivers/offtwall.c b/src/mame/drivers/offtwall.c
index 38d20bf5d06..9f5c4a98bc2 100644
--- a/src/mame/drivers/offtwall.c
+++ b/src/mame/drivers/offtwall.c
@@ -276,7 +276,7 @@ static READ16_HANDLER( unknown_verify_r )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, offtwall_state )
AM_RANGE(0x000000, 0x037fff) AM_ROM
AM_RANGE(0x038000, 0x03ffff) AM_READ(bankrom_r) AM_REGION("maincpu", 0x38000) AM_BASE_MEMBER(offtwall_state, m_bankrom_base)
AM_RANGE(0x120000, 0x120fff) AM_READWRITE(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
diff --git a/src/mame/drivers/ohmygod.c b/src/mame/drivers/ohmygod.c
index f89e9d2c23f..9759504b04f 100644
--- a/src/mame/drivers/ohmygod.c
+++ b/src/mame/drivers/ohmygod.c
@@ -39,7 +39,7 @@ static WRITE16_HANDLER( ohmygod_ctrl_w )
}
}
-static ADDRESS_MAP_START( ohmygod_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ohmygod_map, AS_PROGRAM, 16, ohmygod_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x300000, 0x303fff) AM_RAM
AM_RANGE(0x304000, 0x307fff) AM_RAM_WRITE(ohmygod_videoram_w) AM_BASE_MEMBER(ohmygod_state, m_videoram)
diff --git a/src/mame/drivers/ojankohs.c b/src/mame/drivers/ojankohs.c
index 63dc727d58b..ecf382754c6 100644
--- a/src/mame/drivers/ojankohs.c
+++ b/src/mame/drivers/ojankohs.c
@@ -198,7 +198,7 @@ static WRITE8_HANDLER( ccasino_coinctr_w )
}
-static ADDRESS_MAP_START( ojankohs_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ojankohs_map, AS_PROGRAM, 8, ojankohs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(ojankohs_videoram_w) AM_BASE_MEMBER(ojankohs_state,m_videoram)
AM_RANGE(0x9000, 0x9fff) AM_RAM_WRITE(ojankohs_colorram_w) AM_BASE_MEMBER(ojankohs_state,m_colorram)
@@ -208,7 +208,7 @@ static ADDRESS_MAP_START( ojankohs_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ojankoy_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ojankoy_map, AS_PROGRAM, 8, ojankohs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_RAM_WRITE(ojankohs_videoram_w) AM_BASE_MEMBER(ojankohs_state,m_videoram)
AM_RANGE(0xa000, 0xafff) AM_RAM_WRITE(ojankohs_colorram_w) AM_BASE_MEMBER(ojankohs_state,m_colorram)
@@ -217,14 +217,14 @@ static ADDRESS_MAP_START( ojankoy_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ojankoc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ojankoc_map, AS_PROGRAM, 8, ojankohs_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") AM_WRITE(ojankoc_videoram_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ojankohs_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( ojankohs_io_map, AS_IO, 8, ojankohs_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(ojankohs_portselect_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(ojankohs_keymatrix_r, ojankohs_rombank_w)
@@ -238,7 +238,7 @@ static ADDRESS_MAP_START( ojankohs_io_map, AS_IO, 8 )
AM_RANGE(0x11, 0x11) AM_WRITENOP // unknown
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ojankoy_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( ojankoy_io_map, AS_IO, 8, ojankohs_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(ojankohs_portselect_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(ojankohs_keymatrix_r, ojankoy_rombank_w)
@@ -249,7 +249,7 @@ static ADDRESS_MAP_START( ojankoy_io_map, AS_IO, 8 )
AM_RANGE(0x06, 0x07) AM_DEVWRITE("aysnd", ay8910_data_address_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ccasino_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( ccasino_io_map, AS_IO, 8, ojankohs_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(ojankohs_portselect_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(ojankohs_keymatrix_r, ojankohs_rombank_w)
@@ -264,7 +264,7 @@ static ADDRESS_MAP_START( ccasino_io_map, AS_IO, 8 )
AM_RANGE(0x11, 0x11) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ojankoc_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( ojankoc_io_map, AS_IO, 8, ojankohs_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x1f) AM_WRITE(ojankoc_palette_w)
AM_RANGE(0xf9, 0xf9) AM_WRITE(ojankohs_msm5205_w)
diff --git a/src/mame/drivers/olibochu.c b/src/mame/drivers/olibochu.c
index 5861c44d8d6..9d362f7d053 100644
--- a/src/mame/drivers/olibochu.c
+++ b/src/mame/drivers/olibochu.c
@@ -244,7 +244,7 @@ static WRITE8_HANDLER( sound_command_w )
}
-static ADDRESS_MAP_START( olibochu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( olibochu_map, AS_PROGRAM, 8, olibochu_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(olibochu_videoram_w) AM_BASE_MEMBER(olibochu_state, m_videoram)
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(olibochu_colorram_w) AM_BASE_MEMBER(olibochu_state, m_colorram)
@@ -263,7 +263,7 @@ static ADDRESS_MAP_START( olibochu_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( olibochu_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( olibochu_sound_map, AS_PROGRAM, 8, olibochu_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_RAM
AM_RANGE(0x7000, 0x7000) AM_READ(soundlatch_r) /* likely ay8910 input port, not direct */
diff --git a/src/mame/drivers/omegrace.c b/src/mame/drivers/omegrace.c
index 8c16f01f685..0054d4ba5ea 100644
--- a/src/mame/drivers/omegrace.c
+++ b/src/mame/drivers/omegrace.c
@@ -334,7 +334,7 @@ static WRITE8_HANDLER( omegrace_soundlatch_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, omegrace_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4bff) AM_RAM
AM_RANGE(0x5c00, 0x5cff) AM_RAM AM_SHARE("nvram") /* NVRAM */
@@ -343,7 +343,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( port_map, AS_IO, 8, omegrace_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x08) AM_READ(omegrace_vg_go_r)
AM_RANGE(0x09, 0x09) AM_READ(watchdog_reset_r)
@@ -366,13 +366,13 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, omegrace_state )
AM_RANGE(0x0000, 0x07ff) AM_ROM
AM_RANGE(0x1000, 0x13ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_port, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_port, AS_IO, 8, omegrace_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r) /* likely ay8910 input port, not direct */
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_address_data_w)
diff --git a/src/mame/drivers/oneshot.c b/src/mame/drivers/oneshot.c
index c0fe2a90e09..2bbf6b70452 100644
--- a/src/mame/drivers/oneshot.c
+++ b/src/mame/drivers/oneshot.c
@@ -105,7 +105,7 @@ static WRITE16_DEVICE_HANDLER( soundbank_w )
-static ADDRESS_MAP_START( oneshot_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( oneshot_map, AS_PROGRAM, 16, oneshot_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x087fff) AM_RAM
AM_RANGE(0x0c0000, 0x0c07ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
@@ -128,7 +128,7 @@ static ADDRESS_MAP_START( oneshot_map, AS_PROGRAM, 16 )
AM_RANGE(0x19c034, 0x19c035) AM_READ_PORT("P2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( oneshot_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( oneshot_sound_map, AS_PROGRAM, 8, oneshot_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8000) AM_READWRITE(soundlatch_r,soundlatch_w)
AM_RANGE(0x8001, 0x87ff) AM_RAM
diff --git a/src/mame/drivers/onetwo.c b/src/mame/drivers/onetwo.c
index dbcb23c829e..239b5030484 100644
--- a/src/mame/drivers/onetwo.c
+++ b/src/mame/drivers/onetwo.c
@@ -160,7 +160,7 @@ static WRITE8_HANDLER(palette2_w)
*
*************************************/
-static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8, onetwo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM AM_REGION("maincpu", 0x10000)
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc800, 0xc87f) AM_RAM_WRITE(palette1_w) AM_BASE_MEMBER(onetwo_state, m_paletteram)
@@ -169,7 +169,7 @@ static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_cpu_io, AS_IO, 8 )
+static ADDRESS_MAP_START( main_cpu_io, AS_IO, 8, onetwo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW1") AM_WRITE(onetwo_coin_counters_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("DSW2") AM_WRITE(onetwo_soundlatch_w)
@@ -178,13 +178,13 @@ static ADDRESS_MAP_START( main_cpu_io, AS_IO, 8 )
AM_RANGE(0x04, 0x04) AM_READ_PORT("SYSTEM")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8, onetwo_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_cpu_io, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_cpu_io, AS_IO, 8, onetwo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("ymsnd", ym3812_status_port_r, ym3812_control_port_w)
AM_RANGE(0x20, 0x20) AM_DEVWRITE("ymsnd", ym3812_write_port_w)
diff --git a/src/mame/drivers/opwolf.c b/src/mame/drivers/opwolf.c
index 41bcae15191..22be0604d2d 100644
--- a/src/mame/drivers/opwolf.c
+++ b/src/mame/drivers/opwolf.c
@@ -357,7 +357,7 @@ static WRITE8_DEVICE_HANDLER( sound_bankswitch_w )
***********************************************************/
-static ADDRESS_MAP_START( opwolf_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( opwolf_map, AS_PROGRAM, 16, opwolf_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x0f0000, 0x0f07ff) AM_MIRROR(0xf000) AM_READ(opwolf_cchip_data_r)
AM_RANGE(0x0f0802, 0x0f0803) AM_MIRROR(0xf000) AM_READ(opwolf_cchip_status_r)
@@ -381,7 +381,7 @@ static ADDRESS_MAP_START( opwolf_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( opwolfb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( opwolfb_map, AS_PROGRAM, 16, opwolf_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x0f0008, 0x0f000b) AM_READ(opwolf_in_r) /* coins and buttons */
AM_RANGE(0x0ff000, 0x0fffff) AM_READWRITE(cchip_r,cchip_w)
@@ -406,7 +406,7 @@ ADDRESS_MAP_END
This extra Z80 substitutes for the c-chip in the bootleg
*/
-static ADDRESS_MAP_START( opwolfb_sub_z80_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( opwolfb_sub_z80_map, AS_PROGRAM, 8, opwolf_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8800, 0x8800) AM_READ(z80_input1_r) /* read at PC=$637: poked to $c004 */
AM_RANGE(0x9000, 0x9000) AM_WRITENOP /* unknown write, 0 then 1 each interrupt */
@@ -541,7 +541,7 @@ static WRITE8_HANDLER( opwolf_adpcm_e_w )
// logerror("CPU #1 e00%i-data=%2x pc=%4x\n",offset,data,cpu_get_pc(&space->device()) );
}
-static ADDRESS_MAP_START( opwolf_sound_z80_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( opwolf_sound_z80_map, AS_PROGRAM, 8, opwolf_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10")
AM_RANGE(0x8000, 0x8fff) AM_RAM
diff --git a/src/mame/drivers/orbit.c b/src/mame/drivers/orbit.c
index f14edd9d865..c89e7831b58 100644
--- a/src/mame/drivers/orbit.c
+++ b/src/mame/drivers/orbit.c
@@ -105,7 +105,7 @@ static WRITE8_HANDLER( orbit_misc_w )
*
*************************************/
-static ADDRESS_MAP_START( orbit_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( orbit_map, AS_PROGRAM, 8, orbit_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x0700) AM_RAM
AM_RANGE(0x0800, 0x0800) AM_MIRROR(0x07ff) AM_READ_PORT("P1")
diff --git a/src/mame/drivers/othello.c b/src/mame/drivers/othello.c
index 03bb78c9c10..5b8e685a99c 100644
--- a/src/mame/drivers/othello.c
+++ b/src/mame/drivers/othello.c
@@ -117,7 +117,7 @@ static PALETTE_INIT( othello )
palette_set_color(machine, 0x0f, MAKE_RGB(0xff, 0xff, 0xff));
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, othello_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x8000, 0x97ff) AM_NOP /* not populated */
AM_RANGE(0x9800, 0x9fff) AM_RAM AM_BASE_MEMBER(othello_state, m_videoram)
@@ -172,7 +172,7 @@ static WRITE8_HANDLER( tilebank_w )
logerror("tilebank -> %x\n", data);
}
-static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, AS_IO, 8, othello_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x08) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
AM_RANGE(0x09, 0x09) AM_DEVREADWRITE_MODERN("crtc", mc6845_device, register_r, register_w)
@@ -222,12 +222,12 @@ static WRITE8_HANDLER( ay_data_w )
if (state->m_ay_select & 2) ay8910_data_w(state->m_ay2, 0, data);
}
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, othello_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( audio_portmap, AS_IO, 8, othello_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(latch_r)
AM_RANGE(0x01, 0x01) AM_WRITE(ay_data_w)
@@ -301,7 +301,7 @@ static READ8_HANDLER( n7751_t1_r )
return 0;
}
-static ADDRESS_MAP_START( n7751_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( n7751_portmap, AS_IO, 8, othello_state )
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(n7751_t1_r)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READ(n7751_command_r)
AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_READ(n7751_rom_r)
diff --git a/src/mame/drivers/othldrby.c b/src/mame/drivers/othldrby.c
index 84ef87db414..8dd952a67f9 100644
--- a/src/mame/drivers/othldrby.c
+++ b/src/mame/drivers/othldrby.c
@@ -80,7 +80,7 @@ static READ16_HANDLER( calendar_r )
}
-static ADDRESS_MAP_START( othldrby_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( othldrby_map, AS_PROGRAM, 16, othldrby_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x20000f) AM_READWRITE(calendar_r, calendar_w)
diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c
index 2e5cfe2140e..25c9efc08cd 100644
--- a/src/mame/drivers/othunder.c
+++ b/src/mame/drivers/othunder.c
@@ -459,7 +459,7 @@ static WRITE8_HANDLER( othunder_TC0310FAM_w )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( othunder_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( othunder_map, AS_PROGRAM, 16, othunder_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_RAM
AM_RANGE(0x090000, 0x09000f) AM_READWRITE(othunder_tc0220ioc_r, othunder_tc0220ioc_w)
@@ -477,7 +477,7 @@ ADDRESS_MAP_END
/***************************************************************************/
-static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8, othunder_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10")
AM_RANGE(0xc000, 0xdfff) AM_RAM
diff --git a/src/mame/drivers/overdriv.c b/src/mame/drivers/overdriv.c
index 7519f740299..09f182ac07a 100644
--- a/src/mame/drivers/overdriv.c
+++ b/src/mame/drivers/overdriv.c
@@ -160,7 +160,7 @@ static WRITE16_HANDLER( overdriv_cpuB_irq6_w )
device_set_input_line(state->m_subcpu, 6, HOLD_LINE);
}
-static ADDRESS_MAP_START( overdriv_master_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( overdriv_master_map, AS_PROGRAM, 16, overdriv_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_RAM /* work RAM */
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
@@ -187,7 +187,7 @@ static ADDRESS_MAP_START( overdriv_master_map, AS_PROGRAM, 16 )
AM_RANGE(0x238000, 0x238001) AM_WRITE(overdriv_cpuB_irq5_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( overdriv_slave_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( overdriv_slave_map, AS_PROGRAM, 16, overdriv_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM /* work RAM */
AM_RANGE(0x0c0000, 0x0c1fff) AM_RAM //AM_DEVREADWRITE("k053250_1", k053250_ram_r, k053250_ram_w)
@@ -203,7 +203,7 @@ static ADDRESS_MAP_START( overdriv_slave_map, AS_PROGRAM, 16 )
AM_RANGE(0x220000, 0x221fff) AM_DEVREAD_MODERN("k053250_2", k053250_t, rom_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( overdriv_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( overdriv_sound_map, AS_PROGRAM, 8, overdriv_state )
AM_RANGE(0x0200, 0x0201) AM_DEVREADWRITE("ymsnd", ym2151_r,ym2151_w)
AM_RANGE(0x0400, 0x042f) AM_DEVREADWRITE("k053260_1", k053260_r, k053260_w)
AM_RANGE(0x0600, 0x062f) AM_DEVREADWRITE("k053260_2", k053260_r, k053260_w)
diff --git a/src/mame/drivers/pachifev.c b/src/mame/drivers/pachifev.c
index 4fe84a785b2..15110663f1b 100644
--- a/src/mame/drivers/pachifev.c
+++ b/src/mame/drivers/pachifev.c
@@ -130,7 +130,7 @@ static READ8_HANDLER(controls_r)
return output_bit;
}
-static ADDRESS_MAP_START( pachifev_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pachifev_map, AS_PROGRAM, 8, pachifev_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM
@@ -150,7 +150,7 @@ static ADDRESS_MAP_START( pachifev_map, AS_PROGRAM, 8 )
AM_RANGE(0xfffc, 0xffff) AM_NOP /* nmi */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pachifev_cru, AS_IO, 8 )
+static ADDRESS_MAP_START( pachifev_cru, AS_IO, 8, pachifev_state )
AM_RANGE(0x000, 0x000) AM_READ(controls_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/pacland.c b/src/mame/drivers/pacland.c
index 0bada857a9b..cf844cd1221 100644
--- a/src/mame/drivers/pacland.c
+++ b/src/mame/drivers/pacland.c
@@ -237,7 +237,7 @@ static WRITE8_HANDLER( pacland_irq_2_ctrl_w )
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, pacland_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM_WRITE(pacland_videoram_w) AM_BASE_MEMBER(pacland_state, m_videoram)
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(pacland_videoram2_w) AM_BASE_MEMBER(pacland_state, m_videoram2)
AM_RANGE(0x2000, 0x37ff) AM_RAM AM_BASE_MEMBER(pacland_state, m_spriteram)
@@ -253,7 +253,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0x9000, 0x9fff) AM_WRITE(pacland_flipscreen_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, pacland_state )
AM_RANGE(0x0000, 0x001f) AM_READWRITE(m6801_io_r, m6801_io_w)
AM_RANGE(0x0080, 0x00ff) AM_RAM
AM_RANGE(0x1000, 0x13ff) AM_DEVREADWRITE("namco", namcos1_cus30_r, namcos1_cus30_w) /* PSG device, shared RAM */
@@ -271,7 +271,7 @@ static READ8_HANDLER( readFF )
return 0xff;
}
-static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8, pacland_state )
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ_PORT("IN2")
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_WRITE(pacland_coin_w)
AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ(readFF) /* leds won't work otherwise */
diff --git a/src/mame/drivers/pacman.c b/src/mame/drivers/pacman.c
index d1ed4c5ae2f..f6e272311b1 100644
--- a/src/mame/drivers/pacman.c
+++ b/src/mame/drivers/pacman.c
@@ -883,7 +883,7 @@ static WRITE8_HANDLER( irq_mask_w )
state->m_irq_mask = data & 1;
}
-static ADDRESS_MAP_START( pacman_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pacman_map, AS_PROGRAM, 8, pacman_state )
//A lot of games don't have an a15 at the cpu. Generally only games with a cpu daughter board can access the full 32k of romspace.
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x8000) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_MEMBER(pacman_state, m_videoram)
@@ -911,7 +911,7 @@ ADDRESS_MAP_END
// The Pacman code uses $5004 and $5005 for LED's and $5007 for coin lockout. This hardware does not
// exist on any Pacman or Puckman board I have seen. DW
-static ADDRESS_MAP_START( birdiy_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( birdiy_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x8000) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_MEMBER(pacman_state, m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram)
@@ -936,7 +936,7 @@ static ADDRESS_MAP_START( birdiy_map, AS_PROGRAM, 8 )
AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_READ_PORT("DSW2") /* DSW2 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mspacman_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mspacman_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_MEMBER(pacman_state, m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram)
AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
@@ -975,7 +975,7 @@ static ADDRESS_MAP_START( mspacman_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( woodpek_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( woodpek_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_MEMBER(pacman_state, m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram)
@@ -1002,7 +1002,7 @@ static ADDRESS_MAP_START( woodpek_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( alibaba_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( alibaba_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_MEMBER(pacman_state, m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram)
@@ -1034,7 +1034,7 @@ static ADDRESS_MAP_START( alibaba_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dremshpr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dremshpr_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_MEMBER(pacman_state, m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram)
@@ -1064,7 +1064,7 @@ static ADDRESS_MAP_START( dremshpr_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( epos_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( epos_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x8000) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_MEMBER(pacman_state, m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram)
@@ -1090,7 +1090,7 @@ static ADDRESS_MAP_START( epos_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( s2650games_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( s2650games_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x0000, 0x0fff) AM_MIRROR(0x8000) AM_ROMBANK("bank1")
AM_RANGE(0x1000, 0x13ff) AM_MIRROR(0xe000) AM_WRITE(s2650games_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram)
AM_RANGE(0x1400, 0x141f) AM_MIRROR(0xe000) AM_WRITE(s2650games_scroll_w)
@@ -1120,7 +1120,7 @@ static ADDRESS_MAP_START( s2650games_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rocktrv2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rocktrv2_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_MEMBER(pacman_state, m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram)
@@ -1147,7 +1147,7 @@ static ADDRESS_MAP_START( rocktrv2_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bigbucks_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bigbucks_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_MEMBER(pacman_state, m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram)
@@ -1168,7 +1168,7 @@ static ADDRESS_MAP_START( bigbucks_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mschamp_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mschamp_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_MEMBER(pacman_state, m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram)
@@ -1194,7 +1194,7 @@ static ADDRESS_MAP_START( mschamp_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( crushs_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( crushs_map, AS_PROGRAM, 8, pacman_state )
//A lot of games don't have an a15 at the cpu. Generally only games with a cpu daughter board can access the full 32k of romspace.
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x8000) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_MEMBER(pacman_state, m_videoram)
@@ -1226,63 +1226,63 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( writeport, AS_IO, 8 )
+static ADDRESS_MAP_START( writeport, AS_IO, 8, pacman_state )
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_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( vanvan_portmap, AS_IO, 8, pacman_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_DEVWRITE("namco", sn76496_w)
AM_RANGE(0x02, 0x02) AM_DEVWRITE("sn2", sn76496_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dremshpr_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( dremshpr_portmap, AS_IO, 8, pacman_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x06, 0x07) AM_DEVWRITE("namco", ay8910_data_address_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( piranha_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( piranha_portmap, AS_IO, 8, pacman_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(piranha_interrupt_vector_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nmouse_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( nmouse_portmap, AS_IO, 8, pacman_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nmouse_interrupt_vector_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( theglobp_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( theglobp_portmap, AS_IO, 8, pacman_state )
AM_RANGE(0x00, 0xff) AM_READ(theglobp_decrypt_rom) /* Switch protection logic */
AM_IMPORT_FROM(writeport)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( acitya_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( acitya_portmap, AS_IO, 8, pacman_state )
AM_RANGE(0x00, 0xff) AM_READ(acitya_decrypt_rom) /* Switch protection logic */
AM_IMPORT_FROM(writeport)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mschamp_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( mschamp_portmap, AS_IO, 8, pacman_state )
AM_RANGE(0x00, 0x00) AM_READ(mschamp_kludge_r)
AM_IMPORT_FROM(writeport)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bigbucks_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( bigbucks_portmap, AS_IO, 8, pacman_state )
AM_RANGE(0x0000, 0xffff) AM_READ(bigbucks_question_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( s2650games_writeport, AS_IO, 8 )
+static ADDRESS_MAP_START( s2650games_writeport, AS_IO, 8, pacman_state )
AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_DEVWRITE("namco", sn76496_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( drivfrcp_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( drivfrcp_portmap, AS_IO, 8, pacman_state )
AM_RANGE(0x00, 0x00) AM_READNOP
AM_RANGE(0x01, 0x01) AM_READ(drivfrcp_port1_r)
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("Sense")
AM_IMPORT_FROM(s2650games_writeport)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( _8bpm_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( _8bpm_portmap, AS_IO, 8, pacman_state )
AM_RANGE(0x00, 0x00) AM_READNOP
AM_RANGE(0x01, 0x01) AM_READ(_8bpm_port1_r)
AM_RANGE(0xe0, 0xe0) AM_READNOP
@@ -1290,13 +1290,13 @@ static ADDRESS_MAP_START( _8bpm_portmap, AS_IO, 8 )
AM_IMPORT_FROM(s2650games_writeport)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( porky_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( porky_portmap, AS_IO, 8, pacman_state )
AM_RANGE(0x01, 0x01) AM_READ(porky_port1_r)
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("Sense")
AM_IMPORT_FROM(s2650games_writeport)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( crushs_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( crushs_portmap, AS_IO, 8, pacman_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("namco", ay8910_data_address_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("DSW2")
diff --git a/src/mame/drivers/pandoras.c b/src/mame/drivers/pandoras.c
index 1b025ad32ba..0206a61637a 100644
--- a/src/mame/drivers/pandoras.c
+++ b/src/mame/drivers/pandoras.c
@@ -134,7 +134,7 @@ static WRITE8_HANDLER( pandoras_z80_irqtrigger_w )
-static ADDRESS_MAP_START( pandoras_master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pandoras_master_map, AS_PROGRAM, 8, pandoras_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1") AM_BASE_MEMBER(pandoras_state, m_spriteram) /* Work RAM (Shared with CPU B) */
AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(pandoras_cram_w) AM_SHARE("share2") AM_BASE_MEMBER(pandoras_state, m_colorram) /* Color RAM (shared with CPU B) */
AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(pandoras_vram_w) AM_SHARE("share3") AM_BASE_MEMBER(pandoras_state, m_videoram) /* Video RAM (shared with CPU B) */
@@ -149,7 +149,7 @@ static ADDRESS_MAP_START( pandoras_master_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pandoras_slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pandoras_slave_map, AS_PROGRAM, 8, pandoras_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1") /* Work RAM (Shared with CPU A) */
AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(pandoras_cram_w) AM_SHARE("share2") /* Color RAM (shared with CPU A) */
AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(pandoras_vram_w) AM_SHARE("share3") /* Video RAM (shared with CPU A) */
@@ -167,7 +167,7 @@ static ADDRESS_MAP_START( pandoras_slave_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pandoras_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pandoras_sound_map, AS_PROGRAM, 8, pandoras_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM /* ROM */
AM_RANGE(0x2000, 0x23ff) AM_RAM /* RAM */
AM_RANGE(0x4000, 0x4000) AM_READ(soundlatch_r) /* soundlatch_r */
@@ -178,11 +178,11 @@ static ADDRESS_MAP_START( pandoras_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xa000) AM_WRITE(soundlatch2_w) /* sound command to the 8039 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pandoras_i8039_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pandoras_i8039_map, AS_PROGRAM, 8, pandoras_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pandoras_i8039_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( pandoras_i8039_io_map, AS_IO, 8, pandoras_state )
AM_RANGE(0x00, 0xff) AM_READ(soundlatch2_r)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE("dac", dac_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(i8039_irqen_and_status_w)
diff --git a/src/mame/drivers/pangofun.c b/src/mame/drivers/pangofun.c
index 70c9eefc6ab..46c9233faa4 100644
--- a/src/mame/drivers/pangofun.c
+++ b/src/mame/drivers/pangofun.c
@@ -108,7 +108,7 @@ public:
};
-static ADDRESS_MAP_START( pcat_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( pcat_map, AS_PROGRAM, 32, pangofun_state )
AM_RANGE(0x00000000, 0x0009ffff) AM_RAM
AM_RANGE(0x000a0000, 0x000bffff) AM_RAM
AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM AM_REGION("video_bios", 0)
@@ -118,7 +118,7 @@ static ADDRESS_MAP_START( pcat_map, AS_PROGRAM, 32 )
AM_RANGE(0xffff0000, 0xffffffff) AM_ROM AM_REGION("bios", 0 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pcat_io, AS_IO, 32 )
+static ADDRESS_MAP_START( pcat_io, AS_IO, 32, pangofun_state )
AM_IMPORT_FROM(pcat32_io_common)
AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE8_MODERN("rtc", mc146818_device, read, write, 0xffffffff)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/panicr.c b/src/mame/drivers/panicr.c
index 13a43719c12..15bf57185af 100644
--- a/src/mame/drivers/panicr.c
+++ b/src/mame/drivers/panicr.c
@@ -186,7 +186,7 @@ static WRITE8_HANDLER(t5182shared_w)
}
-static ADDRESS_MAP_START( panicr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( panicr_map, AS_PROGRAM, 8, panicr_state )
AM_RANGE(0x00000, 0x01fff) AM_RAM AM_BASE_MEMBER(panicr_state, m_mainram)
AM_RANGE(0x02000, 0x02fff) AM_RAM AM_BASE_MEMBER(panicr_state, m_spriteram)
AM_RANGE(0x03000, 0x03fff) AM_RAM
diff --git a/src/mame/drivers/paradise.c b/src/mame/drivers/paradise.c
index 8aa71274d0a..8184ec9761b 100644
--- a/src/mame/drivers/paradise.c
+++ b/src/mame/drivers/paradise.c
@@ -79,27 +79,27 @@ static WRITE8_HANDLER( torus_coin_counter_w )
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(paradise_vram_0_w) AM_BASE_MEMBER(paradise_state, m_vram_0) /* Foreground */ \
-static ADDRESS_MAP_START( paradise_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( paradise_map, AS_PROGRAM, 8, paradise_state )
STANDARD_MAP
AM_RANGE(0xd800, 0xd8ff) AM_RAM // RAM
AM_RANGE(0xd900, 0xe0ff) AM_RAM AM_BASE_SIZE_MEMBER(paradise_state, m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0xe100, 0xffff) AM_RAM // RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tgtball_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tgtball_map, AS_PROGRAM, 8, paradise_state )
STANDARD_MAP
AM_RANGE(0xd800, 0xd8ff) AM_RAM // RAM
AM_RANGE(0xd900, 0xd9ff) AM_RAM AM_BASE_SIZE_MEMBER(paradise_state, m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0xda00, 0xffff) AM_RAM // RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( torus_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( torus_map, AS_PROGRAM, 8, paradise_state )
STANDARD_MAP
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_BASE_SIZE_MEMBER(paradise_state, m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0xe000, 0xffff) AM_RAM // RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( paradise_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( paradise_io_map, AS_IO, 8, paradise_state )
AM_RANGE(0x0000, 0x17ff) AM_RAM_WRITE(paradise_palette_w) AM_BASE_MEMBER(paradise_state, m_paletteram) // Palette
AM_RANGE(0x1800, 0x1800) AM_WRITE(paradise_priority_w) // Layers priority
AM_RANGE(0x2001, 0x2001) AM_WRITE(paradise_flipscreen_w) // Flip Screen
@@ -116,7 +116,7 @@ static ADDRESS_MAP_START( paradise_io_map, AS_IO, 8 )
AM_RANGE(0x8000, 0xffff) AM_RAM_WRITE(paradise_pixmap_w) AM_BASE_MEMBER(paradise_state, m_videoram) // Pixmap
ADDRESS_MAP_END
-static ADDRESS_MAP_START( torus_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( torus_io_map, AS_IO, 8, paradise_state )
AM_RANGE(0x0000, 0x17ff) AM_RAM_WRITE(paradise_palette_w) AM_BASE_MEMBER(paradise_state, m_paletteram) // Palette
AM_RANGE(0x1800, 0x1800) AM_WRITE(paradise_priority_w) // Layers priority
AM_RANGE(0x2001, 0x2001) AM_WRITE(paradise_flipscreen_w) // Flip Screen
diff --git a/src/mame/drivers/paranoia.c b/src/mame/drivers/paranoia.c
index 4ec64c66fb4..00201a213d4 100644
--- a/src/mame/drivers/paranoia.c
+++ b/src/mame/drivers/paranoia.c
@@ -63,7 +63,7 @@ static INPUT_PORTS_START( paranoia )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
INPUT_PORTS_END
-static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8)
+static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8, paranoia_state )
AM_RANGE( 0x000000, 0x03FFFF) AM_ROM
AM_RANGE( 0x1F0000, 0x1F1FFF) AM_RAM AM_MIRROR(0x6000) AM_BASE( &pce_user_ram )
AM_RANGE( 0x1FE000, 0x1FE3FF) AM_READWRITE( vdc_0_r, vdc_0_w )
@@ -74,7 +74,7 @@ static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8)
AM_RANGE( 0x1FF400, 0x1FF7FF) AM_READWRITE( h6280_irq_status_r, h6280_irq_status_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pce_io , AS_IO, 8)
+static ADDRESS_MAP_START( pce_io , AS_IO, 8, paranoia_state )
AM_RANGE( 0x00, 0x03) AM_READWRITE( vdc_0_r, vdc_0_w )
ADDRESS_MAP_END
@@ -96,7 +96,7 @@ static WRITE8_HANDLER( paranoia_8085_8155_w )
}
}
-static ADDRESS_MAP_START(paranoia_8085_map, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(paranoia_8085_map, AS_PROGRAM, 8, paranoia_state )
AM_RANGE( 0x0000, 0x7fff) AM_ROM
AM_RANGE( 0x8000, 0x80ff) AM_RAM
AM_RANGE( 0x8100, 0x8105) AM_WRITE( paranoia_8085_8155_w )
@@ -104,10 +104,10 @@ static ADDRESS_MAP_START(paranoia_8085_map, AS_PROGRAM, 8)
AM_RANGE( 0xe000, 0xe1ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START(paranoia_8085_io_map, AS_IO, 8)
+static ADDRESS_MAP_START(paranoia_8085_io_map, AS_IO, 8, paranoia_state )
ADDRESS_MAP_END
-static ADDRESS_MAP_START(paranoia_z80_map, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(paranoia_z80_map, AS_PROGRAM, 8, paranoia_state )
AM_RANGE( 0x0000, 0x3fff) AM_ROM
AM_RANGE( 0x6000, 0x67ff) AM_RAM
AM_RANGE( 0x7000, 0x73ff) AM_RAM
@@ -131,7 +131,7 @@ static WRITE8_HANDLER(paranoia_z80_io_37_w)
{
}
-static ADDRESS_MAP_START(paranoia_z80_io_map, AS_IO, 8)
+static ADDRESS_MAP_START(paranoia_z80_io_map, AS_IO, 8, paranoia_state )
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 )
diff --git a/src/mame/drivers/parodius.c b/src/mame/drivers/parodius.c
index b52ec654edf..9d02c4ff205 100644
--- a/src/mame/drivers/parodius.c
+++ b/src/mame/drivers/parodius.c
@@ -144,7 +144,7 @@ static WRITE8_HANDLER( sound_arm_nmi_w )
/********************************************/
-static ADDRESS_MAP_START( parodius_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( parodius_map, AS_PROGRAM, 8, parodius_state )
AM_RANGE(0x0000, 0x07ff) AM_READWRITE(bankedram_r, bankedram_w) AM_BASE_MEMBER(parodius_state, m_ram)
AM_RANGE(0x0800, 0x1fff) AM_RAM
AM_RANGE(0x3f8c, 0x3f8c) AM_READ_PORT("P1")
@@ -164,7 +164,7 @@ static ADDRESS_MAP_START( parodius_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( parodius_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( parodius_sound_map, AS_PROGRAM, 8, parodius_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE("ymsnd", ym2151_r,ym2151_w)
diff --git a/src/mame/drivers/pasha2.c b/src/mame/drivers/pasha2.c
index 54fb67be419..55b90894618 100644
--- a/src/mame/drivers/pasha2.c
+++ b/src/mame/drivers/pasha2.c
@@ -206,7 +206,7 @@ static WRITE16_HANDLER( pasha2_lamps_w )
(data & 0x400) ? 'B' : '-');
}
-static ADDRESS_MAP_START( pasha2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pasha2_map, AS_PROGRAM, 16, pasha2_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_BASE_MEMBER(pasha2_state, m_wram)
AM_RANGE(0x40000000, 0x4001ffff) AM_RAM_WRITE(bitmap_0_w)
AM_RANGE(0x40020000, 0x4003ffff) AM_RAM_WRITE(bitmap_1_w)
@@ -222,7 +222,7 @@ static ADDRESS_MAP_START( pasha2_map, AS_PROGRAM, 16 )
AM_RANGE(0xfff80000, 0xffffffff) AM_ROM AM_REGION("user1",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pasha2_io, AS_IO, 16 )
+static ADDRESS_MAP_START( pasha2_io, AS_IO, 16, pasha2_state )
AM_RANGE(0x08, 0x0b) AM_READNOP //sound status?
AM_RANGE(0x18, 0x1b) AM_READNOP //sound status?
AM_RANGE(0x20, 0x23) AM_WRITE(pasha2_lamps_w)
diff --git a/src/mame/drivers/pass.c b/src/mame/drivers/pass.c
index c90aee34f7f..29540ffbabb 100644
--- a/src/mame/drivers/pass.c
+++ b/src/mame/drivers/pass.c
@@ -108,7 +108,7 @@
/* todo: check all memory regions actually readable / read from */
-static ADDRESS_MAP_START( pass_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pass_map, AS_PROGRAM, 16, pass_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM
AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(pass_bg_videoram_w) AM_BASE_MEMBER(pass_state, m_bg_videoram) // Background
@@ -120,12 +120,12 @@ static ADDRESS_MAP_START( pass_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
/* sound cpu */
-static ADDRESS_MAP_START( pass_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pass_sound_map, AS_PROGRAM, 8, pass_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pass_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( pass_sound_io_map, AS_IO, 8, pass_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
AM_RANGE(0x70, 0x71) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
diff --git a/src/mame/drivers/pastelg.c b/src/mame/drivers/pastelg.c
index ee83422c94e..c11968885d3 100644
--- a/src/mame/drivers/pastelg.c
+++ b/src/mame/drivers/pastelg.c
@@ -50,7 +50,7 @@ static READ8_HANDLER( pastelg_sndrom_r )
return ROM[pastelg_blitter_src_addr_r(space) & 0x7fff];
}
-static ADDRESS_MAP_START( pastelg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pastelg_map, AS_PROGRAM, 8, pastelg_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
@@ -61,7 +61,7 @@ static READ8_HANDLER( pastelg_irq_ack_r )
return 0;
}
-static ADDRESS_MAP_START( pastelg_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( pastelg_io_map, AS_IO, 8, pastelg_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE(0x00, 0x00) AM_WRITENOP
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
@@ -114,7 +114,7 @@ static WRITE8_HANDLER( threeds_inputportsel_w )
state->m_mux_data = ~data;
}
-static ADDRESS_MAP_START( threeds_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( threeds_io_map, AS_IO, 8, pastelg_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x81, 0x81) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x82, 0x83) AM_DEVWRITE("aysnd", ay8910_data_address_w)
diff --git a/src/mame/drivers/pbaction.c b/src/mame/drivers/pbaction.c
index 8051453a161..125be84ade8 100644
--- a/src/mame/drivers/pbaction.c
+++ b/src/mame/drivers/pbaction.c
@@ -84,7 +84,7 @@ static WRITE8_HANDLER( nmi_mask_w )
state->m_nmi_mask = data & 1;
}
-static ADDRESS_MAP_START( pbaction_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pbaction_map, AS_PROGRAM, 8, pbaction_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_BASE_MEMBER(pbaction_state, m_work_ram)
@@ -103,7 +103,7 @@ static ADDRESS_MAP_START( pbaction_map, AS_PROGRAM, 8 )
AM_RANGE(0xe800, 0xe800) AM_WRITE(pbaction_sh_command_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pbaction_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pbaction_sound_map, AS_PROGRAM, 8, pbaction_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x8000, 0x8000) AM_READ(soundlatch_r)
@@ -111,7 +111,7 @@ static ADDRESS_MAP_START( pbaction_sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pbaction_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( pbaction_sound_io_map, AS_IO, 8, pbaction_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x11) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x20, 0x21) AM_DEVWRITE("ay2", ay8910_address_data_w)
diff --git a/src/mame/drivers/pcat_dyn.c b/src/mame/drivers/pcat_dyn.c
index a8e1d48dfe0..aaac48e7c8b 100644
--- a/src/mame/drivers/pcat_dyn.c
+++ b/src/mame/drivers/pcat_dyn.c
@@ -48,7 +48,7 @@ public:
//ce9b8
/* TODO: understand the proper ROM loading.*/
-static ADDRESS_MAP_START( pcat_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( pcat_map, AS_PROGRAM, 32, pcat_dyn_state )
AM_RANGE(0x00000000, 0x0009ffff) AM_RAM
AM_RANGE(0x000a0000, 0x000bffff) AM_RAM
AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM AM_REGION("video_bios", 0)
@@ -63,7 +63,7 @@ static ADDRESS_MAP_START( pcat_map, AS_PROGRAM, 32 )
AM_RANGE(0xffff0000, 0xffffffff) AM_ROM AM_REGION("bios", 0 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pcat_io, AS_IO, 32 )
+static ADDRESS_MAP_START( pcat_io, AS_IO, 32, pcat_dyn_state )
AM_IMPORT_FROM(pcat32_io_common)
AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE8_MODERN("rtc", mc146818_device, read, write, 0xffffffff)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/pcat_nit.c b/src/mame/drivers/pcat_nit.c
index e6a2cf0c02d..bc06a64cb31 100644
--- a/src/mame/drivers/pcat_nit.c
+++ b/src/mame/drivers/pcat_nit.c
@@ -176,7 +176,7 @@ static WRITE8_HANDLER(pcat_nit_rombank_w)
}
}
-static ADDRESS_MAP_START( pcat_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( pcat_map, AS_PROGRAM, 32, pcat_nit_state )
AM_RANGE(0x00000000, 0x0009ffff) AM_RAM
AM_RANGE(0x000a0000, 0x000bffff) AM_RAM
AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM AM_REGION("video_bios", 0) AM_WRITENOP
@@ -202,7 +202,7 @@ static READ8_HANDLER(pcat_nit_io_r)
}
}
-static ADDRESS_MAP_START( pcat_nit_io, AS_IO, 32 )
+static ADDRESS_MAP_START( pcat_nit_io, AS_IO, 32, pcat_nit_state )
AM_IMPORT_FROM(pcat32_io_common)
AM_RANGE(0x0278, 0x027f) AM_READ8(pcat_nit_io_r, 0xffffffff) AM_WRITENOP
AM_RANGE(0x0280, 0x0283) AM_READNOP
diff --git a/src/mame/drivers/pcktgal.c b/src/mame/drivers/pcktgal.c
index 67e7127f5d2..39462d41f1e 100644
--- a/src/mame/drivers/pcktgal.c
+++ b/src/mame/drivers/pcktgal.c
@@ -71,7 +71,7 @@ static READ8_DEVICE_HANDLER( pcktgal_adpcm_reset_r )
/***************************************************************************/
-static ADDRESS_MAP_START( pcktgal_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pcktgal_map, AS_PROGRAM, 8, pcktgal_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0fff) AM_DEVREADWRITE("tilegen1", deco_bac06_pf_data_8bit_r, deco_bac06_pf_data_8bit_w)
AM_RANGE(0x1000, 0x11ff) AM_RAM AM_BASE_SIZE_MEMBER(pcktgal_state, m_spriteram, m_spriteram_size)
@@ -89,7 +89,7 @@ ADDRESS_MAP_END
/***************************************************************************/
-static ADDRESS_MAP_START( pcktgal_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pcktgal_sound_map, AS_PROGRAM, 8, pcktgal_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym2", ym3812_w)
diff --git a/src/mame/drivers/pcxt.c b/src/mame/drivers/pcxt.c
index 62fda31692f..f55b6e551fa 100644
--- a/src/mame/drivers/pcxt.c
+++ b/src/mame/drivers/pcxt.c
@@ -533,7 +533,7 @@ static IRQ_CALLBACK(irq_callback)
return pic8259_acknowledge(state->m_pic8259_1);
}
-static ADDRESS_MAP_START( filetto_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( filetto_map, AS_PROGRAM, 8, pcxt_state )
AM_RANGE(0x00000, 0x9ffff) AM_RAM //work RAM 640KB
AM_RANGE(0xa0000, 0xbffff) AM_RAM //CGA VRAM
AM_RANGE(0xc0000, 0xcffff) AM_ROMBANK("bank1")
@@ -541,7 +541,7 @@ static ADDRESS_MAP_START( filetto_map, AS_PROGRAM, 8 )
AM_RANGE(0xf0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pcxt_io_common, AS_IO, 8 )
+static ADDRESS_MAP_START( pcxt_io_common, AS_IO, 8, pcxt_state )
ADDRESS_MAP_GLOBAL_MASK(0x3ff)
AM_RANGE(0x0000, 0x000f) AM_DEVREADWRITE("dma8237_1", i8237_r, i8237_w ) //8237 DMA Controller
AM_RANGE(0x0020, 0x002f) AM_DEVREADWRITE("pic8259_1", pic8259_r, pic8259_w ) //8259 Interrupt control
@@ -561,7 +561,7 @@ static ADDRESS_MAP_START( pcxt_io_common, AS_IO, 8 )
AM_RANGE(0x03f8, 0x03ff) AM_RAM //rs232c (serial) port
ADDRESS_MAP_END
-static ADDRESS_MAP_START( filetto_io, AS_IO, 8 )
+static ADDRESS_MAP_START( filetto_io, AS_IO, 8, pcxt_state )
ADDRESS_MAP_GLOBAL_MASK(0x3ff)
AM_IMPORT_FROM( pcxt_io_common )
// AM_RANGE(0x0200, 0x020f) AM_RAM //game port
@@ -577,7 +577,7 @@ static WRITE8_HANDLER( tetriskr_bg_bank_w )
state->m_bg_bank = (data & 0x0f) ^ 8;
}
-static ADDRESS_MAP_START( tetriskr_io, AS_IO, 8 )
+static ADDRESS_MAP_START( tetriskr_io, AS_IO, 8, pcxt_state )
ADDRESS_MAP_GLOBAL_MASK(0x3ff)
AM_IMPORT_FROM( pcxt_io_common )
AM_RANGE(0x0200, 0x020f) AM_RAM //game port
diff --git a/src/mame/drivers/pengadvb.c b/src/mame/drivers/pengadvb.c
index f196b53d613..9b13fdb4eb7 100644
--- a/src/mame/drivers/pengadvb.c
+++ b/src/mame/drivers/pengadvb.c
@@ -140,7 +140,7 @@ static WRITE8_HANDLER(mem_w)
}
-static ADDRESS_MAP_START( program_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( program_mem, AS_PROGRAM, 8, pengadvb_state )
AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0x5fff) AM_ROMBANK("bank21")
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank22")
@@ -150,7 +150,7 @@ static ADDRESS_MAP_START( program_mem, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0xffff) AM_WRITE(mem_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_mem, AS_IO, 8 )
+static ADDRESS_MAP_START( io_mem, AS_IO, 8, pengadvb_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x98, 0x98) AM_DEVREADWRITE_MODERN( "tms9928a", tms9928a_device, vram_read, vram_write )
diff --git a/src/mame/drivers/pengo.c b/src/mame/drivers/pengo.c
index 2b278373f0d..f939c182449 100644
--- a/src/mame/drivers/pengo.c
+++ b/src/mame/drivers/pengo.c
@@ -117,7 +117,7 @@ static WRITE8_HANDLER( irq_mask_w )
state->m_irq_mask = data & 1;
}
-static ADDRESS_MAP_START( pengo_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pengo_map, AS_PROGRAM, 8, pengo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_MEMBER(pengo_state, m_videoram) /* video and color RAM, scratchpad RAM, sprite codes */
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pengo_state, m_colorram)
@@ -140,7 +140,7 @@ static ADDRESS_MAP_START( pengo_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jrpacmbl_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jrpacmbl_map, AS_PROGRAM, 8, pengo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(jrpacman_videoram_w) AM_BASE_MEMBER(pengo_state, m_videoram)
AM_RANGE(0x8800, 0x8fef) AM_RAM
diff --git a/src/mame/drivers/peplus.c b/src/mame/drivers/peplus.c
index 035e6331898..fe32cc07738 100644
--- a/src/mame/drivers/peplus.c
+++ b/src/mame/drivers/peplus.c
@@ -730,11 +730,11 @@ GFXDECODE_END
* Memory map information *
*************************/
-static ADDRESS_MAP_START( peplus_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( peplus_map, AS_PROGRAM, 8, peplus_state )
AM_RANGE(0x0000, 0xffff) AM_ROM AM_BASE_MEMBER(peplus_state, m_program_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( peplus_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( peplus_iomap, AS_IO, 8, peplus_state )
// Battery-backed RAM (0x1000-0x01fff Extended RAM for Superboards Only)
AM_RANGE(0x0000, 0x1fff) AM_READWRITE(peplus_cmos_r, peplus_cmos_w) AM_SHARE("cmos")
diff --git a/src/mame/drivers/peyper.c b/src/mame/drivers/peyper.c
index e9af2f1d023..f5429f80427 100644
--- a/src/mame/drivers/peyper.c
+++ b/src/mame/drivers/peyper.c
@@ -179,14 +179,14 @@ static CUSTOM_INPUT( wolfman_replay_hs_r )
}
-static ADDRESS_MAP_START( peyper_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( peyper_map, AS_PROGRAM, 8, peyper_state )
// AM_RANGE(0x0000, 0xffff) AM_NOP
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x5FFF) AM_ROM
AM_RANGE(0x6000, 0x67FF) AM_RAM //AM_BASE_GENERIC(nvram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( peyper_io, AS_IO, 8 )
+static ADDRESS_MAP_START( peyper_io, AS_IO, 8, peyper_state )
// AM_RANGE(0x0000, 0xffff) AM_NOP
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
diff --git a/src/mame/drivers/pgm.c b/src/mame/drivers/pgm.c
index d8dd8fa4778..a25bf60797f 100644
--- a/src/mame/drivers/pgm.c
+++ b/src/mame/drivers/pgm.c
@@ -310,11 +310,11 @@ void pgm_sound_irq( device_t *device, int level )
/*** Z80 (sound CPU)**********************************************************/
-ADDRESS_MAP_START( pgm_z80_mem, AS_PROGRAM, 8 )
+ADDRESS_MAP_START( pgm_z80_mem, AS_PROGRAM, 8, pgm_state )
AM_RANGE(0x0000, 0xffff) AM_RAM AM_BASE_MEMBER(pgm_state, m_z80_mainram)
ADDRESS_MAP_END
-ADDRESS_MAP_START( pgm_z80_io, AS_IO, 8 )
+ADDRESS_MAP_START( pgm_z80_io, AS_IO, 8, pgm_state )
AM_RANGE(0x8000, 0x8003) AM_DEVREADWRITE("ics", ics2115_device::read, ics2115_device::write)
AM_RANGE(0x8100, 0x81ff) AM_READWRITE(soundlatch3_r, z80_l3_w)
AM_RANGE(0x8200, 0x82ff) AM_READWRITE(soundlatch_r, soundlatch_w)
@@ -323,7 +323,7 @@ ADDRESS_MAP_END
/*** 68000 (main CPU) + variants for protection devices **********************/
-ADDRESS_MAP_START( pgm_base_mem, AS_PROGRAM, 16)
+ADDRESS_MAP_START( pgm_base_mem, AS_PROGRAM, 16, pgm_state )
AM_RANGE(0x700006, 0x700007) AM_WRITENOP // Watchdog?
AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE(&pgm_mainram) AM_SHARE("sram") /* Main Ram */
@@ -347,12 +347,12 @@ ADDRESS_MAP_START( pgm_base_mem, AS_PROGRAM, 16)
AM_RANGE(0xc10000, 0xc1ffff) AM_READWRITE(z80_ram_r, z80_ram_w) /* Z80 Program */
ADDRESS_MAP_END
-ADDRESS_MAP_START( pgm_mem, AS_PROGRAM, 16)
+ADDRESS_MAP_START( pgm_mem, AS_PROGRAM, 16, pgm_state )
AM_IMPORT_FROM(pgm_base_mem)
AM_RANGE(0x000000, 0x01ffff) AM_ROM /* BIOS ROM */
ADDRESS_MAP_END
-ADDRESS_MAP_START( pgm_basic_mem, AS_PROGRAM, 16)
+ADDRESS_MAP_START( pgm_basic_mem, AS_PROGRAM, 16, pgm_state )
AM_IMPORT_FROM(pgm_mem)
AM_RANGE(0x100000, 0x3fffff) AM_ROMBANK("bank1") /* Game ROM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/pgm2.c b/src/mame/drivers/pgm2.c
index 66aa8e4b68f..20652475e95 100644
--- a/src/mame/drivers/pgm2.c
+++ b/src/mame/drivers/pgm2.c
@@ -26,7 +26,7 @@ public:
};
-static ADDRESS_MAP_START( pgm2_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( pgm2_map, AS_PROGRAM, 32, pgm2_state )
AM_RANGE(0x00000000, 0x00003fff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/phoenix.c b/src/mame/drivers/phoenix.c
index 9e9f82a5150..4a66e5ee774 100644
--- a/src/mame/drivers/phoenix.c
+++ b/src/mame/drivers/phoenix.c
@@ -38,7 +38,7 @@ Pleiads:
#include "includes/phoenix.h"
-static ADDRESS_MAP_START( phoenix_memory_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( phoenix_memory_map, AS_PROGRAM, 8, phoenix_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4fff) AM_READ_BANK("bank1") AM_WRITE(phoenix_videoram_w) /* 2 pages selected by bit 0 of the video register */
AM_RANGE(0x5000, 0x53ff) AM_WRITE(phoenix_videoreg_w)
@@ -49,7 +49,7 @@ static ADDRESS_MAP_START( phoenix_memory_map, AS_PROGRAM, 8 )
AM_RANGE(0x7800, 0x7bff) AM_READ_PORT("DSW0") /* DSW */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pleiads_memory_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pleiads_memory_map, AS_PROGRAM, 8, phoenix_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4fff) AM_READ_BANK("bank1") AM_WRITE(phoenix_videoram_w) /* 2 pages selected by bit 0 of the video register */
AM_RANGE(0x5000, 0x53ff) AM_WRITE(pleiads_videoreg_w)
@@ -60,7 +60,7 @@ static ADDRESS_MAP_START( pleiads_memory_map, AS_PROGRAM, 8 )
AM_RANGE(0x7800, 0x7bff) AM_READ_PORT("DSW0") /* DSW */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( survival_memory_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( survival_memory_map, AS_PROGRAM, 8, phoenix_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4fff) AM_READ_BANK("bank1") AM_WRITE(phoenix_videoram_w) /* 2 pages selected by bit 0 of the video register */
AM_RANGE(0x5000, 0x53ff) AM_WRITE(phoenix_videoreg_w)
diff --git a/src/mame/drivers/photon.c b/src/mame/drivers/photon.c
index a04dd615b3b..2cab322ec3d 100644
--- a/src/mame/drivers/photon.c
+++ b/src/mame/drivers/photon.c
@@ -139,7 +139,7 @@ static I8255A_INTERFACE( pk8000_ppi8255_interface_2 )
DEVCB_HANDLER(pk8000_84_portc_w)
};
-static ADDRESS_MAP_START(pk8000_mem, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(pk8000_mem, AS_PROGRAM, 8, photon_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE( 0x0000, 0x3fff ) AM_READ_BANK("bank1") AM_WRITE_BANK("bank5")
AM_RANGE( 0x4000, 0x7fff ) AM_READ_BANK("bank2") AM_WRITE_BANK("bank6")
@@ -147,7 +147,7 @@ static ADDRESS_MAP_START(pk8000_mem, AS_PROGRAM, 8)
AM_RANGE( 0xc000, 0xffff ) AM_READ_BANK("bank4") AM_WRITE_BANK("bank8")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pk8000_io , AS_IO, 8)
+static ADDRESS_MAP_START( pk8000_io , AS_IO, 8, photon_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x80, 0x83) AM_DEVREADWRITE_MODERN("ppi8255_1", i8255_device, read, write)
AM_RANGE(0x84, 0x87) AM_DEVREADWRITE_MODERN("ppi8255_2", i8255_device, read, write)
diff --git a/src/mame/drivers/photon2.c b/src/mame/drivers/photon2.c
index 73415b7a165..cdc3bc30379 100644
--- a/src/mame/drivers/photon2.c
+++ b/src/mame/drivers/photon2.c
@@ -223,13 +223,13 @@ static WRITE8_HANDLER(photon2_misc_w)
*
*************************************/
-static ADDRESS_MAP_START (spectrum_mem, AS_PROGRAM, 8)
+static ADDRESS_MAP_START (spectrum_mem, AS_PROGRAM, 8, photon2_state )
AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0x5aff) AM_RAM AM_BASE_MEMBER(photon2_state, m_spectrum_video_ram )
AM_RANGE(0x5b00, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START (spectrum_io, AS_IO, 8)
+static ADDRESS_MAP_START (spectrum_io, AS_IO, 8, photon2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x1f, 0x1f) AM_READ_PORT("JOY")
AM_RANGE(0x5b, 0x5b) AM_READ_PORT("COIN") AM_WRITE(photon2_misc_w)
diff --git a/src/mame/drivers/photoply.c b/src/mame/drivers/photoply.c
index 52c58a46361..e500bc531cc 100644
--- a/src/mame/drivers/photoply.c
+++ b/src/mame/drivers/photoply.c
@@ -230,7 +230,7 @@ static const struct pit8253_config at_pit8254_config =
}
};
-static ADDRESS_MAP_START( photoply_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( photoply_map, AS_PROGRAM, 32, photoply_state )
AM_RANGE(0x00000000, 0x0009ffff) AM_RAM
AM_RANGE(0x000a0000, 0x000bffff) AM_RAM // VGA RAM
AM_RANGE(0x000c0000, 0x000c7fff) AM_RAM AM_REGION("video_bios", 0) //???
@@ -242,7 +242,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( photoply_io, AS_IO, 32 )
+static ADDRESS_MAP_START( photoply_io, AS_IO, 32, photoply_state )
AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_r, i8237_w, 0xffffffff)
AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8("pit8254", pit8253_r, pit8253_w, 0xffffffff)
diff --git a/src/mame/drivers/pingpong.c b/src/mame/drivers/pingpong.c
index 01c62adc16a..ce2ec1e1868 100644
--- a/src/mame/drivers/pingpong.c
+++ b/src/mame/drivers/pingpong.c
@@ -88,7 +88,7 @@ static TIMER_DEVICE_CALLBACK( merlinmm_interrupt )
}
}
-static ADDRESS_MAP_START( pingpong_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pingpong_map, AS_PROGRAM, 8, pingpong_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(pingpong_colorram_w) AM_BASE_MEMBER(pingpong_state, m_colorram)
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(pingpong_videoram_w) AM_BASE_MEMBER(pingpong_state, m_videoram)
@@ -105,7 +105,7 @@ static ADDRESS_MAP_START( pingpong_map, AS_PROGRAM, 8 )
AM_RANGE(0xa600, 0xa600) AM_WRITE(watchdog_reset_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( merlinmm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( merlinmm_map, AS_PROGRAM, 8, pingpong_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x5000, 0x53ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x5400, 0x57ff) AM_RAM
diff --git a/src/mame/drivers/pinkiri8.c b/src/mame/drivers/pinkiri8.c
index cce785e1ba5..f93af5fa66c 100644
--- a/src/mame/drivers/pinkiri8.c
+++ b/src/mame/drivers/pinkiri8.c
@@ -57,7 +57,7 @@ public:
};
-static ADDRESS_MAP_START( janshi_vdp_map8, AS_0, 8 )
+static ADDRESS_MAP_START( janshi_vdp_map8, AS_0, 8, pinkiri8_state )
AM_RANGE(0xfc0000, 0xfc1fff) AM_RAM AM_BASE_MEMBER(pinkiri8_state, m_janshi_back_vram) // bg tilemap?
AM_RANGE(0xfc2000, 0xfc2fff) AM_RAM AM_BASE_MEMBER(pinkiri8_state, m_janshi_vram1) // xpos, colour, tile number etc.
@@ -374,7 +374,7 @@ static SCREEN_UPDATE_IND16( pinkiri8 )
return 0;
}
-static ADDRESS_MAP_START( pinkiri8_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pinkiri8_map, AS_PROGRAM, 8, pinkiri8_state )
AM_RANGE(0x00000, 0x0bfff) AM_ROM
AM_RANGE(0x0c000, 0x0dfff) AM_RAM
AM_RANGE(0x0e000, 0x0ffff) AM_ROM
@@ -462,7 +462,7 @@ static READ8_HANDLER( mux_p1_r )
return 0xff;
}
-static ADDRESS_MAP_START( pinkiri8_io, AS_IO, 8 )
+static ADDRESS_MAP_START( pinkiri8_io, AS_IO, 8, pinkiri8_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x3f) AM_RAM //Z180 internal I/O
AM_RANGE(0x60, 0x60) AM_WRITE(output_regs_w)
diff --git a/src/mame/drivers/pipedrm.c b/src/mame/drivers/pipedrm.c
index 0fbce0e2799..b2bb0dc070c 100644
--- a/src/mame/drivers/pipedrm.c
+++ b/src/mame/drivers/pipedrm.c
@@ -263,7 +263,7 @@ static READ8_HANDLER( sound_command_r )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, fromance_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank1")
@@ -272,7 +272,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, AS_IO, 8, fromance_state )
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)
@@ -293,14 +293,14 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, fromance_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, fromance_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x04) AM_WRITE(sound_bankswitch_w)
AM_RANGE(0x16, 0x16) AM_READ(sound_command_r)
@@ -309,7 +309,7 @@ static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hatris_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( hatris_sound_portmap, AS_IO, 8, fromance_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_MIRROR(0x08) AM_DEVREADWRITE("ymsnd", ym2608_r, ym2608_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 ab8900d43ff..0f9ed4f857a 100644
--- a/src/mame/drivers/pipeline.c
+++ b/src/mame/drivers/pipeline.c
@@ -183,7 +183,7 @@ static WRITE8_DEVICE_HANDLER(protection_w)
device->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
}
-static ADDRESS_MAP_START( cpu0_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu0_mem, AS_PROGRAM, 8, pipeline_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x97ff) AM_RAM_WRITE(vram1_w) AM_BASE_MEMBER(pipeline_state, m_vram1)
@@ -194,13 +194,13 @@ static ADDRESS_MAP_START( cpu0_mem, AS_PROGRAM, 8 )
AM_RANGE(0xb840, 0xb840) AM_NOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu1_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu1_mem, AS_PROGRAM, 8, pipeline_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ppi8255_2", ppi8255_r, ppi8255_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_port, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_port, AS_IO, 8, pipeline_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ctc", z80ctc_r, z80ctc_w)
AM_RANGE(0x06, 0x07) AM_NOP
@@ -224,7 +224,7 @@ static WRITE8_HANDLER(mcu_ddrA_w)
state->m_ddrA=data;
}
-static ADDRESS_MAP_START( mcu_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_mem, AS_PROGRAM, 8, pipeline_state )
AM_RANGE(0x0000, 0x0000) AM_READ(mcu_portA_r) AM_WRITE(mcu_portA_w)
AM_RANGE(0x0004, 0x0004) AM_WRITE(mcu_ddrA_w)
AM_RANGE(0x0010, 0x007f) AM_RAM
diff --git a/src/mame/drivers/pirates.c b/src/mame/drivers/pirates.c
index 794330c6ba3..52c375cfc20 100644
--- a/src/mame/drivers/pirates.c
+++ b/src/mame/drivers/pirates.c
@@ -162,7 +162,7 @@ static CUSTOM_INPUT( prot_r )
/* Memory Maps */
-static ADDRESS_MAP_START( pirates_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pirates_map, AS_PROGRAM, 16, pirates_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // main ram
AM_RANGE(0x300000, 0x300001) AM_READ_PORT("INPUTS")
diff --git a/src/mame/drivers/pitnrun.c b/src/mame/drivers/pitnrun.c
index c2eebc32aab..d13d2df9b1e 100644
--- a/src/mame/drivers/pitnrun.c
+++ b/src/mame/drivers/pitnrun.c
@@ -92,7 +92,7 @@ static WRITE8_HANDLER(pitnrun_vflip_w)
flip_screen_y_set(space->machine(), data);
}
-static ADDRESS_MAP_START( pitnrun_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pitnrun_map, AS_PROGRAM, 8, pitnrun_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(pitnrun_videoram_w) AM_BASE_MEMBER(pitnrun_state, m_videoram)
@@ -118,12 +118,12 @@ static ADDRESS_MAP_START( pitnrun_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf000) AM_READ(watchdog_reset_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pitnrun_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pitnrun_sound_map, AS_PROGRAM, 8, pitnrun_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x3800, 0x3bff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pitnrun_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( pitnrun_sound_io_map, AS_IO, 8, pitnrun_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(soundlatch_clear_w)
AM_RANGE(0x8c, 0x8d) AM_DEVWRITE("ay2", ay8910_address_data_w)
@@ -134,7 +134,7 @@ static ADDRESS_MAP_START( pitnrun_sound_io_map, AS_IO, 8 )
AM_RANGE(0x98, 0x98) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pitnrun_mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pitnrun_mcu_map, AS_PROGRAM, 8, pitnrun_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(pitnrun_68705_portA_r,pitnrun_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(pitnrun_68705_portB_r,pitnrun_68705_portB_w)
diff --git a/src/mame/drivers/pkscram.c b/src/mame/drivers/pkscram.c
index 0eadb59e72f..65a367393fb 100644
--- a/src/mame/drivers/pkscram.c
+++ b/src/mame/drivers/pkscram.c
@@ -94,7 +94,7 @@ static WRITE16_HANDLER( pkscramble_output_w )
coin_counter_w(space->machine(), 0, data & 0x80);
}
-static ADDRESS_MAP_START( pkscramble_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pkscramble_map, AS_PROGRAM, 16, pkscram_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ffff)
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x040000, 0x0400ff) AM_RAM AM_SHARE("nvram")
diff --git a/src/mame/drivers/pktgaldx.c b/src/mame/drivers/pktgaldx.c
index 5632d016377..de17ef65c09 100644
--- a/src/mame/drivers/pktgaldx.c
+++ b/src/mame/drivers/pktgaldx.c
@@ -71,7 +71,7 @@ static WRITE16_DEVICE_HANDLER(pktgaldx_oki_bank_w)
/**********************************************************************************/
-static ADDRESS_MAP_START( pktgaldx_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pktgaldx_map, AS_PROGRAM, 16, pktgaldx_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_DEVREADWRITE("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
@@ -120,7 +120,7 @@ cpu #0 (PC=0000923C): unmapped program memory word read from 00167DB2 & 00FF
/* do the 300000 addresses somehow interact with the protection addresses on this bootleg? */
/* or maybe protection writes go to sound ... */
-static ADDRESS_MAP_START( pktgaldb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pktgaldb_map, AS_PROGRAM, 16, pktgaldx_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_RAM AM_BASE_MEMBER(pktgaldx_state, m_pktgaldb_fgram) // fgram on original?
AM_RANGE(0x102000, 0x102fff) AM_RAM // bgram on original?
diff --git a/src/mame/drivers/playch10.c b/src/mame/drivers/playch10.c
index f2456677f8f..2c8d50e1643 100644
--- a/src/mame/drivers/playch10.c
+++ b/src/mame/drivers/playch10.c
@@ -369,7 +369,7 @@ static WRITE8_DEVICE_HANDLER( psg_4017_w )
/******************************************************************************/
/* BIOS */
-static ADDRESS_MAP_START( bios_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bios_map, AS_PROGRAM, 8, playch10_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM // 8V
AM_RANGE(0x8800, 0x8fff) AM_READWRITE(ram_8w_r, ram_8w_w) AM_BASE_MEMBER(playch10_state, m_ram_8w) // 8W
@@ -378,7 +378,7 @@ static ADDRESS_MAP_START( bios_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_READWRITE(pc10_prot_r, pc10_prot_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bios_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( bios_io_map, AS_IO, 8, playch10_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("BIOS") AM_WRITE(pc10_SDCS_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("SW1") AM_WRITE(pc10_CNTRLMASK_w)
@@ -395,7 +395,7 @@ static ADDRESS_MAP_START( bios_io_map, AS_IO, 8 )
AM_RANGE(0x10, 0x13) AM_WRITE(time_w) AM_BASE_MEMBER(playch10_state, m_timedata)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cart_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cart_map, AS_PROGRAM, 8, playch10_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_MIRROR(0x1800) AM_BASE_MEMBER(playch10_state, m_work_ram)
AM_RANGE(0x2000, 0x3fff) AM_DEVREADWRITE_MODERN("ppu", ppu2c0x_device, read, write)
AM_RANGE(0x4011, 0x4011) AM_DEVWRITE("dac", dac_w)
diff --git a/src/mame/drivers/playmark.c b/src/mame/drivers/playmark.c
index 0873483ee1e..387a560b2f6 100644
--- a/src/mame/drivers/playmark.c
+++ b/src/mame/drivers/playmark.c
@@ -222,7 +222,7 @@ static READ8_HANDLER( PIC16C5X_T0_clk_r )
/***************************** 68000 Memory Maps ****************************/
-static ADDRESS_MAP_START( bigtwin_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bigtwin_main_map, AS_PROGRAM, 16, playmark_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x304000, 0x304001) AM_NOP /* watchdog? irq ack? */
AM_RANGE(0x440000, 0x4403ff) AM_RAM AM_BASE_SIZE_MEMBER(playmark_state, m_spriteram, m_spriteram_size)
@@ -246,7 +246,7 @@ static ADDRESS_MAP_START( bigtwin_main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bigtwinb_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bigtwinb_main_map, AS_PROGRAM, 16, playmark_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(hrdtimes_bgvideoram_w) AM_BASE_MEMBER(playmark_state, m_videoram3)
AM_RANGE(0x104000, 0x107fff) AM_RAM_WRITE(hrdtimes_fgvideoram_w) AM_BASE_MEMBER(playmark_state, m_videoram2)
@@ -265,7 +265,7 @@ static ADDRESS_MAP_START( bigtwinb_main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wbeachvl_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( wbeachvl_main_map, AS_PROGRAM, 16, playmark_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_SIZE_MEMBER(playmark_state, m_spriteram, m_spriteram_size)
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(wbeachvl_bgvideoram_w) AM_BASE_MEMBER(playmark_state, m_videoram3)
@@ -287,7 +287,7 @@ static ADDRESS_MAP_START( wbeachvl_main_map, AS_PROGRAM, 16 )
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( excelsr_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( excelsr_main_map, AS_PROGRAM, 16, playmark_state )
AM_RANGE(0x000000, 0x2fffff) AM_ROM
AM_RANGE(0x304000, 0x304001) AM_WRITENOP /* watchdog? irq ack? */
AM_RANGE(0x440000, 0x440cff) AM_RAM AM_BASE_SIZE_MEMBER(playmark_state, m_spriteram, m_spriteram_size)
@@ -307,7 +307,7 @@ static ADDRESS_MAP_START( excelsr_main_map, AS_PROGRAM, 16 )
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hotmind_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hotmind_main_map, AS_PROGRAM, 16, playmark_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(hrdtimes_bgvideoram_w) AM_BASE_MEMBER(playmark_state, m_videoram3)
AM_RANGE(0x104000, 0x107fff) AM_RAM_WRITE(hrdtimes_fgvideoram_w) AM_BASE_MEMBER(playmark_state, m_videoram2)
@@ -325,7 +325,7 @@ static ADDRESS_MAP_START( hotmind_main_map, AS_PROGRAM, 16 )
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hrdtimes_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hrdtimes_main_map, AS_PROGRAM, 16, playmark_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x0bffff) AM_RAM
AM_RANGE(0x0c0000, 0x0fffff) AM_ROM AM_REGION("maincpu", 0x0c0000)
@@ -353,7 +353,7 @@ ADDRESS_MAP_END
/* $000 - 7FF PIC16C57 Internal Program ROM. Note: code is 12bits wide */
/* $000 - 07F PIC16C57 Internal Data RAM */
-static ADDRESS_MAP_START( playmark_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( playmark_sound_io_map, AS_IO, 8, playmark_state )
AM_RANGE(0x00, 0x00) AM_DEVWRITE("oki", playmark_oki_banking_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(playmark_snd_command_r, playmark_oki_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(playmark_snd_flag_r, playmark_snd_control_w)
diff --git a/src/mame/drivers/pluto5.c b/src/mame/drivers/pluto5.c
index 2526149f988..e8ecb606992 100644
--- a/src/mame/drivers/pluto5.c
+++ b/src/mame/drivers/pluto5.c
@@ -185,7 +185,7 @@ public:
};
-static ADDRESS_MAP_START( pluto5_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( pluto5_map, AS_PROGRAM, 32, pluto5_state )
AM_RANGE(0x000000, 0x2fffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/plygonet.c b/src/mame/drivers/plygonet.c
index 8c3893c38d3..4b9b9c1addc 100644
--- a/src/mame/drivers/plygonet.c
+++ b/src/mame/drivers/plygonet.c
@@ -513,7 +513,7 @@ static WRITE16_HANDLER( dsp56k_ram_bank04_write )
/**********************************************************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, polygonet_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x21ffff) AM_RAM_WRITE(plygonet_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x400000, 0x40001f) AM_DEVREADWRITE16("k053936", k053936_ctrl_r, k053936_ctrl_w, 0xffffffff)
@@ -538,13 +538,13 @@ ADDRESS_MAP_END
/**********************************************************************************/
-static ADDRESS_MAP_START( dsp_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dsp_program_map, AS_PROGRAM, 16, polygonet_state )
AM_RANGE(0x7000, 0x7fff) AM_RAM AM_BASE_MEMBER(polygonet_state, m_dsp56k_p_mirror) /* Unsure of size, but 0x1000 matches bank01 */
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_MEMBER(polygonet_state, m_dsp56k_p_8000)
AM_RANGE(0xc000, 0xc000) AM_READ(dsp56k_bootload_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dsp_data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( dsp_data_map, AS_DATA, 16, polygonet_state )
AM_RANGE(0x0800, 0x5fff) AM_RAM /* Appears to not be affected by banking? */
AM_RANGE(0x6000, 0x6fff) AM_READWRITE(dsp56k_ram_bank00_read, dsp56k_ram_bank00_write)
AM_RANGE(0x7000, 0x7fff) AM_READWRITE(dsp56k_ram_bank01_read, dsp56k_ram_bank01_write) /* Mirrored in program space @ 0x7000 */
@@ -573,7 +573,7 @@ static INTERRUPT_GEN(audio_interrupt)
device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, polygonet_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
AM_RANGE(0x0000, 0xbfff) AM_WRITENOP
diff --git a/src/mame/drivers/pntnpuzl.c b/src/mame/drivers/pntnpuzl.c
index e465b14b32a..a481d0494c8 100644
--- a/src/mame/drivers/pntnpuzl.c
+++ b/src/mame/drivers/pntnpuzl.c
@@ -286,7 +286,7 @@ static READ16_HANDLER( irq4_ack_r )
}
-static ADDRESS_MAP_START( pntnpuzl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pntnpuzl_map, AS_PROGRAM, 16, pntnpuzl_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ(irq1_ack_r)
AM_RANGE(0x100000, 0x100001) AM_READ(irq2_ack_r)
diff --git a/src/mame/drivers/pokechmp.c b/src/mame/drivers/pokechmp.c
index 6780ad5de42..7189ac0bcb6 100644
--- a/src/mame/drivers/pokechmp.c
+++ b/src/mame/drivers/pokechmp.c
@@ -105,7 +105,7 @@ static WRITE8_HANDLER( pokechmp_paletteram_w )
}
-static ADDRESS_MAP_START( pokechmp_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pokechmp_map, AS_PROGRAM, 8, pokechmp_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0fff) AM_RAM_WRITE(pokechmp_videoram_w) AM_BASE_MEMBER(pokechmp_state, m_videoram)
AM_RANGE(0x1000, 0x11ff) AM_RAM AM_BASE_SIZE_MEMBER(pokechmp_state, m_spriteram, m_spriteram_size)
@@ -129,7 +129,7 @@ ADDRESS_MAP_END
/***************************************************************************/
-static ADDRESS_MAP_START( pokechmp_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pokechmp_sound_map, AS_PROGRAM, 8, pokechmp_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym2", ym3812_w)
diff --git a/src/mame/drivers/poker72.c b/src/mame/drivers/poker72.c
index 8cc7b629814..7d90c069166 100644
--- a/src/mame/drivers/poker72.c
+++ b/src/mame/drivers/poker72.c
@@ -92,7 +92,7 @@ static WRITE8_HANDLER( tile_bank_w )
state->m_tile_bank = (data & 4) >> 2;
}
-static ADDRESS_MAP_START( poker72_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( poker72_map, AS_PROGRAM, 8, poker72_state )
AM_RANGE(0x0000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_RAM //work ram
AM_RANGE(0xe000, 0xefff) AM_RAM AM_BASE_MEMBER(poker72_state, m_vram)
diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c
index e2c28cb98c9..0696a6bce83 100644
--- a/src/mame/drivers/polepos.c
+++ b/src/mame/drivers/polepos.c
@@ -488,7 +488,7 @@ static MACHINE_RESET( polepos )
* CPU memory structures
*********************************************************************/
-static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8, polepos_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x3000, 0x37ff) AM_MIRROR(0x0800) AM_RAM AM_SHARE("nvram") /* Battery Backup */
AM_RANGE(0x4000, 0x47ff) AM_READWRITE(polepos_sprite_r, polepos_sprite_w) /* Motion Object */
@@ -508,14 +508,14 @@ static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8 )
AM_RANGE(0xa300, 0xa300) AM_MIRROR(0x0cff) AM_DEVWRITE("polepos", polepos_engine_sound_msb_w) /* Car Sound ( Upper Nibble ) */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( z80_io, AS_IO, 8 )
+static ADDRESS_MAP_START( z80_io, AS_IO, 8, polepos_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(polepos_adc_r) AM_WRITENOP
ADDRESS_MAP_END
/* the same memory map is used by both Z8002 CPUs; all RAM areas are shared */
-static ADDRESS_MAP_START( z8002_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( z8002_map, AS_PROGRAM, 16, polepos_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x6000, 0x6001) AM_MIRROR(0x0ffe) AM_WRITE(polepos_z8002_nvi_enable_w) /* NVI enable - *NOT* shared by the two CPUs */
AM_RANGE(0x8000, 0x8fff) AM_READWRITE(polepos_sprite16_r, polepos_sprite16_w) AM_BASE_MEMBER(polepos_state, m_sprite16_memory) /* Motion Object */
@@ -1005,12 +1005,12 @@ static MACHINE_CONFIG_START( topracern, polepos_state )
MACHINE_CONFIG_END
-static ADDRESS_MAP_START( sound_z80_bootleg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_z80_bootleg_map, AS_PROGRAM, 8, polepos_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2700, 0x27ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_z80_bootleg_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_z80_bootleg_iomap, AS_IO, 8, polepos_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/policetr.c b/src/mame/drivers/policetr.c
index 39eb702fad9..6aaae7fd6fc 100644
--- a/src/mame/drivers/policetr.c
+++ b/src/mame/drivers/policetr.c
@@ -254,7 +254,7 @@ static const eeprom_interface eeprom_interface_policetr =
*
*************************************/
-static ADDRESS_MAP_START( policetr_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( policetr_map, AS_PROGRAM, 32, policetr_state )
AM_RANGE(0x00000000, 0x0001ffff) AM_RAM AM_BASE_MEMBER(policetr_state, m_rambase)
AM_RANGE(0x00200000, 0x0020000f) AM_WRITE(policetr_video_w)
AM_RANGE(0x00400000, 0x00400003) AM_READ(policetr_video_r)
@@ -273,7 +273,7 @@ static ADDRESS_MAP_START( policetr_map, AS_PROGRAM, 32 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sshooter_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( sshooter_map, AS_PROGRAM, 32, policetr_state )
AM_RANGE(0x00000000, 0x0001ffff) AM_RAM AM_BASE_MEMBER(policetr_state, m_rambase)
AM_RANGE(0x00200000, 0x00200003) AM_WRITE(policetr_bsmt2000_data_w)
AM_RANGE(0x00300000, 0x00300003) AM_WRITE(policetr_palette_offset_w)
diff --git a/src/mame/drivers/polyplay.c b/src/mame/drivers/polyplay.c
index 1fa29891d34..c38c86524f5 100644
--- a/src/mame/drivers/polyplay.c
+++ b/src/mame/drivers/polyplay.c
@@ -142,7 +142,7 @@ static INTERRUPT_GEN( coin_interrupt )
/* memory mapping */
-static ADDRESS_MAP_START( polyplay_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( polyplay_map, AS_PROGRAM, 8, polyplay_state )
AM_RANGE(0x0000, 0x0bff) AM_ROM
AM_RANGE(0x0c00, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x8fff) AM_ROM
@@ -153,7 +153,7 @@ ADDRESS_MAP_END
/* port mapping */
-static ADDRESS_MAP_START( polyplay_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( polyplay_io_map, AS_IO, 8, polyplay_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x81) AM_WRITE(polyplay_sound_channel)
AM_RANGE(0x82, 0x82) AM_WRITE(polyplay_start_timer2)
diff --git a/src/mame/drivers/poo.c b/src/mame/drivers/poo.c
index 7951de4d15d..404a3927ba7 100644
--- a/src/mame/drivers/poo.c
+++ b/src/mame/drivers/poo.c
@@ -146,7 +146,7 @@ static WRITE8_HANDLER( poo_vregs_w )
state->m_vram_colbank = data & 0x18;
}
-static ADDRESS_MAP_START( unclepoo_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( unclepoo_main_map, AS_PROGRAM, 8, poo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM AM_WRITENOP
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x97ff) AM_RAM
@@ -169,19 +169,19 @@ static ADDRESS_MAP_START( unclepoo_main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( unclepoo_main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( unclepoo_main_portmap, AS_IO, 8, poo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( unclepoo_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( unclepoo_sub_map, AS_PROGRAM, 8, poo_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_WRITENOP /* R/C filter ??? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( unclepoo_sub_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( unclepoo_sub_portmap, AS_IO, 8, poo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("ay", ay8910_r, ay8910_data_w)
AM_RANGE(0x80, 0x80) AM_DEVWRITE("ay", ay8910_address_w)
diff --git a/src/mame/drivers/poolshrk.c b/src/mame/drivers/poolshrk.c
index d4bc67b9bed..5359b4927b2 100644
--- a/src/mame/drivers/poolshrk.c
+++ b/src/mame/drivers/poolshrk.c
@@ -99,7 +99,7 @@ static READ8_HANDLER( poolshrk_irq_reset_r )
}
-static ADDRESS_MAP_START( poolshrk_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( poolshrk_cpu_map, AS_PROGRAM, 8, poolshrk_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x2300) AM_RAM
AM_RANGE(0x0400, 0x07ff) AM_MIRROR(0x2000) AM_WRITEONLY AM_BASE_MEMBER(poolshrk_state, m_playfield_ram)
diff --git a/src/mame/drivers/pooyan.c b/src/mame/drivers/pooyan.c
index ec67b70da05..05576023ade 100644
--- a/src/mame/drivers/pooyan.c
+++ b/src/mame/drivers/pooyan.c
@@ -49,7 +49,7 @@ static WRITE8_HANDLER( irq_enable_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, pooyan_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(pooyan_colorram_w) AM_BASE_MEMBER(pooyan_state, m_colorram)
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(pooyan_videoram_w) AM_BASE_MEMBER(pooyan_state, m_videoram)
diff --git a/src/mame/drivers/popeye.c b/src/mame/drivers/popeye.c
index 3e2c8f8ccbc..e89be697a47 100644
--- a/src/mame/drivers/popeye.c
+++ b/src/mame/drivers/popeye.c
@@ -64,7 +64,7 @@ static WRITE8_HANDLER( protection_w )
-static ADDRESS_MAP_START( skyskipr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( skyskipr_map, AS_PROGRAM, 8, popeye_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8c00, 0x8c02) AM_RAM AM_BASE_MEMBER(popeye_state, m_background_pos)
@@ -77,7 +77,7 @@ static ADDRESS_MAP_START( skyskipr_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe001) AM_READWRITE(protection_r,protection_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( popeye_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( popeye_map, AS_PROGRAM, 8, popeye_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8bff) AM_RAM
@@ -91,7 +91,7 @@ static ADDRESS_MAP_START( popeye_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe001) AM_READWRITE(protection_r,protection_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( popeyebl_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( popeyebl_map, AS_PROGRAM, 8, popeye_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8c00, 0x8c02) AM_RAM AM_BASE_MEMBER(popeye_state, m_background_pos)
@@ -104,7 +104,7 @@ static ADDRESS_MAP_START( popeyebl_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe01f) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( popeye_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( popeye_io_map, AS_IO, 8, popeye_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
diff --git a/src/mame/drivers/popobear.c b/src/mame/drivers/popobear.c
index 5d8f4846a22..77a93c7b07a 100644
--- a/src/mame/drivers/popobear.c
+++ b/src/mame/drivers/popobear.c
@@ -284,7 +284,7 @@ static WRITE8_HANDLER( popobear_irq_ack_w )
}
}
-static ADDRESS_MAP_START( popobear_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( popobear_mem, AS_PROGRAM, 16, popobear_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x210000, 0x21ffff) AM_RAM
diff --git a/src/mame/drivers/popper.c b/src/mame/drivers/popper.c
index 72899fd8791..6a5b539408b 100644
--- a/src/mame/drivers/popper.c
+++ b/src/mame/drivers/popper.c
@@ -159,7 +159,7 @@ static WRITE8_HANDLER( nmi_mask_w )
*
*************************************/
-static ADDRESS_MAP_START( popper_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( popper_map, AS_PROGRAM, 8, popper_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0xc000, 0xc1bf) AM_RAM
AM_RANGE(0xc1c0, 0xc1ff) AM_RAM_WRITE(popper_ol_videoram_w) AM_BASE_MEMBER(popper_state, m_ol_videoram)
@@ -182,7 +182,7 @@ static ADDRESS_MAP_START( popper_map, AS_PROGRAM, 8 )
AM_RANGE(0xffff, 0xffff) AM_READNOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( popper_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( popper_sound_map, AS_PROGRAM, 8, popper_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x8002, 0x8002) AM_READNOP //?? all read once at startup and the
diff --git a/src/mame/drivers/portrait.c b/src/mame/drivers/portrait.c
index 854dfdfc7a9..603308fde99 100644
--- a/src/mame/drivers/portrait.c
+++ b/src/mame/drivers/portrait.c
@@ -118,7 +118,7 @@ static WRITE8_HANDLER( portrait_negative_scroll_w )
state->m_scroll = - (data ^ 0xff);
}
-static ADDRESS_MAP_START( portrait_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( portrait_map, AS_PROGRAM, 8, portrait_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(portrait_bgvideo_write) AM_BASE_MEMBER(portrait_state, m_bgvideoram)
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(portrait_fgvideo_write) AM_BASE_MEMBER(portrait_state, m_fgvideoram)
@@ -137,7 +137,7 @@ static ADDRESS_MAP_START( portrait_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( portrait_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( portrait_sound_map, AS_PROGRAM, 8, portrait_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/potgoldu.c b/src/mame/drivers/potgoldu.c
index 442c115732b..3a2fbc70fab 100644
--- a/src/mame/drivers/potgoldu.c
+++ b/src/mame/drivers/potgoldu.c
@@ -54,7 +54,7 @@ static MACHINE_RESET( potgold )
}
-static ADDRESS_MAP_START( potgold_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( potgold_map, AS_PROGRAM, 16, potgold_state )
AM_RANGE(0xff000000, 0xffffffff) AM_ROM AM_REGION("user1", 0)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/powerbal.c b/src/mame/drivers/powerbal.c
index 545c1996ebf..332bb6971c9 100644
--- a/src/mame/drivers/powerbal.c
+++ b/src/mame/drivers/powerbal.c
@@ -75,7 +75,7 @@ static WRITE16_DEVICE_HANDLER( oki_banking )
}
}
-static ADDRESS_MAP_START( magicstk_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( magicstk_main_map, AS_PROGRAM, 16, playmark_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x088000, 0x0883ff) AM_RAM_WRITE(bigtwin_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x094000, 0x094001) AM_WRITENOP
@@ -94,7 +94,7 @@ static ADDRESS_MAP_START( magicstk_main_map, AS_PROGRAM, 16 )
AM_RANGE(0x100000, 0x100fff) AM_RAM AM_BASE_SIZE_MEMBER(playmark_state, m_spriteram, m_spriteram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( powerbal_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( powerbal_main_map, AS_PROGRAM, 16, playmark_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x088000, 0x0883ff) AM_RAM_WRITE(bigtwin_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x094000, 0x094001) AM_WRITENOP
diff --git a/src/mame/drivers/powerins.c b/src/mame/drivers/powerins.c
index 6887b297b90..5cf04b376b5 100644
--- a/src/mame/drivers/powerins.c
+++ b/src/mame/drivers/powerins.c
@@ -72,7 +72,7 @@ static READ8_HANDLER( powerinb_fake_ym2203_r )
}
-static ADDRESS_MAP_START( powerins_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( powerins_map, AS_PROGRAM, 16, powerins_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x100002, 0x100003) AM_READ_PORT("P1_P2")
@@ -92,7 +92,7 @@ static ADDRESS_MAP_START( powerins_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
/* powerina: same as the original one but without the sound cpu (and inferior sound HW) */
-static ADDRESS_MAP_START( powerina_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( powerina_map, AS_PROGRAM, 16, powerins_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x100002, 0x100003) AM_READ_PORT("P1_P2")
@@ -112,7 +112,7 @@ static ADDRESS_MAP_START( powerina_map, AS_PROGRAM, 16 )
AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_BASE_MEMBER(powerins_state, m_spriteram) // RAM + Sprites
ADDRESS_MAP_END
-static ADDRESS_MAP_START( powerins_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( powerins_sound_map, AS_PROGRAM, 8, powerins_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
@@ -120,7 +120,7 @@ static ADDRESS_MAP_START( powerins_sound_map, AS_PROGRAM, 8 )
// AM_RANGE(0xe001, 0xe001) AM_WRITENOP // ?
ADDRESS_MAP_END
-static ADDRESS_MAP_START( powerins_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( powerins_sound_io_map, AS_IO, 8, powerins_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ym2203", ym2203_r, ym2203_w)
AM_RANGE(0x80, 0x80) AM_DEVREADWRITE_MODERN("oki1", okim6295_device, read, write)
@@ -128,7 +128,7 @@ static ADDRESS_MAP_START( powerins_sound_io_map, AS_IO, 8 )
AM_RANGE(0x90, 0x97) AM_DEVWRITE("nmk112", nmk112_okibank_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( powerinb_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( powerinb_sound_io_map, AS_IO, 8, powerins_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(powerinb_fake_ym2203_r) AM_WRITENOP
AM_RANGE(0x01, 0x01) AM_NOP
diff --git a/src/mame/drivers/ppmast93.c b/src/mame/drivers/ppmast93.c
index 3ba2a1784b5..1807d6bcd87 100644
--- a/src/mame/drivers/ppmast93.c
+++ b/src/mame/drivers/ppmast93.c
@@ -177,7 +177,7 @@ static WRITE8_HANDLER( ppmast93_port4_w )
memory_set_bankptr(space->machine(), "bank1",&rom[0x10000+(bank*0x4000)]);
}
-static ADDRESS_MAP_START( ppmast93_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ppmast93_cpu1_map, AS_PROGRAM, 8, ppmast93_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM AM_WRITENOP AM_REGION("maincpu", 0x10000)
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(ppmast93_bgram_w) AM_BASE_MEMBER(ppmast93_state, m_bgram) AM_SHARE("share1")
@@ -186,7 +186,7 @@ static ADDRESS_MAP_START( ppmast93_cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ppmast93_cpu1_io, AS_IO, 8 )
+static ADDRESS_MAP_START( ppmast93_cpu1_io, AS_IO, 8, ppmast93_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("P2")
@@ -198,7 +198,7 @@ static ADDRESS_MAP_START( ppmast93_cpu1_io, AS_IO, 8 )
AM_RANGE(0x04, 0x04) AM_WRITE(ppmast93_port4_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ppmast93_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ppmast93_cpu2_map, AS_PROGRAM, 8, ppmast93_state )
AM_RANGE(0x0000, 0xfbff) AM_ROM AM_REGION("sub", 0x10000)
AM_RANGE(0xfc00, 0xfc00) AM_READ(soundlatch_r)
AM_RANGE(0xfd00, 0xffff) AM_RAM
@@ -216,7 +216,7 @@ static WRITE8_HANDLER(ppmast_sound_w)
}
}
-static ADDRESS_MAP_START( ppmast93_cpu2_io, AS_IO, 8 )
+static ADDRESS_MAP_START( ppmast93_cpu2_io, AS_IO, 8, ppmast93_state )
AM_RANGE(0x0000, 0xffff) AM_ROM AM_WRITE(ppmast_sound_w) AM_REGION("sub", 0x20000)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/prehisle.c b/src/mame/drivers/prehisle.c
index 0f81089bf3b..f2d8cfce3b5 100644
--- a/src/mame/drivers/prehisle.c
+++ b/src/mame/drivers/prehisle.c
@@ -25,7 +25,7 @@ static WRITE16_HANDLER( prehisle_sound16_w )
/*******************************************************************************/
-static ADDRESS_MAP_START( prehisle_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( prehisle_map, AS_PROGRAM, 16, prehisle_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x070000, 0x073fff) AM_RAM
AM_RANGE(0x090000, 0x0907ff) AM_RAM_WRITE(prehisle_fg_videoram16_w) AM_BASE_MEMBER(prehisle_state, m_videoram)
@@ -51,14 +51,14 @@ static WRITE8_DEVICE_HANDLER( D7759_upd_reset_w )
upd7759_reset_w(device, data & 0x80);
}
-static ADDRESS_MAP_START( prehisle_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( prehisle_sound_map, AS_PROGRAM, 8, prehisle_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_r)
AM_RANGE(0xf800, 0xf800) AM_WRITENOP // ???
ADDRESS_MAP_END
-static ADDRESS_MAP_START( prehisle_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( prehisle_sound_io_map, AS_IO, 8, prehisle_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("ymsnd", ym3812_status_port_r, ym3812_control_port_w)
AM_RANGE(0x20, 0x20) AM_DEVWRITE("ymsnd", ym3812_write_port_w)
diff --git a/src/mame/drivers/progolf.c b/src/mame/drivers/progolf.c
index 1be1e1eba3a..132aa660f8b 100644
--- a/src/mame/drivers/progolf.c
+++ b/src/mame/drivers/progolf.c
@@ -240,7 +240,7 @@ static WRITE8_HANDLER( progolf_videoram_w )
videoram[offset] = data;
}
-static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8, progolf_state )
AM_RANGE(0x0000, 0x5fff) AM_RAM
AM_RANGE(0x6000, 0x7fff) AM_RAM_WRITE(progolf_charram_w) AM_BASE_MEMBER(progolf_state, m_fbram)
AM_RANGE(0x8000, 0x8fff) AM_READWRITE(progolf_videoram_r,progolf_videoram_w)
@@ -256,7 +256,7 @@ static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8 )
AM_RANGE(0xb000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8, progolf_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x4000, 0x4fff) AM_DEVREADWRITE("ay1", ay8910_r, ay8910_data_w)
AM_RANGE(0x5000, 0x5fff) AM_DEVWRITE("ay1", ay8910_address_w)
diff --git a/src/mame/drivers/psattack.c b/src/mame/drivers/psattack.c
index afcf0bdba7a..c8a8fd13fb2 100644
--- a/src/mame/drivers/psattack.c
+++ b/src/mame/drivers/psattack.c
@@ -93,7 +93,7 @@ static READ32_HANDLER( psattack_unk_r )
return 0xffffffff;
}
-static ADDRESS_MAP_START( psattack_mem, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( psattack_mem, AS_PROGRAM, 32, psattack_state )
AM_RANGE(0x00000000, 0x001fffff) AM_ROM
AM_RANGE(0x01402204, 0x01402207) AM_READ(psattack_unk_r)
AM_RANGE(0x01402804, 0x01402807) AM_READ(psattack_unk_r)
diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c
index 042ad8e2c3e..3ebfb8ed6c3 100644
--- a/src/mame/drivers/psikyo.c
+++ b/src/mame/drivers/psikyo.c
@@ -317,7 +317,7 @@ static WRITE32_HANDLER( paletteram32_xRRRRRGGGGGBBBBB_dword_w )
paletteram16_xRRRRRGGGGGBBBBB_word_w(space, offset * 2 + 1, data, mem_mask);
}
-static ADDRESS_MAP_START( psikyo_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( psikyo_map, AS_PROGRAM, 32, psikyo_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM (not all used)
AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE_SIZE_MEMBER(psikyo_state, m_spriteram, m_spriteram_size) // Sprites, buffered by two frames (list buffered + fb buffered)
AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE_GENERIC(paletteram) // Palette
@@ -359,12 +359,12 @@ static WRITE32_HANDLER( s1945bl_oki_w )
printf("ACCESSING_BITS_0_7 ?? %08x %08x\n", data & 0x000000ff, mem_mask);
}
-static ADDRESS_MAP_START( s1945bl_oki_map, AS_0, 8 )
+static ADDRESS_MAP_START( s1945bl_oki_map, AS_0, 8, psikyo_state )
AM_RANGE(0x00000, 0x2ffff) AM_ROM
AM_RANGE(0x30000, 0x3ffff) AM_ROMBANK("okibank")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( psikyo_bootleg_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( psikyo_bootleg_map, AS_PROGRAM, 32, psikyo_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM (not all used)
AM_RANGE(0x200000, 0x200fff) AM_RAM AM_BASE_MEMBER(psikyo_state, m_bootleg_spritebuffer) // RAM (it copies the spritelist here, the HW probably doesn't have automatic buffering like the originals?
@@ -420,13 +420,13 @@ static WRITE8_HANDLER( sngkace_sound_bankswitch_w )
memory_set_bank(space->machine(), "bank1", data & 0x03);
}
-static ADDRESS_MAP_START( sngkace_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sngkace_sound_map, AS_PROGRAM, 8, psikyo_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM // ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM // RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // Banked ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sngkace_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sngkace_sound_io_map, AS_IO, 8, psikyo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
AM_RANGE(0x04, 0x04) AM_WRITE(sngkace_sound_bankswitch_w)
@@ -444,13 +444,13 @@ static WRITE8_HANDLER( gunbird_sound_bankswitch_w )
memory_set_bank(space->machine(), "bank1", (data >> 4) & 0x03);
}
-static ADDRESS_MAP_START( gunbird_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gunbird_sound_map, AS_PROGRAM, 8, psikyo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0x81ff) AM_RAM // RAM
AM_RANGE(0x8200, 0xffff) AM_ROMBANK("bank1") // Banked ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gunbird_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( gunbird_sound_io_map, AS_IO, 8, psikyo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(gunbird_sound_bankswitch_w)
AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
@@ -462,7 +462,7 @@ ADDRESS_MAP_END
Strikers 1945 / Tengai
***************************************************************************/
-static ADDRESS_MAP_START( s1945_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( s1945_sound_io_map, AS_IO, 8, psikyo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(gunbird_sound_bankswitch_w)
AM_RANGE(0x02, 0x03) AM_WRITENOP
diff --git a/src/mame/drivers/psikyo4.c b/src/mame/drivers/psikyo4.c
index 18f92398298..a779bfdde19 100644
--- a/src/mame/drivers/psikyo4.c
+++ b/src/mame/drivers/psikyo4.c
@@ -360,7 +360,7 @@ static WRITE32_HANDLER( hotgmck_pcm_bank_w )
set_hotgmck_pcm_bank(space->machine(), 1);
}
-static ADDRESS_MAP_START( ps4_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( ps4_map, AS_PROGRAM, 32, psikyo4_state )
AM_RANGE(0x00000000, 0x000fffff) AM_ROM // program ROM (1 meg)
AM_RANGE(0x02000000, 0x021fffff) AM_ROMBANK("bank1") // data ROM
AM_RANGE(0x03000000, 0x030037ff) AM_RAM AM_BASE_SIZE_MEMBER(psikyo4_state, m_spriteram, m_spriteram_size)
diff --git a/src/mame/drivers/psikyosh.c b/src/mame/drivers/psikyosh.c
index 4d027999902..4f52d7deab8 100644
--- a/src/mame/drivers/psikyosh.c
+++ b/src/mame/drivers/psikyosh.c
@@ -511,7 +511,7 @@ P1KEY11 29|30 P2KEY11
// ps3v1
-static ADDRESS_MAP_START( ps3v1_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( ps3v1_map, AS_PROGRAM, 32, psikyosh_state )
// rom mapping
AM_RANGE(0x00000000, 0x000fffff) AM_ROM // program ROM (1 meg)
AM_RANGE(0x02000000, 0x021fffff) AM_ROMBANK("bank1") // data ROM
@@ -535,7 +535,7 @@ static ADDRESS_MAP_START( ps3v1_map, AS_PROGRAM, 32 )
ADDRESS_MAP_END
// ps5, ps5v2
-static ADDRESS_MAP_START( ps5_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( ps5_map, AS_PROGRAM, 32, psikyosh_state )
// rom mapping
AM_RANGE(0x00000000, 0x000fffff) AM_ROM // program ROM (1 meg)
// inputs/eeprom
diff --git a/src/mame/drivers/psychic5.c b/src/mame/drivers/psychic5.c
index 3b6ea0cdc9d..71d32f959d2 100644
--- a/src/mame/drivers/psychic5.c
+++ b/src/mame/drivers/psychic5.c
@@ -409,7 +409,7 @@ static WRITE8_HANDLER( bombsa_flipscreen_w )
***************************************************************************/
-static ADDRESS_MAP_START( psychic5_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( psychic5_main_map, AS_PROGRAM, 8, psychic5_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_RAMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_READWRITE(psychic5_paged_ram_r, psychic5_paged_ram_w)
@@ -425,20 +425,20 @@ static ADDRESS_MAP_START( psychic5_main_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( psychic5_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( psychic5_sound_map, AS_PROGRAM, 8, psychic5_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( psychic5_soundport_map, AS_IO, 8 )
+static ADDRESS_MAP_START( psychic5_soundport_map, AS_IO, 8, psychic5_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("ym2", ym2203_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bombsa_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bombsa_main_map, AS_PROGRAM, 8, psychic5_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_RAMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM
@@ -457,14 +457,14 @@ static ADDRESS_MAP_START( bombsa_main_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_READWRITE(psychic5_paged_ram_r, bombsa_paged_ram_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bombsa_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bombsa_sound_map, AS_PROGRAM, 8, psychic5_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
AM_RANGE(0xf000, 0xf000) AM_WRITEONLY // Is this a confirm of some sort?
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bombsa_soundport_map, AS_IO, 8 )
+static ADDRESS_MAP_START( bombsa_soundport_map, AS_IO, 8, psychic5_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("ym2", ym2203_r, ym2203_w)
diff --git a/src/mame/drivers/pturn.c b/src/mame/drivers/pturn.c
index a0890f79d5f..5d453e6ef16 100644
--- a/src/mame/drivers/pturn.c
+++ b/src/mame/drivers/pturn.c
@@ -302,7 +302,7 @@ static READ8_HANDLER (pturn_custom_r)
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, pturn_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xcfff) AM_WRITENOP AM_READ(pturn_custom_r)
@@ -336,7 +336,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, pturn_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_r) AM_WRITE(nmi_sub_enable_w)
diff --git a/src/mame/drivers/puckpkmn.c b/src/mame/drivers/puckpkmn.c
index 5df59d2e361..40bc722d66d 100644
--- a/src/mame/drivers/puckpkmn.c
+++ b/src/mame/drivers/puckpkmn.c
@@ -126,7 +126,7 @@ static INPUT_PORTS_START( puckpkmn )
INPUT_PORTS_END
-static ADDRESS_MAP_START( puckpkmn_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( puckpkmn_map, AS_PROGRAM, 16, md_boot_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM /* Main 68k Program Roms */
AM_RANGE(0x700010, 0x700011) AM_READ_PORT("P2")
AM_RANGE(0x700012, 0x700013) AM_READ_PORT("P1")
@@ -158,7 +158,7 @@ static READ16_HANDLER(puckpkmna_4b2476_r)
return 0x3400;
}
-static ADDRESS_MAP_START( puckpkmna_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( puckpkmna_map, AS_PROGRAM, 16, md_boot_state )
AM_IMPORT_FROM( puckpkmn_map )
AM_RANGE(0x4b2476, 0x4b2477) AM_READ(puckpkmna_4b2476_r)
AM_RANGE(0x70001c, 0x70001d) AM_READ(puckpkmna_70001c_r)
diff --git a/src/mame/drivers/punchout.c b/src/mame/drivers/punchout.c
index dfddda07030..badc2bcdcdb 100644
--- a/src/mame/drivers/punchout.c
+++ b/src/mame/drivers/punchout.c
@@ -313,7 +313,7 @@ static WRITE8_HANDLER( spunchout_exp_w )
-static ADDRESS_MAP_START( punchout_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( punchout_map, AS_PROGRAM, 8, punchout_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xd000, 0xd7ff) AM_RAM
@@ -327,7 +327,7 @@ static ADDRESS_MAP_START( punchout_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( armwrest_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( armwrest_map, AS_PROGRAM, 8, punchout_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xd000, 0xd7ff) AM_RAM
@@ -348,7 +348,7 @@ static WRITE8_HANDLER( nmi_mask_w )
state->m_nmi_mask = data & 1;
}
-static ADDRESS_MAP_START( punchout_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( punchout_io_map, AS_IO, 8, punchout_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
@@ -371,7 +371,7 @@ static ADDRESS_MAP_START( punchout_io_map, AS_IO, 8 )
AM_RANGE(0x07, 0x07) AM_MIRROR(0xf0) AM_MASK(0xf0) AM_READWRITE(spunchout_exp_r, spunchout_exp_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( punchout_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( punchout_sound_map, AS_PROGRAM, 8, punchout_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x4016, 0x4016) AM_READ(soundlatch_r)
AM_RANGE(0x4017, 0x4017) AM_READ(soundlatch2_r)
diff --git a/src/mame/drivers/pushman.c b/src/mame/drivers/pushman.c
index 6ab91c8a211..2d2468e149f 100644
--- a/src/mame/drivers/pushman.c
+++ b/src/mame/drivers/pushman.c
@@ -149,7 +149,7 @@ static WRITE8_HANDLER( pushman_68000_w )
/******************************************************************************/
-static ADDRESS_MAP_START( pushman_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pushman_map, AS_PROGRAM, 16, pushman_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x060000, 0x060007) AM_READWRITE(pushman_68705_r, pushman_68705_w)
AM_RANGE(0xfe0800, 0xfe17ff) AM_RAM AM_BASE_MEMBER(pushman_state, m_spriteram)
@@ -163,25 +163,25 @@ static ADDRESS_MAP_START( pushman_map, AS_PROGRAM, 16 )
AM_RANGE(0xffc000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, pushman_state )
AM_RANGE(0x0000, 0x0007) AM_READWRITE(pushman_68000_r, pushman_68000_w)
AM_RANGE(0x0010, 0x007f) AM_RAM
AM_RANGE(0x0080, 0x0fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, pushman_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, pushman_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("ym2", ym2203_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bballs_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bballs_map, AS_PROGRAM, 16, pushman_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x00000, 0x1ffff) AM_ROM
AM_RANGE(0x60000, 0x60007) AM_READWRITE(bballs_68705_r, bballs_68705_w)
diff --git a/src/mame/drivers/pzletime.c b/src/mame/drivers/pzletime.c
index 238c3624954..06d20b54978 100644
--- a/src/mame/drivers/pzletime.c
+++ b/src/mame/drivers/pzletime.c
@@ -207,7 +207,7 @@ static CUSTOM_INPUT( ticket_status_r )
return (state->m_ticket && !(field.machine().primary_screen->frame_number() % 128));
}
-static ADDRESS_MAP_START( pzletime_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pzletime_map, AS_PROGRAM, 16, pzletime_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM
AM_RANGE(0x700000, 0x700005) AM_RAM_WRITE(video_regs_w) AM_BASE_MEMBER(pzletime_state, m_video_regs)
AM_RANGE(0x800000, 0x800001) AM_DEVREADWRITE8_MODERN("oki", okim6295_device, read, write, 0x00ff)
diff --git a/src/mame/drivers/qdrmfgp.c b/src/mame/drivers/qdrmfgp.c
index 0abdf869c3a..6269fdfc70e 100644
--- a/src/mame/drivers/qdrmfgp.c
+++ b/src/mame/drivers/qdrmfgp.c
@@ -339,7 +339,7 @@ static void gp2_ide_interrupt(device_t *device, int state)
*
*************************************/
-static ADDRESS_MAP_START( qdrmfgp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( qdrmfgp_map, AS_PROGRAM, 16, qdrmfgp_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE_MEMBER(qdrmfgp_state, m_workram) /* work ram */
AM_RANGE(0x180000, 0x183fff) AM_RAM AM_SHARE("nvram") /* backup ram */
@@ -362,7 +362,7 @@ static ADDRESS_MAP_START( qdrmfgp_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( qdrmfgp2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( qdrmfgp2_map, AS_PROGRAM, 16, qdrmfgp_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x110fff) AM_RAM AM_BASE_MEMBER(qdrmfgp_state, m_workram) /* work ram */
AM_RANGE(0x180000, 0x183fff) AM_RAM AM_SHARE("nvram") /* backup ram */
diff --git a/src/mame/drivers/qix.c b/src/mame/drivers/qix.c
index 68cc999b4cf..0d8b8e566da 100644
--- a/src/mame/drivers/qix.c
+++ b/src/mame/drivers/qix.c
@@ -238,7 +238,7 @@ Interrupts:
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, qix_state )
AM_RANGE(0x8000, 0x83ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x8400, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8bff) AM_READNOP /* 6850 ACIA */
@@ -252,7 +252,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( zoo_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( zoo_main_map, AS_PROGRAM, 8, qix_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x0400, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0bff) AM_READNOP /* ACIA */
@@ -273,7 +273,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, qix_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(qix_68705_portA_r, qix_68705_portA_w) AM_BASE_MEMBER(qix_state, m_68705_port_out)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(qix_68705_portB_r, qix_68705_portB_w)
diff --git a/src/mame/drivers/quakeat.c b/src/mame/drivers/quakeat.c
index 3a3d15eb725..b8a9e71b793 100644
--- a/src/mame/drivers/quakeat.c
+++ b/src/mame/drivers/quakeat.c
@@ -84,11 +84,11 @@ static SCREEN_UPDATE_IND16(quake)
return 0;
}
-static ADDRESS_MAP_START( quake_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( quake_map, AS_PROGRAM, 32, quakeat_state )
AM_RANGE(0x00000000, 0x0000ffff) AM_ROM AM_REGION("pc_bios", 0) /* BIOS */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( quake_io, AS_IO, 32 )
+static ADDRESS_MAP_START( quake_io, AS_IO, 32, quakeat_state )
// AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", dma8237_r, dma8237_w, 0xffffffff)
AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
// AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8("pit8254", pit8253_r, pit8253_w, 0xffffffff)
diff --git a/src/mame/drivers/quantum.c b/src/mame/drivers/quantum.c
index 5e36c15858e..8b8d09e38ce 100644
--- a/src/mame/drivers/quantum.c
+++ b/src/mame/drivers/quantum.c
@@ -123,7 +123,7 @@ static WRITE16_HANDLER( led_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, quantum_state )
AM_RANGE(0x000000, 0x013fff) AM_ROM
AM_RANGE(0x018000, 0x01cfff) AM_RAM
AM_RANGE(0x800000, 0x801fff) AM_RAM AM_BASE((UINT16 **)&avgdvg_vectorram) AM_SIZE(&avgdvg_vectorram_size)
diff --git a/src/mame/drivers/quasar.c b/src/mame/drivers/quasar.c
index 35f0762fb83..7907c4736c7 100644
--- a/src/mame/drivers/quasar.c
+++ b/src/mame/drivers/quasar.c
@@ -114,7 +114,7 @@ static READ8_HANDLER( audio_t1_r )
// memory map taken from the manual
-static ADDRESS_MAP_START( quasar, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( quasar, AS_PROGRAM, 8, quasar_state )
AM_RANGE(0x0000, 0x13ff) AM_ROM
AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_READWRITE(cvs_bullet_ram_or_palette_r, quasar_bullet_w) AM_BASE_MEMBER(quasar_state, m_bullet_ram)
AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_READWRITE(cvs_s2636_0_or_character_ram_r, cvs_s2636_0_or_character_ram_w)
@@ -127,7 +127,7 @@ static ADDRESS_MAP_START( quasar, AS_PROGRAM, 8 )
AM_RANGE(0x6000, 0x73ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( quasar_io, AS_IO, 8 )
+static ADDRESS_MAP_START( quasar_io, AS_IO, 8, quasar_state )
AM_RANGE(0x00, 0x03) AM_READWRITE(quasar_IO_r, video_page_select_w)
AM_RANGE(0x08, 0x0b) AM_WRITE(io_page_select_w)
AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE(cvs_collision_clear, quasar_sh_command_w)
@@ -142,11 +142,11 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, quasar_state )
AM_RANGE(0x0000, 0x07ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, quasar_state )
AM_RANGE(0x00, 0x7f) AM_RAM
AM_RANGE(0x80, 0x80) AM_READ(quasar_sh_command_r)
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(audio_t1_r)
diff --git a/src/mame/drivers/quizdna.c b/src/mame/drivers/quizdna.c
index be7f18f0528..152c14ab639 100644
--- a/src/mame/drivers/quizdna.c
+++ b/src/mame/drivers/quizdna.c
@@ -30,7 +30,7 @@ static WRITE8_HANDLER( gekiretu_rombank_w )
/****************************************************************************/
-static ADDRESS_MAP_START( quizdna_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( quizdna_map, AS_PROGRAM, 8, quizdna_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x9fff) AM_WRITE(quizdna_fg_ram_w)
@@ -41,7 +41,7 @@ static ADDRESS_MAP_START( quizdna_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM_WRITE(paletteram_xBGR_RRRR_GGGG_BBBB_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gekiretu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gekiretu_map, AS_PROGRAM, 8, quizdna_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x9fff) AM_WRITE(quizdna_fg_ram_w)
@@ -52,7 +52,7 @@ static ADDRESS_MAP_START( gekiretu_map, AS_PROGRAM, 8 )
AM_RANGE(0xf200, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( quizdna_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( quizdna_io_map, AS_IO, 8, quizdna_state )
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)
@@ -67,7 +67,7 @@ static ADDRESS_MAP_START( quizdna_io_map, AS_IO, 8 )
AM_RANGE(0xf0, 0xf0) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gakupara_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( gakupara_io_map, AS_IO, 8, quizdna_state )
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)
@@ -82,7 +82,7 @@ static ADDRESS_MAP_START( gakupara_io_map, AS_IO, 8 )
AM_RANGE(0xf0, 0xf0) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gekiretu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( gekiretu_io_map, AS_IO, 8, quizdna_state )
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)
diff --git a/src/mame/drivers/quizo.c b/src/mame/drivers/quizo.c
index 7d93fee96da..231f4458286 100644
--- a/src/mame/drivers/quizo.c
+++ b/src/mame/drivers/quizo.c
@@ -131,7 +131,7 @@ static WRITE8_HANDLER(port60_w)
memory_set_bankptr(space->machine(), "bank1", &space->machine().region("user1")->base()[rombankLookup[data]*0x4000] );
}
-static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, quizo_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
@@ -139,7 +139,7 @@ static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( portmap, AS_IO, 8, quizo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x10, 0x10) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/quizpani.c b/src/mame/drivers/quizpani.c
index 4e668b3678b..1ffef11db3f 100644
--- a/src/mame/drivers/quizpani.c
+++ b/src/mame/drivers/quizpani.c
@@ -51,7 +51,7 @@ Stephh's notes (based on the games M68000 code and some tests) :
#include "sound/okim6295.h"
#include "includes/quizpani.h"
-static ADDRESS_MAP_START( quizpani_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( quizpani_map, AS_PROGRAM, 16, quizpani_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x100002, 0x100003) AM_READ_PORT("P1_P2")
diff --git a/src/mame/drivers/quizpun2.c b/src/mame/drivers/quizpun2.c
index 8c6e6b25249..08491007288 100644
--- a/src/mame/drivers/quizpun2.c
+++ b/src/mame/drivers/quizpun2.c
@@ -353,7 +353,7 @@ static WRITE8_HANDLER( quizpun2_soundlatch_w )
cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
-static ADDRESS_MAP_START( quizpun2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( quizpun2_map, AS_PROGRAM, 8, quizpun2_state )
AM_RANGE( 0x0000, 0x7fff ) AM_ROM
AM_RANGE( 0x8000, 0x9fff ) AM_ROMBANK("bank1")
@@ -365,7 +365,7 @@ static ADDRESS_MAP_START( quizpun2_map, AS_PROGRAM, 8 )
AM_RANGE( 0xe000, 0xffff ) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( quizpun2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( quizpun2_io_map, AS_IO, 8, quizpun2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x40, 0x40 ) AM_WRITE( quizpun2_irq_ack )
AM_RANGE( 0x50, 0x50 ) AM_WRITE( quizpun2_soundlatch_w )
@@ -381,12 +381,12 @@ ADDRESS_MAP_END
Memory Maps - Sound CPU
***************************************************************************/
-static ADDRESS_MAP_START( quizpun2_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( quizpun2_sound_map, AS_PROGRAM, 8, quizpun2_state )
AM_RANGE( 0x0000, 0xf7ff ) AM_ROM
AM_RANGE( 0xf800, 0xffff ) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( quizpun2_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( quizpun2_sound_io_map, AS_IO, 8, quizpun2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_WRITENOP // IRQ end
AM_RANGE( 0x20, 0x20 ) AM_WRITENOP // NMI end
diff --git a/src/mame/drivers/quizshow.c b/src/mame/drivers/quizshow.c
index 06c75103db6..702e17d5a4b 100644
--- a/src/mame/drivers/quizshow.c
+++ b/src/mame/drivers/quizshow.c
@@ -196,7 +196,7 @@ static WRITE8_HANDLER(quizshow_main_ram_w)
}
-static ADDRESS_MAP_START( quizshow_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( quizshow_mem_map, AS_PROGRAM, 8, quizshow_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x0bff) AM_ROM
AM_RANGE(0x1802, 0x1802) AM_WRITE(quizshow_audio_w)
@@ -213,7 +213,7 @@ static ADDRESS_MAP_START( quizshow_mem_map, AS_PROGRAM, 8 )
AM_RANGE(0x1e00, 0x1fff) AM_RAM_WRITE(quizshow_main_ram_w) AM_BASE_MEMBER(quizshow_state, m_main_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( quizshow_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( quizshow_io_map, AS_IO, 8, quizshow_state )
ADDRESS_MAP_UNMAP_HIGH
// AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_NOP // unused
// AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_NOP // unused
diff --git a/src/mame/drivers/r2dtank.c b/src/mame/drivers/r2dtank.c
index bb8dfbe137e..15bfb89bbfe 100644
--- a/src/mame/drivers/r2dtank.c
+++ b/src/mame/drivers/r2dtank.c
@@ -410,7 +410,7 @@ static WRITE8_DEVICE_HANDLER( pia_comp_w )
}
-static ADDRESS_MAP_START( r2dtank_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( r2dtank_main_map, AS_PROGRAM, 8, r2dtank_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_MEMBER(r2dtank_state, m_videoram)
AM_RANGE(0x2000, 0x3fff) AM_RAM
AM_RANGE(0x4000, 0x5fff) AM_RAM AM_BASE_MEMBER(r2dtank_state, m_colorram)
@@ -424,7 +424,7 @@ static ADDRESS_MAP_START( r2dtank_main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( r2dtank_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( r2dtank_audio_map, AS_PROGRAM, 8, r2dtank_state )
AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */
AM_RANGE(0xd000, 0xd003) AM_DEVREADWRITE_MODERN("pia_audio", pia6821_device, read, write)
AM_RANGE(0xf000, 0xf000) AM_READWRITE(audio_command_r, audio_answer_w)
diff --git a/src/mame/drivers/r2dx_v33.c b/src/mame/drivers/r2dx_v33.c
index bf160219200..77a1eaba58c 100644
--- a/src/mame/drivers/r2dx_v33.c
+++ b/src/mame/drivers/r2dx_v33.c
@@ -348,7 +348,7 @@ static WRITE16_HANDLER( mcu_table2_w )
}
-static ADDRESS_MAP_START( rdx_v33_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rdx_v33_map, AS_PROGRAM, 16, r2dx_v33_state )
AM_RANGE(0x00000, 0x003ff) AM_RAM // vectors copied here
AM_RANGE(0x00400, 0x00407) AM_WRITE(mcu_table_w)
@@ -425,7 +425,7 @@ static WRITE16_HANDLER( nzerotea_sound_comms_w )
}
}
-static ADDRESS_MAP_START( nzerotea_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( nzerotea_map, AS_PROGRAM, 16, r2dx_v33_state )
AM_RANGE(0x00000, 0x003ff) AM_RAM //stack area
/* results from cop? */
diff --git a/src/mame/drivers/rabbit.c b/src/mame/drivers/rabbit.c
index 472539af89e..22e5d26fcfa 100644
--- a/src/mame/drivers/rabbit.c
+++ b/src/mame/drivers/rabbit.c
@@ -732,7 +732,7 @@ static WRITE32_DEVICE_HANDLER( rabbit_eeprom_write )
}
}
-static ADDRESS_MAP_START( rabbit_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( rabbit_map, AS_PROGRAM, 32, rabbit_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x000000, 0x000003) AM_WRITENOP // bug in code / emulation?
AM_RANGE(0x000010, 0x000013) AM_WRITENOP // bug in code / emulation?
diff --git a/src/mame/drivers/raiden.c b/src/mame/drivers/raiden.c
index e02ad9346af..c63a2e9c15a 100644
--- a/src/mame/drivers/raiden.c
+++ b/src/mame/drivers/raiden.c
@@ -46,7 +46,7 @@
/******************************************************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, raiden_state )
AM_RANGE(0x00000, 0x06fff) AM_RAM
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x0a000, 0x0afff) AM_RAM AM_SHARE("share1") AM_BASE_MEMBER(raiden_state, m_shared_ram)
@@ -59,7 +59,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0xa0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16, raiden_state )
AM_RANGE(0x00000, 0x01fff) AM_RAM
AM_RANGE(0x02000, 0x027ff) AM_RAM_WRITE(raiden_background_w) AM_BASE_MEMBER(raiden_state, m_back_data)
AM_RANGE(0x02800, 0x02fff) AM_RAM_WRITE(raiden_foreground_w) AM_BASE_MEMBER(raiden_state, m_fore_data)
@@ -71,7 +71,7 @@ ADDRESS_MAP_END
/************************* Alternate board set ************************/
-static ADDRESS_MAP_START( alt_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( alt_main_map, AS_PROGRAM, 16, raiden_state )
AM_RANGE(0x00000, 0x06fff) AM_RAM
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x08000, 0x08fff) AM_RAM AM_SHARE("share1") AM_BASE_MEMBER(raiden_state, m_shared_ram)
@@ -86,7 +86,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( raidenu_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( raidenu_main_map, AS_PROGRAM, 16, raiden_state )
AM_RANGE(0x00000, 0x06fff) AM_RAM
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x08000, 0x08035) AM_WRITEONLY AM_BASE_MEMBER(raiden_state, m_scroll_ram)
@@ -100,7 +100,7 @@ static ADDRESS_MAP_START( raidenu_main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( raidenu_sub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( raidenu_sub_map, AS_PROGRAM, 16, raiden_state )
AM_RANGE(0x00000, 0x05fff) AM_RAM
AM_RANGE(0x06000, 0x067ff) AM_RAM_WRITE(raiden_background_w) AM_BASE_MEMBER(raiden_state, m_back_data)
AM_RANGE(0x06800, 0x06fff) AM_RAM_WRITE(raiden_foreground_w) AM_BASE_MEMBER(raiden_state, m_fore_data)
diff --git a/src/mame/drivers/rainbow.c b/src/mame/drivers/rainbow.c
index 12f3cdb50bf..c8f43ef8c96 100644
--- a/src/mame/drivers/rainbow.c
+++ b/src/mame/drivers/rainbow.c
@@ -345,7 +345,7 @@ static WRITE16_HANDLER( jumping_sound_w )
MEMORY STRUCTURES
***************************************************************************/
-static ADDRESS_MAP_START( rbisland_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rbisland_map, AS_PROGRAM, 16, rbisland_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x10c000, 0x10ffff) AM_RAM /* main RAM */
AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
@@ -366,7 +366,7 @@ static ADDRESS_MAP_START( rbisland_map, AS_PROGRAM, 16 )
AM_RANGE(0xd00000, 0xd03fff) AM_DEVREADWRITE("pc090oj", pc090oj_word_r, pc090oj_word_w) /* sprite ram + other stuff */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jumping_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( jumping_map, AS_PROGRAM, 16, rbisland_state )
AM_RANGE(0x000000, 0x09ffff) AM_ROM
AM_RANGE(0x10c000, 0x10ffff) AM_RAM /* main RAM */
AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
@@ -408,7 +408,7 @@ static READ8_HANDLER( jumping_latch_r )
}
-static ADDRESS_MAP_START( rbisland_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rbisland_sound_map, AS_PROGRAM, 8, rbisland_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x8fff) AM_RAM
@@ -418,7 +418,7 @@ static ADDRESS_MAP_START( rbisland_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xa001, 0xa001) AM_DEVREADWRITE("tc0140syt", tc0140syt_slave_comm_r, tc0140syt_slave_comm_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jumping_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jumping_sound_map, AS_PROGRAM, 8, rbisland_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0xb000, 0xb001) AM_DEVREADWRITE("ym1", ym2203_r,ym2203_w)
diff --git a/src/mame/drivers/rallyx.c b/src/mame/drivers/rallyx.c
index feaac3cda8c..a720032cbc4 100644
--- a/src/mame/drivers/rallyx.c
+++ b/src/mame/drivers/rallyx.c
@@ -317,7 +317,7 @@ static WRITE8_HANDLER( locomotn_latch_w )
*
*************************************/
-static ADDRESS_MAP_START( rallyx_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rallyx_map, AS_PROGRAM, 8, rallyx_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(rallyx_videoram_w) AM_BASE_MEMBER(rallyx_state, m_videoram)
AM_RANGE(0x9800, 0x9fff) AM_RAM
@@ -333,13 +333,13 @@ static ADDRESS_MAP_START( rallyx_map, AS_PROGRAM, 8 )
AM_RANGE(0xa180, 0xa187) AM_WRITE(rallyx_latch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, rallyx_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0, 0) AM_WRITE(rallyx_interrupt_vector_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jungler_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jungler_map, AS_PROGRAM, 8, rallyx_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(rallyx_videoram_w) AM_BASE_MEMBER(rallyx_state, m_videoram)
AM_RANGE(0x9800, 0x9fff) AM_RAM
diff --git a/src/mame/drivers/rampart.c b/src/mame/drivers/rampart.c
index 1d80338473d..2e5207c5c7d 100644
--- a/src/mame/drivers/rampart.c
+++ b/src/mame/drivers/rampart.c
@@ -133,7 +133,7 @@ static WRITE16_HANDLER( latch_w )
*************************************/
/* full memory map deduced from schematics and GALs */
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, rampart_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fffff)
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x140000, 0x147fff) AM_MIRROR(0x438000) AM_ROM /* slapstic goes here */
diff --git a/src/mame/drivers/rastan.c b/src/mame/drivers/rastan.c
index 1087c905aca..6fa20632416 100644
--- a/src/mame/drivers/rastan.c
+++ b/src/mame/drivers/rastan.c
@@ -208,7 +208,7 @@ static WRITE8_DEVICE_HANDLER( rastan_msm5205_stop_w )
-static ADDRESS_MAP_START( rastan_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rastan_map, AS_PROGRAM, 16, rastan_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x10c000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
@@ -231,7 +231,7 @@ static ADDRESS_MAP_START( rastan_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rastan_s_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rastan_s_map, AS_PROGRAM, 8, rastan_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x8fff) AM_RAM
diff --git a/src/mame/drivers/rbmk.c b/src/mame/drivers/rbmk.c
index 4d8bc0ad749..3b6a623b513 100644
--- a/src/mame/drivers/rbmk.c
+++ b/src/mame/drivers/rbmk.c
@@ -106,7 +106,7 @@ static WRITE16_DEVICE_HANDLER( eeprom_w )
}
-static ADDRESS_MAP_START( rbmk_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rbmk_mem, AS_PROGRAM, 16, rbmk_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x500000, 0x50ffff) AM_RAM
@@ -124,7 +124,7 @@ static ADDRESS_MAP_START( rbmk_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rbmk_mcu_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rbmk_mcu_mem, AS_PROGRAM, 8, rbmk_state )
// AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
@@ -166,7 +166,7 @@ static WRITE8_HANDLER( mcu_io_mux_w )
state->m_mux_data = ~data;
}
-static ADDRESS_MAP_START( rbmk_mcu_io, AS_IO, 8 )
+static ADDRESS_MAP_START( rbmk_mcu_io, AS_IO, 8, rbmk_state )
AM_RANGE(0x0ff00, 0x0ffff) AM_READWRITE( rbmk_mcu_io_r, rbmk_mcu_io_w )
AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_WRITE( mcu_io_mux_w )
diff --git a/src/mame/drivers/re900.c b/src/mame/drivers/re900.c
index 89e1653cf78..363ec7078f5 100644
--- a/src/mame/drivers/re900.c
+++ b/src/mame/drivers/re900.c
@@ -221,11 +221,11 @@ static WRITE8_HANDLER(re900_watchdog_reset_w)
* Memory Map Information *
*******************************/
-static ADDRESS_MAP_START( mem_prg, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mem_prg, AS_PROGRAM, 8, re900_state )
AM_RANGE(0x0000, 0xffff) AM_ROM AM_BASE_MEMBER(re900_state, m_rom)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mem_io, AS_IO, 8 )
+static ADDRESS_MAP_START( mem_io, AS_IO, 8, re900_state )
AM_RANGE(0x0000, 0xbfff) AM_READ (rom_r)
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE_MODERN("tms9128", tms9928a_device, vram_write)
diff --git a/src/mame/drivers/realbrk.c b/src/mame/drivers/realbrk.c
index 9d8279d7477..f8349f892c3 100644
--- a/src/mame/drivers/realbrk.c
+++ b/src/mame/drivers/realbrk.c
@@ -157,7 +157,7 @@ static WRITE16_HANDLER( backup_ram_w )
***************************************************************************/
/*Basic memory map for this HW*/
-static ADDRESS_MAP_START( base_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( base_mem, AS_PROGRAM, 16, realbrk_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_BASE_MEMBER(realbrk_state, m_spriteram) // Sprites
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram ) // Palette
@@ -172,7 +172,7 @@ static ADDRESS_MAP_START( base_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
/*realbrk specific memory map*/
-static ADDRESS_MAP_START( realbrk_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( realbrk_mem, AS_PROGRAM, 16, realbrk_state )
AM_IMPORT_FROM(base_mem)
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8("ymsnd", ym2413_w, 0x00ff) //
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") // P1 & P2 (Inputs)
@@ -183,7 +183,7 @@ static ADDRESS_MAP_START( realbrk_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
/*pkgnsh specific memory map*/
-static ADDRESS_MAP_START( pkgnsh_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pkgnsh_mem, AS_PROGRAM, 16, realbrk_state )
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8("ymsnd", ym2413_w, 0xff00 ) // YM2413
AM_RANGE(0xc00000, 0xc00013) AM_READ(pkgnsh_input_r ) // P1 & P2 (Inputs)
AM_RANGE(0xff0000, 0xfffbff) AM_READWRITE(backup_ram_r,backup_ram_w) AM_BASE_MEMBER(realbrk_state, m_backup_ram) // RAM
@@ -191,7 +191,7 @@ static ADDRESS_MAP_START( pkgnsh_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
/*pkgnshdx specific memory map*/
-static ADDRESS_MAP_START( pkgnshdx_mem, AS_PROGRAM, 16)
+static ADDRESS_MAP_START( pkgnshdx_mem, AS_PROGRAM, 16, realbrk_state )
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8("ymsnd", ym2413_w, 0x00ff) //
AM_RANGE(0xc00000, 0xc00013) AM_READ(pkgnshdx_input_r ) // P1 & P2 (Inputs)
AM_RANGE(0xc00004, 0xc00005) AM_WRITEONLY AM_BASE_MEMBER(realbrk_state, m_dsw_select) // DSW select
@@ -200,7 +200,7 @@ static ADDRESS_MAP_START( pkgnshdx_mem, AS_PROGRAM, 16)
ADDRESS_MAP_END
/*dai2kaku specific memory map*/
-static ADDRESS_MAP_START( dai2kaku_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dai2kaku_mem, AS_PROGRAM, 16, realbrk_state )
AM_RANGE(0x605000, 0x6053ff) AM_RAM AM_BASE_MEMBER(realbrk_state, m_vram_0ras) // rasterinfo (0)
AM_RANGE(0x605400, 0x6057ff) AM_RAM AM_BASE_MEMBER(realbrk_state, m_vram_1ras) // rasterinfo (1)
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8("ymsnd", ym2413_w, 0x00ff) //
diff --git a/src/mame/drivers/redalert.c b/src/mame/drivers/redalert.c
index ef4e383004c..a2b8c831115 100644
--- a/src/mame/drivers/redalert.c
+++ b/src/mame/drivers/redalert.c
@@ -150,7 +150,7 @@ static READ8_HANDLER( panther_unk_r )
*
*************************************/
-static ADDRESS_MAP_START( redalert_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( redalert_main_map, AS_PROGRAM, 8, redalert_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_RAM_WRITE(redalert_bitmap_videoram_w) AM_BASE_MEMBER(redalert_state, m_bitmap_videoram)
AM_RANGE(0x4000, 0x4fff) AM_RAM AM_BASE_MEMBER(redalert_state, m_charmap_videoram)
@@ -166,7 +166,7 @@ static ADDRESS_MAP_START( redalert_main_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("maincpu", 0x8000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ww3_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ww3_main_map, AS_PROGRAM, 8, redalert_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_RAM_WRITE(redalert_bitmap_videoram_w) AM_BASE_MEMBER(redalert_state, m_bitmap_videoram)
AM_RANGE(0x4000, 0x4fff) AM_RAM AM_BASE_MEMBER(redalert_state, m_charmap_videoram)
@@ -181,7 +181,7 @@ static ADDRESS_MAP_START( ww3_main_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("maincpu", 0x8000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( panther_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( panther_main_map, AS_PROGRAM, 8, redalert_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_RAM_WRITE(redalert_bitmap_videoram_w) AM_BASE_MEMBER(redalert_state, m_bitmap_videoram)
AM_RANGE(0x4000, 0x4fff) AM_RAM AM_BASE_MEMBER(redalert_state, m_charmap_videoram)
@@ -196,7 +196,7 @@ static ADDRESS_MAP_START( panther_main_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("maincpu", 0x8000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( demoneye_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( demoneye_main_map, AS_PROGRAM, 8, redalert_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_RAM_WRITE(redalert_bitmap_videoram_w) AM_BASE_MEMBER(redalert_state, m_bitmap_videoram)
AM_RANGE(0x4000, 0x5fff) AM_RAM AM_BASE_MEMBER(redalert_state, m_charmap_videoram)
diff --git a/src/mame/drivers/redclash.c b/src/mame/drivers/redclash.c
index 5d75c95b751..7ed4396ad0e 100644
--- a/src/mame/drivers/redclash.c
+++ b/src/mame/drivers/redclash.c
@@ -31,7 +31,7 @@ static WRITE8_HANDLER( irqack_w )
device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
}
-static ADDRESS_MAP_START( zerohour_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( zerohour_map, AS_PROGRAM, 8, ladybug_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x3000, 0x37ff) AM_RAM
AM_RANGE(0x3800, 0x3bff) AM_RAM AM_BASE_SIZE_MEMBER(ladybug_state, m_spriteram, m_spriteram_size)
@@ -50,7 +50,7 @@ static ADDRESS_MAP_START( zerohour_map, AS_PROGRAM, 8 )
AM_RANGE(0x7800, 0x7800) AM_WRITE(irqack_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( redclash_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( redclash_map, AS_PROGRAM, 8, ladybug_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
// AM_RANGE(0x3000, 0x3000) AM_WRITENOP
// AM_RANGE(0x3800, 0x3800) AM_WRITENOP
diff --git a/src/mame/drivers/relief.c b/src/mame/drivers/relief.c
index d8a7324f2a8..c31e90e0f06 100644
--- a/src/mame/drivers/relief.c
+++ b/src/mame/drivers/relief.c
@@ -146,7 +146,7 @@ static WRITE16_HANDLER( audio_volume_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, relief_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x3fffff)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
diff --git a/src/mame/drivers/renegade.c b/src/mame/drivers/renegade.c
index ebd9d76ad4b..1a0747a59b6 100644
--- a/src/mame/drivers/renegade.c
+++ b/src/mame/drivers/renegade.c
@@ -656,7 +656,7 @@ static WRITE8_HANDLER( renegade_coin_counter_w )
/********************************************************************************************/
-static ADDRESS_MAP_START( renegade_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( renegade_map, AS_PROGRAM, 8, renegade_state )
AM_RANGE(0x0000, 0x17ff) AM_RAM
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(renegade_videoram2_w) AM_BASE_MEMBER(renegade_state, m_videoram2)
AM_RANGE(0x2000, 0x27ff) AM_RAM AM_BASE_MEMBER(renegade_state, m_spriteram)
@@ -675,7 +675,7 @@ static ADDRESS_MAP_START( renegade_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( renegade_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( renegade_sound_map, AS_PROGRAM, 8, renegade_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_READ(soundlatch_r)
AM_RANGE(0x1800, 0x1800) AM_WRITENOP // this gets written the same values as 0x2000
@@ -685,7 +685,7 @@ static ADDRESS_MAP_START( renegade_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( renegade_mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( renegade_mcu_map, AS_PROGRAM, 8, renegade_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(renegade_68705_port_a_r, renegade_68705_port_a_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(renegade_68705_port_b_r, renegade_68705_port_b_w)
diff --git a/src/mame/drivers/retofinv.c b/src/mame/drivers/retofinv.c
index ec38432e666..89eda2f39bc 100644
--- a/src/mame/drivers/retofinv.c
+++ b/src/mame/drivers/retofinv.c
@@ -98,7 +98,7 @@ static WRITE8_HANDLER( coinlockout_w )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, retofinv_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x7fff, 0x7fff) AM_WRITE(coincounter_w)
AM_RANGE(0x7b00, 0x7bff) AM_ROM /* space for diagnostic ROM? The code looks */
@@ -128,7 +128,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xf800) AM_READ(cpu0_mf800_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, retofinv_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(retofinv_fg_videoram_w) AM_SHARE("share2")
AM_RANGE(0x8800, 0x9fff) AM_RAM AM_SHARE("share1")
@@ -136,7 +136,7 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
AM_RANGE(0xc804, 0xc804) AM_WRITE(irq1_ack_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, retofinv_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_READ(soundlatch_r)
@@ -146,7 +146,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_ROM /* space for diagnostic ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, retofinv_state )
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)
diff --git a/src/mame/drivers/rgum.c b/src/mame/drivers/rgum.c
index fd650c222ba..948f4e1f4da 100644
--- a/src/mame/drivers/rgum.c
+++ b/src/mame/drivers/rgum.c
@@ -58,7 +58,7 @@ static SCREEN_UPDATE_IND16(royalgum)
return 0;
}
-static ADDRESS_MAP_START( rgum_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rgum_map, AS_PROGRAM, 8, rgum_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM //not all of it?
AM_RANGE(0x0800, 0x0800) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
diff --git a/src/mame/drivers/rltennis.c b/src/mame/drivers/rltennis.c
index 05e481461ac..1bb6c834cc4 100644
--- a/src/mame/drivers/rltennis.c
+++ b/src/mame/drivers/rltennis.c
@@ -88,7 +88,7 @@ static WRITE16_HANDLER(rlt_snd2_w)
COMBINE_DATA(&state->m_data740000);
}
-static ADDRESS_MAP_START( rltennis_main, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rltennis_main, AS_PROGRAM, 16, rltennis_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x200000, 0x20ffff) AM_RAM
@@ -177,7 +177,7 @@ static MACHINE_RESET( rltennis )
state->m_timer->adjust(attotime::from_hz(RLT_TIMER_FREQ));
}
-static ADDRESS_MAP_START( ramdac_map, AS_0, 8 )
+static ADDRESS_MAP_START( ramdac_map, AS_0, 8, rltennis_state )
AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE_MODERN("ramdac",ramdac_device,ramdac_pal_r,ramdac_rgb888_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/rmhaihai.c b/src/mame/drivers/rmhaihai.c
index 9f56f1816ff..b99bf280d65 100644
--- a/src/mame/drivers/rmhaihai.c
+++ b/src/mame/drivers/rmhaihai.c
@@ -191,7 +191,7 @@ static MACHINE_RESET( themj )
-static ADDRESS_MAP_START( rmhaihai_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rmhaihai_map, AS_PROGRAM, 8, rmhaihai_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa7ff) AM_RAM
AM_RANGE(0xa800, 0xafff) AM_RAM_WRITE(rmhaihai_colorram_w) AM_BASE_MEMBER(rmhaihai_state, m_colorram)
@@ -202,7 +202,7 @@ static ADDRESS_MAP_START( rmhaihai_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_ROM /* rmhaisei only */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rmhaihai_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( rmhaihai_io_map, AS_IO, 8, rmhaihai_state )
AM_RANGE(0x0000, 0x7fff) AM_READ(samples_r)
AM_RANGE(0x8000, 0x8000) AM_READ(keyboard_r) AM_WRITENOP // ??
AM_RANGE(0x8001, 0x8001) AM_READNOP AM_WRITE(keyboard_w) // ??
@@ -215,7 +215,7 @@ static ADDRESS_MAP_START( rmhaihai_io_map, AS_IO, 8 )
AM_RANGE(0xbc0c, 0xbc0c) AM_WRITENOP // ??
ADDRESS_MAP_END
-static ADDRESS_MAP_START( themj_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( themj_map, AS_PROGRAM, 8, rmhaihai_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xa7ff) AM_RAM
@@ -225,7 +225,7 @@ static ADDRESS_MAP_START( themj_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( themj_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( themj_io_map, AS_IO, 8, rmhaihai_state )
AM_RANGE(0x0000, 0x7fff) AM_READ(samples_r)
AM_RANGE(0x8000, 0x8000) AM_READ(keyboard_r) AM_WRITENOP // ??
AM_RANGE(0x8001, 0x8001) AM_READNOP AM_WRITE(keyboard_w) // ??
diff --git a/src/mame/drivers/rockrage.c b/src/mame/drivers/rockrage.c
index 4f5af606adc..60fa86a9d58 100644
--- a/src/mame/drivers/rockrage.c
+++ b/src/mame/drivers/rockrage.c
@@ -95,7 +95,7 @@ static WRITE8_DEVICE_HANDLER( rockrage_speech_w )
vlm5030_st(device, (data >> 0) & 0x01);
}
-static ADDRESS_MAP_START( rockrage_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rockrage_map, AS_PROGRAM, 8, rockrage_state )
AM_RANGE(0x0000, 0x1fff) AM_DEVREADWRITE("k007342", k007342_r, k007342_w) /* Color RAM + Video RAM */
AM_RANGE(0x2000, 0x21ff) AM_DEVREADWRITE("k007420", k007420_r, k007420_w) /* Sprite RAM */
AM_RANGE(0x2200, 0x23ff) AM_DEVREADWRITE("k007342", k007342_scroll_r, k007342_scroll_w) /* Scroll RAM */
@@ -115,7 +115,7 @@ static ADDRESS_MAP_START( rockrage_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rockrage_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rockrage_sound_map, AS_PROGRAM, 8, rockrage_state )
AM_RANGE(0x2000, 0x2000) AM_DEVWRITE("vlm", vlm5030_data_w) /* VLM5030 */
AM_RANGE(0x3000, 0x3000) AM_DEVREAD("vlm", rockrage_VLM5030_busy_r) /* VLM5030 */
AM_RANGE(0x4000, 0x4000) AM_DEVWRITE("vlm", rockrage_speech_w) /* VLM5030 */
diff --git a/src/mame/drivers/rocnrope.c b/src/mame/drivers/rocnrope.c
index cb09ea3ad2c..d8c828236ee 100644
--- a/src/mame/drivers/rocnrope.c
+++ b/src/mame/drivers/rocnrope.c
@@ -43,7 +43,7 @@ static WRITE8_HANDLER( irq_mask_w )
*
*************************************/
-static ADDRESS_MAP_START( rocnrope_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rocnrope_map, AS_PROGRAM, 8, rocnrope_state )
AM_RANGE(0x3080, 0x3080) AM_READ_PORT("SYSTEM")
AM_RANGE(0x3081, 0x3081) AM_READ_PORT("P1")
AM_RANGE(0x3082, 0x3082) AM_READ_PORT("P2")
diff --git a/src/mame/drivers/rohga.c b/src/mame/drivers/rohga.c
index 86999bdcdf4..2c303470d9e 100644
--- a/src/mame/drivers/rohga.c
+++ b/src/mame/drivers/rohga.c
@@ -134,7 +134,7 @@ static WRITE16_HANDLER( wizdfire_irq_ack_w )
/**********************************************************************************/
-static ADDRESS_MAP_START( rohga_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rohga_map, AS_PROGRAM, 16, rohga_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x20000f) AM_DEVWRITE("tilegen1", deco16ic_pf_control_w)
@@ -166,7 +166,7 @@ static ADDRESS_MAP_START( rohga_map, AS_PROGRAM, 16 )
AM_RANGE(0x3f0000, 0x3f3fff) AM_RAM /* Main ram */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wizdfire_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( wizdfire_map, AS_PROGRAM, 16, rohga_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x200fff) AM_DEVREADWRITE("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
@@ -197,7 +197,7 @@ static ADDRESS_MAP_START( wizdfire_map, AS_PROGRAM, 16 )
AM_RANGE(0xfdc000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nitrobal_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( nitrobal_map, AS_PROGRAM, 16, rohga_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x200fff) AM_MIRROR(0x1000) AM_DEVREADWRITE("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
@@ -230,7 +230,7 @@ static ADDRESS_MAP_START( nitrobal_map, AS_PROGRAM, 16 )
AM_RANGE(0xff8000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( schmeisr_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( schmeisr_map, AS_PROGRAM, 16, rohga_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x20000f) AM_DEVWRITE("tilegen1", deco16ic_pf_control_w)
AM_RANGE(0x240000, 0x24000f) AM_DEVWRITE("tilegen2", deco16ic_pf_control_w)
@@ -262,7 +262,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( rohga_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rohga_sound_map, AS_PROGRAM, 8, rohga_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_NOP
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ymsnd", ym2151_r,ym2151_w)
diff --git a/src/mame/drivers/rollerg.c b/src/mame/drivers/rollerg.c
index 632dcc2b1a6..b117fa8962a 100644
--- a/src/mame/drivers/rollerg.c
+++ b/src/mame/drivers/rollerg.c
@@ -81,7 +81,7 @@ static READ8_HANDLER( pip_r )
return 0x7f;
}
-static ADDRESS_MAP_START( rollerg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rollerg_map, AS_PROGRAM, 8, rollerg_state )
AM_RANGE(0x0010, 0x0010) AM_WRITE(rollerg_0010_w)
AM_RANGE(0x0020, 0x0020) AM_READWRITE(watchdog_reset_r,watchdog_reset_w)
AM_RANGE(0x0030, 0x0031) AM_DEVREADWRITE("k053260", rollerg_sound_r, k053260_w) /* K053260 */
@@ -103,7 +103,7 @@ static ADDRESS_MAP_START( rollerg_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rollerg_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rollerg_sound_map, AS_PROGRAM, 8, rollerg_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa02f) AM_DEVREADWRITE("k053260", k053260_r,k053260_w)
diff --git a/src/mame/drivers/rollrace.c b/src/mame/drivers/rollrace.c
index 7bb7710a3dd..3b805369a75 100644
--- a/src/mame/drivers/rollrace.c
+++ b/src/mame/drivers/rollrace.c
@@ -37,7 +37,7 @@ static WRITE8_HANDLER( sound_nmi_mask_w )
}
-static ADDRESS_MAP_START( rollrace_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rollrace_map, AS_PROGRAM, 8, rollrace_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROM /* only rollace2 */
AM_RANGE(0xc000, 0xcfff) AM_RAM
@@ -63,7 +63,7 @@ static ADDRESS_MAP_START( rollrace_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rollrace_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rollrace_sound_map, AS_PROGRAM, 8, rollrace_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x2000, 0x2fff) AM_RAM
AM_RANGE(0x3000, 0x3000) AM_READWRITE(soundlatch_r,sound_nmi_mask_w)
diff --git a/src/mame/drivers/rotaryf.c b/src/mame/drivers/rotaryf.c
index 354d8168f82..dec8396ef28 100644
--- a/src/mame/drivers/rotaryf.c
+++ b/src/mame/drivers/rotaryf.c
@@ -90,7 +90,7 @@ static SCREEN_UPDATE_RGB32( rotaryf )
}
-static ADDRESS_MAP_START( rotaryf_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rotaryf_map, AS_PROGRAM, 8, rotaryf_state )
AM_RANGE(0x0000, 0x17ff) AM_MIRROR(0x4000) AM_ROM
// AM_RANGE(0x6ffb, 0x6ffb) AM_READ(random_r) ??
// AM_RANGE(0x6ffd, 0x6ffd) AM_READ(random_r) ??
@@ -100,7 +100,7 @@ static ADDRESS_MAP_START( rotaryf_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xa1ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rotaryf_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( rotaryf_io_map, AS_IO, 8, rotaryf_state )
// AM_RANGE(0x00, 0x00) AM_READ_PORT("UNK")
AM_RANGE(0x21, 0x21) AM_READ_PORT("COIN")
AM_RANGE(0x26, 0x26) AM_READ_PORT("DSW")
diff --git a/src/mame/drivers/roul.c b/src/mame/drivers/roul.c
index 518fbf8eb4f..af77ed9ca8f 100644
--- a/src/mame/drivers/roul.c
+++ b/src/mame/drivers/roul.c
@@ -177,12 +177,12 @@ static WRITE8_HANDLER( ball_w )
state->m_lamp_old = lamp;
}
-static ADDRESS_MAP_START( roul_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( roul_map, AS_PROGRAM, 8, roul_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( roul_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( roul_cpu_io_map, AS_IO, 8, roul_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xf0, 0xf4) AM_WRITE(blitter_cmd_w)
AM_RANGE(0xf5, 0xf5) AM_READ(blitter_status_r)
@@ -193,12 +193,12 @@ static ADDRESS_MAP_START( roul_cpu_io_map, AS_IO, 8 )
AM_RANGE(0xfe, 0xfe) AM_WRITE(sound_latch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, roul_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1000, 0x13ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_cpu_io_map, AS_IO, 8, roul_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
diff --git a/src/mame/drivers/route16.c b/src/mame/drivers/route16.c
index 82323276f7b..21c9f13845a 100644
--- a/src/mame/drivers/route16.c
+++ b/src/mame/drivers/route16.c
@@ -219,7 +219,7 @@ static WRITE8_HANDLER ( speakres_out2_w )
*
*************************************/
-static ADDRESS_MAP_START( route16_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( route16_cpu1_map, AS_PROGRAM, 8, route16_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
/*AM_RANGE(0x3000, 0x3001) AM_NOP protection device */
AM_RANGE(0x4000, 0x43ff) AM_READWRITE(sharedram_r, route16_sharedram_w) AM_BASE_MEMBER(route16_state, m_sharedram)
@@ -230,7 +230,7 @@ static ADDRESS_MAP_START( route16_cpu1_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( routex_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( routex_cpu1_map, AS_PROGRAM, 8, route16_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_READWRITE(sharedram_r, route16_sharedram_w) AM_BASE_MEMBER(route16_state, m_sharedram)
AM_RANGE(0x4800, 0x4800) AM_READ_PORT("DSW") AM_WRITE(route16_out0_w)
@@ -241,7 +241,7 @@ static ADDRESS_MAP_START( routex_cpu1_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( stratvox_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( stratvox_cpu1_map, AS_PROGRAM, 8, route16_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE_MEMBER(route16_state, m_sharedram)
AM_RANGE(0x4800, 0x4800) AM_READ_PORT("DSW") AM_WRITE(route16_out0_w)
@@ -251,7 +251,7 @@ static ADDRESS_MAP_START( stratvox_cpu1_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( speakres_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( speakres_cpu1_map, AS_PROGRAM, 8, route16_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE_MEMBER(route16_state, m_sharedram)
AM_RANGE(0x4800, 0x4800) AM_READ_PORT("DSW") AM_WRITE(route16_out0_w)
@@ -262,7 +262,7 @@ static ADDRESS_MAP_START( speakres_cpu1_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ttmahjng_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ttmahjng_cpu1_map, AS_PROGRAM, 8, route16_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE_MEMBER(route16_state, m_sharedram)
AM_RANGE(0x4800, 0x4800) AM_READ_PORT("DSW") AM_WRITE(route16_out0_w)
@@ -274,14 +274,14 @@ static ADDRESS_MAP_START( ttmahjng_cpu1_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( route16_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( route16_cpu2_map, AS_PROGRAM, 8, route16_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_READWRITE(sharedram_r, route16_sharedram_w)
AM_RANGE(0x8000, 0xbfff) AM_RAM AM_BASE_MEMBER(route16_state, m_videoram2)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( stratvox_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( stratvox_cpu2_map, AS_PROGRAM, 8, route16_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2800, 0x2800) AM_DEVWRITE("dac", dac_w)
AM_RANGE(0x4000, 0x43ff) AM_READWRITE(sharedram_r, sharedram_w)
@@ -289,7 +289,7 @@ static ADDRESS_MAP_START( stratvox_cpu2_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu1_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( cpu1_io_map, AS_IO, 8, route16_state )
ADDRESS_MAP_GLOBAL_MASK(0x1ff)
AM_RANGE(0x0000, 0x0000) AM_MIRROR(0x00ff) AM_DEVWRITE("ay8910", ay8910_data_w)
AM_RANGE(0x0100, 0x0100) AM_MIRROR(0x00ff) AM_DEVWRITE("ay8910", ay8910_address_w)
diff --git a/src/mame/drivers/royalmah.c b/src/mame/drivers/royalmah.c
index 094407032c3..5538e417279 100644
--- a/src/mame/drivers/royalmah.c
+++ b/src/mame/drivers/royalmah.c
@@ -463,7 +463,7 @@ static WRITE8_HANDLER ( mjclub_bank_w )
}
-static ADDRESS_MAP_START( royalmah_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( royalmah_map, AS_PROGRAM, 8, royalmah_state )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM AM_WRITE( royalmah_rom_w )
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "bank1" ) // banked ROMs not present in royalmah
@@ -471,7 +471,7 @@ static ADDRESS_MAP_START( royalmah_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjapinky_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mjapinky_map, AS_PROGRAM, 8, royalmah_state )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM AM_WRITE( royalmah_rom_w )
AM_RANGE( 0x7000, 0x77ff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x7800, 0x7fff ) AM_RAM
@@ -483,7 +483,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( royalmah_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( royalmah_iomap, AS_IO, 8, royalmah_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_DEVREAD( "aysnd", ay8910_r )
AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE( "aysnd", ay8910_data_address_w )
@@ -491,7 +491,7 @@ static ADDRESS_MAP_START( royalmah_iomap, AS_IO, 8 )
AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE( input_port_select_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ippatsu_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( ippatsu_iomap, AS_IO, 8, royalmah_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_DEVREAD( "aysnd", ay8910_r )
AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE( "aysnd", ay8910_data_address_w )
@@ -501,7 +501,7 @@ static ADDRESS_MAP_START( ippatsu_iomap, AS_IO, 8 )
AM_RANGE( 0x13, 0x13 ) AM_READ_PORT("DSW3")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( suzume_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( suzume_iomap, AS_IO, 8, royalmah_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_DEVREAD( "aysnd", ay8910_r )
AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE( "aysnd", ay8910_data_address_w )
@@ -511,7 +511,7 @@ static ADDRESS_MAP_START( suzume_iomap, AS_IO, 8 )
AM_RANGE( 0x81, 0x81 ) AM_WRITE( suzume_bank_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dondenmj_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( dondenmj_iomap, AS_IO, 8, royalmah_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_DEVREAD( "aysnd", ay8910_r )
AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE( "aysnd", ay8910_data_address_w)
@@ -522,7 +522,7 @@ static ADDRESS_MAP_START( dondenmj_iomap, AS_IO, 8 )
AM_RANGE( 0x87, 0x87 ) AM_WRITE( dynax_bank_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( makaijan_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( makaijan_iomap, AS_IO, 8, royalmah_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_DEVREAD( "aysnd", ay8910_r )
AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE( "aysnd", ay8910_data_address_w)
@@ -533,7 +533,7 @@ static ADDRESS_MAP_START( makaijan_iomap, AS_IO, 8 )
AM_RANGE( 0x86, 0x86 ) AM_WRITE( dynax_bank_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( daisyari_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( daisyari_iomap, AS_IO, 8, royalmah_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_DEVREAD( "aysnd", ay8910_r )
AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE( "aysnd", ay8910_data_address_w)
@@ -542,7 +542,7 @@ static ADDRESS_MAP_START( daisyari_iomap, AS_IO, 8 )
AM_RANGE( 0xc0, 0xc0 ) AM_READWRITE( daisyari_dsw_r, daisyari_bank_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjclub_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( mjclub_iomap, AS_IO, 8, royalmah_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_READWRITE( mjclub_dsw_r, mjclub_bank_w )
AM_RANGE( 0x01, 0x01 ) AM_DEVREAD( "aysnd", ay8910_r )
@@ -551,7 +551,7 @@ static ADDRESS_MAP_START( mjclub_iomap, AS_IO, 8 )
AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE( input_port_select_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjdiplob_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( mjdiplob_iomap, AS_IO, 8, royalmah_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_DEVREAD( "aysnd", ay8910_r )
AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE( "aysnd", ay8910_data_address_w )
@@ -562,7 +562,7 @@ static ADDRESS_MAP_START( mjdiplob_iomap, AS_IO, 8 )
AM_RANGE( 0x63, 0x63 ) AM_READ_PORT("DSW3") // DSW3
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tontonb_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( tontonb_iomap, AS_IO, 8, royalmah_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_DEVREAD( "aysnd", ay8910_r )
AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE( "aysnd", ay8910_data_address_w )
@@ -573,7 +573,7 @@ static ADDRESS_MAP_START( tontonb_iomap, AS_IO, 8 )
AM_RANGE( 0x47, 0x47 ) AM_READ_PORT("DSW3") // DSW3
ADDRESS_MAP_END
-static ADDRESS_MAP_START( majs101b_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( majs101b_iomap, AS_IO, 8, royalmah_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_DEVREAD( "aysnd", ay8910_r )
AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE( "aysnd", ay8910_data_address_w )
@@ -582,7 +582,7 @@ static ADDRESS_MAP_START( majs101b_iomap, AS_IO, 8 )
AM_RANGE( 0x00, 0x00 ) AM_READWRITE( majs101b_dsw_r, dynax_bank_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjderngr_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( mjderngr_iomap, AS_IO, 8, royalmah_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_DEVREAD( "aysnd", ay8910_r )
AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE( "aysnd", ay8910_data_address_w )
@@ -595,7 +595,7 @@ static ADDRESS_MAP_START( mjderngr_iomap, AS_IO, 8 )
AM_RANGE( 0x60, 0x60 ) AM_WRITE( mjderngr_palbank_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjapinky_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( mjapinky_iomap, AS_IO, 8, royalmah_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_WRITE( mjapinky_bank_w )
AM_RANGE( 0x01, 0x01 ) AM_DEVREAD( "aysnd", ay8910_r )
@@ -606,7 +606,7 @@ static ADDRESS_MAP_START( mjapinky_iomap, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( janoh_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( janoh_map, AS_PROGRAM, 8, royalmah_state )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM AM_WRITE( royalmah_rom_w )
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_MEMBER(royalmah_state, m_videoram)
@@ -616,7 +616,7 @@ ADDRESS_MAP_END
/* this CPU makes little sense - what is it for? why so many addresses accessed?
-- it puts a value in shared ram to allow the main CPU to boot, then.. ?
*/
-static ADDRESS_MAP_START( janoh_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( janoh_sub_map, AS_PROGRAM, 8, royalmah_state )
AM_RANGE( 0x0000, 0x3fff ) AM_ROM
AM_RANGE( 0x4100, 0x413f ) AM_RAM
AM_RANGE( 0x6000, 0x607f ) AM_RAM
@@ -625,7 +625,7 @@ static ADDRESS_MAP_START( janoh_sub_map, AS_PROGRAM, 8 )
AM_RANGE( 0xf000, 0xffff ) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( janoh_sub_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( janoh_sub_iomap, AS_IO, 8, royalmah_state )
ADDRESS_MAP_END
/****************************************************************************
@@ -721,7 +721,7 @@ static WRITE8_HANDLER( jansou_sound_w )
-static ADDRESS_MAP_START( jansou_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jansou_map, AS_PROGRAM, 8, royalmah_state )
AM_RANGE( 0x0000, 0x3fff ) AM_ROM
AM_RANGE( 0x6000, 0x600f ) AM_WRITE(jansou_colortable_w)
@@ -739,12 +739,12 @@ static ADDRESS_MAP_START( jansou_map, AS_PROGRAM, 8 )
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_MEMBER(royalmah_state, m_videoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jansou_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jansou_sub_map, AS_PROGRAM, 8, royalmah_state )
AM_RANGE( 0x0000, 0xffff ) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jansou_sub_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( jansou_sub_iomap, AS_IO, 8, royalmah_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r) AM_DEVWRITE( "dac", dac_w )
ADDRESS_MAP_END
@@ -754,7 +754,7 @@ ADDRESS_MAP_END
Janputer '96
****************************************************************************/
-static ADDRESS_MAP_START( janptr96_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( janptr96_map, AS_PROGRAM, 8, royalmah_state )
AM_RANGE( 0x0000, 0x5fff ) AM_ROM
AM_RANGE( 0x6000, 0x6fff ) AM_RAMBANK("bank3") AM_SHARE("nvram") // nvram
AM_RANGE( 0x7000, 0x7fff ) AM_RAMBANK("bank2") // banked nvram
@@ -812,7 +812,7 @@ static WRITE8_HANDLER( janptr96_coin_counter_w )
coin_counter_w(space->machine(), 1,data & 1); // out
}
-static ADDRESS_MAP_START( janptr96_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( janptr96_iomap, AS_IO, 8, royalmah_state )
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 )
@@ -895,7 +895,7 @@ static WRITE8_HANDLER( mjifb_videoram_w )
videoram[offset + 0x4000] = data;
}
-static ADDRESS_MAP_START( mjifb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mjifb_map, AS_PROGRAM, 8, royalmah_state )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x8000, 0xbfff ) AM_READWRITE(mjifb_rom_io_r, mjifb_rom_io_w) AM_BASE_MEMBER(royalmah_state, m_videoram)
@@ -940,7 +940,7 @@ static WRITE8_HANDLER( mjifb_p8_w )
state->m_mjifb_rom_enable = (data & 0x08);
}
-static ADDRESS_MAP_START( mjifb_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( mjifb_iomap, AS_IO, 8, royalmah_state )
AM_RANGE( T90_P3, T90_P3 ) AM_READWRITE( mjifb_p3_r, mjifb_p3_w )
AM_RANGE( T90_P4, T90_P4 ) AM_WRITE( mjifb_p4_w )
AM_RANGE( T90_P5, T90_P5 ) AM_READ ( mjifb_p5_r )
@@ -1000,7 +1000,7 @@ static WRITE8_HANDLER( mjdejavu_rom_io_w )
logerror("%04X: unmapped input write at %04X = %02X\n", cpu_get_pc(&space->device()), offset,data);
}
-static ADDRESS_MAP_START( mjdejavu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mjdejavu_map, AS_PROGRAM, 8, royalmah_state )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x8000, 0xbfff ) AM_READWRITE(mjdejavu_rom_io_r, mjdejavu_rom_io_w) AM_BASE_MEMBER(royalmah_state, m_videoram)
@@ -1035,7 +1035,7 @@ static WRITE8_HANDLER( mjtensin_6ff3_w )
mjtensin_update_rombank(space->machine());
}
-static ADDRESS_MAP_START( mjtensin_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mjtensin_map, AS_PROGRAM, 8, royalmah_state )
AM_RANGE( 0x0000, 0x5fff ) AM_ROM
AM_RANGE( 0x6000, 0x6fbf ) AM_RAM
AM_RANGE( 0x6fc1, 0x6fc1 ) AM_DEVREAD( "aysnd", ay8910_r )
@@ -1051,7 +1051,7 @@ static ADDRESS_MAP_START( mjtensin_map, AS_PROGRAM, 8 )
AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_MEMBER(royalmah_state, m_videoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjtensin_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( mjtensin_iomap, AS_IO, 8, royalmah_state )
AM_RANGE( T90_P3, T90_P3 ) AM_READ ( mjtensin_p3_r )
AM_RANGE( T90_P4, T90_P4 ) AM_WRITE( mjtensin_p4_w )
ADDRESS_MAP_END
@@ -1108,7 +1108,7 @@ static WRITE8_HANDLER( cafetime_7fe3_w )
// popmessage("%02x",data);
}
-static ADDRESS_MAP_START( cafetime_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cafetime_map, AS_PROGRAM, 8, royalmah_state )
AM_RANGE( 0x0000, 0x5fff ) AM_ROM
AM_RANGE( 0x6000, 0x7eff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x7fc1, 0x7fc1 ) AM_DEVREAD( "aysnd", ay8910_r )
@@ -1127,7 +1127,7 @@ static ADDRESS_MAP_START( cafetime_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cafetime_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( cafetime_iomap, AS_IO, 8, royalmah_state )
AM_RANGE( T90_P3, T90_P3 ) AM_WRITE( cafetime_p3_w )
AM_RANGE( T90_P4, T90_P4 ) AM_WRITE( cafetime_p4_w )
ADDRESS_MAP_END
@@ -1214,7 +1214,7 @@ static READ8_HANDLER( mjvegasa_12500_r )
return 0xff;
}
-static ADDRESS_MAP_START( mjvegasa_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mjvegasa_map, AS_PROGRAM, 8, royalmah_state )
AM_RANGE( 0x00000, 0x05fff ) AM_ROM
AM_RANGE( 0x06000, 0x07fff ) AM_RAM AM_SHARE("nvram")
@@ -1235,7 +1235,7 @@ static ADDRESS_MAP_START( mjvegasa_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjvegasa_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( mjvegasa_iomap, AS_IO, 8, royalmah_state )
AM_RANGE( T90_P3, T90_P3 ) AM_READWRITE( mjtensin_p3_r, mjvegasa_p3_w )
AM_RANGE( T90_P4, T90_P4 ) AM_WRITE( mjvegasa_p4_w )
ADDRESS_MAP_END
diff --git a/src/mame/drivers/rpunch.c b/src/mame/drivers/rpunch.c
index aab4234ffe7..545155d4349 100644
--- a/src/mame/drivers/rpunch.c
+++ b/src/mame/drivers/rpunch.c
@@ -223,7 +223,7 @@ static WRITE8_DEVICE_HANDLER( upd_data_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, rpunch_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x04ffff) AM_RAM AM_BASE_MEMBER(rpunch_state, m_bitmapram) AM_SIZE_MEMBER(rpunch_state, m_bitmapram_size)
@@ -251,7 +251,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, rpunch_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xf200, 0xf200) AM_READ(sound_command_r)
diff --git a/src/mame/drivers/runaway.c b/src/mame/drivers/runaway.c
index 73ed20af00e..aa99ab9a035 100644
--- a/src/mame/drivers/runaway.c
+++ b/src/mame/drivers/runaway.c
@@ -81,7 +81,7 @@ static WRITE8_HANDLER( runaway_irq_ack_w )
}
-static ADDRESS_MAP_START( runaway_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( runaway_map, AS_PROGRAM, 8, runaway_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x07bf) AM_RAM_WRITE(runaway_video_ram_w) AM_BASE_MEMBER(runaway_state, m_video_ram)
AM_RANGE(0x07c0, 0x07ff) AM_RAM AM_BASE_MEMBER(runaway_state, m_sprite_ram)
diff --git a/src/mame/drivers/rungun.c b/src/mame/drivers/rungun.c
index 8900733081d..cc0a7db3ccf 100644
--- a/src/mame/drivers/rungun.c
+++ b/src/mame/drivers/rungun.c
@@ -183,7 +183,7 @@ static INTERRUPT_GEN(rng_interrupt)
device_set_input_line(device, M68K_IRQ_5, ASSERT_LINE);
}
-static ADDRESS_MAP_START( rungun_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rungun_map, AS_PROGRAM, 16, rungun_state )
AM_RANGE(0x000000, 0x2fffff) AM_ROM // main program + data
AM_RANGE(0x300000, 0x3007ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x380000, 0x39ffff) AM_RAM // work RAM
@@ -244,7 +244,7 @@ static INTERRUPT_GEN(audio_interrupt)
/* sound (this should be split into audio/xexex.c or pregx.c or so someday) */
-static ADDRESS_MAP_START( rungun_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rungun_sound_map, AS_PROGRAM, 8, rungun_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
AM_RANGE(0xc000, 0xdfff) AM_RAM
diff --git a/src/mame/drivers/safarir.c b/src/mame/drivers/safarir.c
index e596be5ce1f..2ae4ea67378 100644
--- a/src/mame/drivers/safarir.c
+++ b/src/mame/drivers/safarir.c
@@ -336,7 +336,7 @@ static MACHINE_START( safarir )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, safarir_state )
AM_RANGE(0x0000, 0x17ff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_READWRITE(ram_r, ram_w) AM_SIZE_MEMBER(safarir_state,m_ram_size)
AM_RANGE(0x2800, 0x2800) AM_MIRROR(0x03ff) AM_READNOP AM_WRITE(ram_bank_w)
diff --git a/src/mame/drivers/sandscrp.c b/src/mame/drivers/sandscrp.c
index 48b29343b2a..c6dc8e4320a 100644
--- a/src/mame/drivers/sandscrp.c
+++ b/src/mame/drivers/sandscrp.c
@@ -226,7 +226,7 @@ static WRITE16_HANDLER( sandscrp_soundlatch_word_w )
}
}
-static ADDRESS_MAP_START( sandscrp, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sandscrp, AS_PROGRAM, 16, sandscrp_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x100001) AM_WRITE(sandscrp_irq_cause_w) // IRQ Ack
@@ -290,13 +290,13 @@ static WRITE8_HANDLER( sandscrp_soundlatch_w )
soundlatch2_w(space,0,data);
}
-static ADDRESS_MAP_START( sandscrp_soundmem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sandscrp_soundmem, AS_PROGRAM, 8, sandscrp_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM // RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sandscrp_soundport, AS_IO, 8 )
+static ADDRESS_MAP_START( sandscrp_soundport, AS_IO, 8, sandscrp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(sandscrp_bankswitch_w) // ROM Bank
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w) // PORTA/B read
diff --git a/src/mame/drivers/sangho.c b/src/mame/drivers/sangho.c
index 272fae08630..4a636f4997e 100644
--- a/src/mame/drivers/sangho.c
+++ b/src/mame/drivers/sangho.c
@@ -224,7 +224,7 @@ static WRITE8_HANDLER(sexyboom_bank_w)
sexyboom_map_bank(space->machine(), offset>>1);
}
-static ADDRESS_MAP_START( sangho_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sangho_map, AS_PROGRAM, 8, sangho_state )
AM_RANGE(0x0000, 0x3fff) AM_READ_BANK("bank1") AM_WRITE_BANK("bank5")
AM_RANGE(0x4000, 0x7fff) AM_READ_BANK("bank2") AM_WRITE_BANK("bank6")
AM_RANGE(0x8000, 0xbfff) AM_READ_BANK("bank3") AM_WRITE_BANK("bank7")
@@ -233,7 +233,7 @@ ADDRESS_MAP_END
/* Puzzle Star Ports */
-static ADDRESS_MAP_START( pzlestar_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( pzlestar_io_map, AS_IO, 8, sangho_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x7c, 0x7d) AM_DEVWRITE( "ymsnd", ym2413_w )
AM_RANGE( 0x91, 0x91) AM_WRITE( pzlestar_bank_w )
@@ -246,7 +246,7 @@ ADDRESS_MAP_END
/* Sexy Boom Ports */
-static ADDRESS_MAP_START( sexyboom_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sexyboom_io_map, AS_IO, 8, sangho_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x7c, 0x7d) AM_DEVWRITE( "ymsnd", ym2413_w )
AM_RANGE( 0xa0, 0xa0) AM_READ_PORT("P1")
diff --git a/src/mame/drivers/saturn.c b/src/mame/drivers/saturn.c
index 08c781b964e..6779a662926 100644
--- a/src/mame/drivers/saturn.c
+++ b/src/mame/drivers/saturn.c
@@ -749,7 +749,7 @@ static READ8_HANDLER( saturn_cart_type_r )
return cart_ram_header[state->m_cart_type];
}
-static ADDRESS_MAP_START( saturn_mem, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( saturn_mem, AS_PROGRAM, 32, saturn_state )
AM_RANGE(0x00000000, 0x0007ffff) AM_ROM AM_SHARE("share6") // bios
AM_RANGE(0x00100000, 0x0010007f) AM_READWRITE8(saturn_SMPC_r, saturn_SMPC_w,0xffffffff)
AM_RANGE(0x00180000, 0x0018ffff) AM_READWRITE8(saturn_backupram_r, saturn_backupram_w,0xffffffff) AM_SHARE("share1")
@@ -779,7 +779,7 @@ static ADDRESS_MAP_START( saturn_mem, AS_PROGRAM, 32 )
AM_RANGE(0xc0000000, 0xc00007ff) AM_RAM // cache RAM, Dragon Ball Z sprites needs this
ADDRESS_MAP_END
-static ADDRESS_MAP_START( stv_mem, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( stv_mem, AS_PROGRAM, 32, saturn_state )
AM_RANGE(0x00000000, 0x0007ffff) AM_ROM AM_SHARE("share6") // bios
AM_RANGE(0x00100000, 0x0010007f) AM_READWRITE8(stv_SMPC_r, stv_SMPC_w,0xffffffff)
AM_RANGE(0x00180000, 0x0018ffff) AM_READWRITE8(saturn_backupram_r,saturn_backupram_w,0xffffffff) AM_SHARE("share1")
@@ -806,7 +806,7 @@ static ADDRESS_MAP_START( stv_mem, AS_PROGRAM, 32 )
AM_RANGE(0xc0000000, 0xc00007ff) AM_RAM // cache RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sound_mem, AS_PROGRAM, 16, saturn_state )
AM_RANGE(0x000000, 0x0fffff) AM_RAM AM_BASE_MEMBER(saturn_state,m_sound_ram)
AM_RANGE(0x100000, 0x100fff) AM_DEVREADWRITE("scsp", scsp_r, scsp_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/sauro.c b/src/mame/drivers/sauro.c
index 9a6163a0727..ca07b54b20d 100644
--- a/src/mame/drivers/sauro.c
+++ b/src/mame/drivers/sauro.c
@@ -163,7 +163,7 @@ static WRITE8_DEVICE_HANDLER( adpcm_w )
sp0256_ALD_w(device, 0, data);
}
-static ADDRESS_MAP_START( sauro_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sauro_map, AS_PROGRAM, 8, sauro_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xe800, 0xebff) AM_RAM AM_BASE_SIZE_MEMBER(sauro_state, m_spriteram, m_spriteram_size)
@@ -173,7 +173,7 @@ static ADDRESS_MAP_START( sauro_map, AS_PROGRAM, 8 )
AM_RANGE(0xfc00, 0xffff) AM_RAM_WRITE(tecfri_colorram2_w) AM_BASE_MEMBER(sauro_state, m_colorram2)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sauro_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sauro_io_map, AS_IO, 8, sauro_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW1")
AM_RANGE(0x20, 0x20) AM_READ_PORT("DSW2")
@@ -198,7 +198,7 @@ static ADDRESS_MAP_START( sauro_io_map, AS_IO, 8 )
AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sauro_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sauro_sound_map, AS_PROGRAM, 8, sauro_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ymsnd", ym3812_w)
@@ -209,7 +209,7 @@ static ADDRESS_MAP_START( sauro_sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( trckydoc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( trckydoc_map, AS_PROGRAM, 8, sauro_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xe800, 0xebff) AM_RAM AM_MIRROR(0x400) AM_BASE_SIZE_MEMBER(sauro_state, m_spriteram, m_spriteram_size)
diff --git a/src/mame/drivers/sbasketb.c b/src/mame/drivers/sbasketb.c
index 8dd5350560f..3befe0db499 100644
--- a/src/mame/drivers/sbasketb.c
+++ b/src/mame/drivers/sbasketb.c
@@ -67,7 +67,7 @@ static WRITE8_HANDLER( irq_mask_w )
state->m_irq_mask = data & 1;
}
-static ADDRESS_MAP_START( sbasketb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sbasketb_map, AS_PROGRAM, 8, sbasketb_state )
AM_RANGE(0x2000, 0x2fff) AM_RAM
AM_RANGE(0x3000, 0x33ff) AM_RAM_WRITE(sbasketb_colorram_w) AM_BASE_MEMBER(sbasketb_state, m_colorram)
AM_RANGE(0x3400, 0x37ff) AM_RAM_WRITE(sbasketb_videoram_w) AM_BASE_MEMBER(sbasketb_state, m_videoram)
@@ -92,7 +92,7 @@ static ADDRESS_MAP_START( sbasketb_map, AS_PROGRAM, 8 )
AM_RANGE(0x6000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sbasketb_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sbasketb_sound_map, AS_PROGRAM, 8, sbasketb_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/sbowling.c b/src/mame/drivers/sbowling.c
index c05d109439a..443ff7bad36 100644
--- a/src/mame/drivers/sbowling.c
+++ b/src/mame/drivers/sbowling.c
@@ -219,7 +219,7 @@ static READ8_HANDLER (controls_r)
return input_port_read(space->machine(), "TRACKX");
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, sbowling_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_RAM_WRITE(sbw_videoram_w) AM_BASE_MEMBER(sbowling_state,m_videoram)
AM_RANGE(0xf800, 0xf801) AM_DEVWRITE("aysnd", ay8910_address_data_w)
@@ -228,7 +228,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( port_map, AS_IO, 8, sbowling_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(watchdog_reset_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(controls_r, pix_data_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(pix_data_r, pix_shift_w)
diff --git a/src/mame/drivers/sbrkout.c b/src/mame/drivers/sbrkout.c
index 0c8136ff420..757dc8962dc 100644
--- a/src/mame/drivers/sbrkout.c
+++ b/src/mame/drivers/sbrkout.c
@@ -349,7 +349,7 @@ static SCREEN_UPDATE_IND16( sbrkout )
*************************************/
/* full memory map derived from schematics */
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, sbrkout_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x380) AM_RAMBANK("bank1")
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(sbrkout_videoram_w) AM_BASE_MEMBER(sbrkout_state, m_videoram)
diff --git a/src/mame/drivers/sbugger.c b/src/mame/drivers/sbugger.c
index c0b73fd9879..75ebdb192a8 100644
--- a/src/mame/drivers/sbugger.c
+++ b/src/mame/drivers/sbugger.c
@@ -108,7 +108,7 @@ Sound PCB
/* memory maps */
-static ADDRESS_MAP_START( sbugger_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sbugger_map, AS_PROGRAM, 8, sbugger_state )
AM_RANGE(0x0000, 0x37ff) AM_ROM
AM_RANGE(0xc800, 0xcbff) AM_RAM_WRITE(sbugger_videoram_attr_w) AM_BASE_MEMBER(sbugger_state,m_videoram_attr)
AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(sbugger_videoram_w) AM_BASE_MEMBER(sbugger_state,m_videoram)
@@ -116,7 +116,7 @@ static ADDRESS_MAP_START( sbugger_map, AS_PROGRAM, 8 )
AM_RANGE(0xf400, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sbugger_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sbugger_io_map, AS_IO, 8, sbugger_state )
AM_RANGE(0xe0, 0xe0) AM_WRITENOP // 8156 command/status reg (write c0 = command START = (start of timer)
AM_RANGE(0xe1, 0xe1) AM_READ_PORT("INPUTS") // 8156 PA
AM_RANGE(0xe2, 0xe2) AM_READ_PORT("DSW1") // 8156 PB
diff --git a/src/mame/drivers/scobra.c b/src/mame/drivers/scobra.c
index 5cc5af8b33b..81a5fa66110 100644
--- a/src/mame/drivers/scobra.c
+++ b/src/mame/drivers/scobra.c
@@ -112,7 +112,7 @@ static WRITE8_DEVICE_HANDLER(hustler_ppi8255_w)
ppi8255_w(device, offset >> 3, data);
}
-static ADDRESS_MAP_START( type1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( type1_map, AS_PROGRAM, 8, scobra_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -132,7 +132,7 @@ static ADDRESS_MAP_START( type1_map, AS_PROGRAM, 8 )
AM_RANGE(0xb000, 0xb000) AM_READ(watchdog_reset_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( type2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( type2_map, AS_PROGRAM, 8, scobra_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x883f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
@@ -152,7 +152,7 @@ static ADDRESS_MAP_START( type2_map, AS_PROGRAM, 8 )
AM_RANGE(0xb00e, 0xb00e) AM_WRITE(galaxold_flip_screen_x_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hustler_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hustler_map, AS_PROGRAM, 8, scobra_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -169,7 +169,7 @@ static ADDRESS_MAP_START( hustler_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe01f) AM_DEVREADWRITE("ppi8255_1", hustler_ppi8255_r, hustler_ppi8255_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hustlerb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hustlerb_map, AS_PROGRAM, 8, scobra_state )
AM_RANGE(0x0000, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -186,7 +186,7 @@ static ADDRESS_MAP_START( hustlerb_map, AS_PROGRAM, 8 )
AM_RANGE(0xc200, 0xc203) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mimonkey_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mimonkey_map, AS_PROGRAM, 8, scobra_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -218,7 +218,7 @@ static WRITE8_HANDLER(scobra_soundram_w)
state->m_soundram[offset & 0x03ff] = data;
}
-static ADDRESS_MAP_START( scobra_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( scobra_sound_map, AS_PROGRAM, 8, scobra_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_READWRITE(scobra_soundram_r, scobra_soundram_w)
AM_RANGE(0x8000, 0x83ff) AM_WRITENOP AM_BASE_MEMBER(scobra_state, m_soundram) /* only here to initialize pointer */
@@ -226,14 +226,14 @@ static ADDRESS_MAP_START( scobra_sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hustlerb_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hustlerb_sound_map, AS_PROGRAM, 8, scobra_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_WRITE(frogger_filter_w)
AM_RANGE(0x8000, 0x8fff) AM_RAM_READ(scobra_soundram_r) AM_BASE_MEMBER(scobra_state, m_soundram) /* only here to initialize pointer */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( scobra_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( scobra_sound_io_map, AS_IO, 8, scobra_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_DEVWRITE("ay1", ay8910_address_w)
AM_RANGE(0x20, 0x20) AM_DEVREADWRITE("ay1", ay8910_r, ay8910_data_w)
@@ -241,20 +241,20 @@ static ADDRESS_MAP_START( scobra_sound_io_map, AS_IO, 8 )
AM_RANGE(0x80, 0x80) AM_DEVREADWRITE("ay2", ay8910_r, ay8910_data_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hustler_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hustler_sound_map, AS_PROGRAM, 8, scobra_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x6000, 0x6fff) AM_WRITE(frogger_filter_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hustler_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( hustler_sound_io_map, AS_IO, 8, scobra_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("aysnd", ay8910_r, ay8910_data_w)
AM_RANGE(0x80, 0x80) AM_DEVWRITE("aysnd", ay8910_address_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hustlerb_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( hustlerb_sound_io_map, AS_IO, 8, scobra_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_DEVWRITE("aysnd", ay8910_address_w)
AM_RANGE(0x80, 0x80) AM_DEVREADWRITE("aysnd", ay8910_r, ay8910_data_w)
diff --git a/src/mame/drivers/scotrsht.c b/src/mame/drivers/scotrsht.c
index 647d5c906d7..cbd18a3c3a2 100644
--- a/src/mame/drivers/scotrsht.c
+++ b/src/mame/drivers/scotrsht.c
@@ -61,7 +61,7 @@ static WRITE8_HANDLER( scotrsht_soundlatch_w )
cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
}
-static ADDRESS_MAP_START( scotrsht_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( scotrsht_map, AS_PROGRAM, 8, scotrsht_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(scotrsht_colorram_w) AM_BASE_MEMBER(scotrsht_state, m_colorram)
AM_RANGE(0x0800, 0x0fff) AM_RAM_WRITE(scotrsht_videoram_w) AM_BASE_MEMBER(scotrsht_state, m_videoram)
AM_RANGE(0x1000, 0x10bf) AM_RAM AM_BASE_SIZE_MEMBER(scotrsht_state, m_spriteram, m_spriteram_size) /* sprites */
@@ -85,13 +85,13 @@ static ADDRESS_MAP_START( scotrsht_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( scotrsht_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( scotrsht_sound_map, AS_PROGRAM, 8, scotrsht_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x8000, 0x8000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( scotrsht_sound_port, AS_IO, 8 )
+static ADDRESS_MAP_START( scotrsht_sound_port, AS_IO, 8, scotrsht_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/scramble.c b/src/mame/drivers/scramble.c
index c2fd784e228..72f504a7d3a 100644
--- a/src/mame/drivers/scramble.c
+++ b/src/mame/drivers/scramble.c
@@ -37,7 +37,7 @@ Notes:
-static ADDRESS_MAP_START( scramble_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( scramble_map, AS_PROGRAM, 8, scramble_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -59,7 +59,7 @@ static ADDRESS_MAP_START( scramble_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( turpins_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( turpins_map, AS_PROGRAM, 8, scramble_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -89,7 +89,7 @@ static ADDRESS_MAP_START( turpins_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_READONLY
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ckongs_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ckongs_map, AS_PROGRAM, 8, scramble_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6bff) AM_RAM
AM_RANGE(0x7000, 0x7003) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
@@ -118,7 +118,7 @@ static WRITE8_DEVICE_HANDLER(mars_ppi8255_w)
}
-static ADDRESS_MAP_START( mars_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mars_map, AS_PROGRAM, 8, scramble_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -140,7 +140,7 @@ static ADDRESS_MAP_START( mars_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( newsin7_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( newsin7_map, AS_PROGRAM, 8, scramble_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -162,7 +162,7 @@ static ADDRESS_MAP_START( newsin7_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mrkougar_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mrkougar_map, AS_PROGRAM, 8, scramble_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -182,7 +182,7 @@ static ADDRESS_MAP_START( mrkougar_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hotshock_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hotshock_map, AS_PROGRAM, 8, scramble_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -206,7 +206,7 @@ static ADDRESS_MAP_START( hotshock_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hunchbks_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hunchbks_map, AS_PROGRAM, 8, scramble_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1210, 0x1213) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w)
AM_RANGE(0x1400, 0x143f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE_MEMBER(galaxold_state, m_attributesram)
@@ -229,7 +229,7 @@ static ADDRESS_MAP_START( hunchbks_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mimonscr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mimonscr_map, AS_PROGRAM, 8, scramble_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) /* mirror address?, probably not */
AM_RANGE(0x4400, 0x47ff) AM_RAM
@@ -249,7 +249,7 @@ static ADDRESS_MAP_START( mimonscr_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ad2083_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ad2083_map, AS_PROGRAM, 8, scramble_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_BASE_MEMBER(galaxold_state, m_videoram)
@@ -275,7 +275,7 @@ static ADDRESS_MAP_START( ad2083_map, AS_PROGRAM, 8 )
AM_RANGE(0xe800, 0xebff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( triplep_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( triplep_io_map, AS_IO, 8, scramble_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("8910.1", ay8910_data_address_w)
AM_RANGE(0x01, 0x01) AM_DEVREAD("8910.1", ay8910_r)
@@ -283,7 +283,7 @@ static ADDRESS_MAP_START( triplep_io_map, AS_IO, 8 )
AM_RANGE(0x03, 0x03) AM_READ(triplep_pap_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hotshock_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( hotshock_sound_io_map, AS_IO, 8, scramble_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_DEVWRITE("8910.1", ay8910_address_w)
AM_RANGE(0x20, 0x20) AM_DEVREADWRITE("8910.1", ay8910_r, ay8910_data_w)
@@ -299,7 +299,7 @@ static READ8_HANDLER( hncholms_prot_r )
return 0;
}
-static ADDRESS_MAP_START( hunchbks_readport, AS_IO, 8 )
+static ADDRESS_MAP_START( hunchbks_readport, AS_IO, 8, scramble_state )
AM_RANGE(0x00, 0x00) AM_READ(hncholms_prot_r)
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
ADDRESS_MAP_END
@@ -1219,14 +1219,14 @@ static WRITE8_HANDLER(scramble_soundram_w)
state->m_soundram[offset & 0x03ff] = data;
}
-static ADDRESS_MAP_START( scramble_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( scramble_sound_map, AS_PROGRAM, 8, scramble_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_READWRITE(scramble_soundram_r, scramble_soundram_w)
AM_RANGE(0x8000, 0x83ff) AM_WRITENOP AM_BASE_MEMBER(scramble_state, m_soundram) /* only here to initialize pointer */
AM_RANGE(0x9000, 0x9fff) AM_WRITE(scramble_filter_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( scramble_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( scramble_sound_io_map, AS_IO, 8, scramble_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_DEVWRITE("8910.1", ay8910_address_w)
AM_RANGE(0x20, 0x20) AM_DEVREADWRITE("8910.1", ay8910_r, ay8910_data_w)
diff --git a/src/mame/drivers/scregg.c b/src/mame/drivers/scregg.c
index 1ad31a67535..00706929fcc 100644
--- a/src/mame/drivers/scregg.c
+++ b/src/mame/drivers/scregg.c
@@ -68,7 +68,7 @@ static WRITE8_HANDLER( scregg_irqack_w )
}
-static ADDRESS_MAP_START( dommy_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dommy_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x2000, 0x23ff) AM_RAM AM_BASE_SIZE_MEMBER(btime_state, m_videoram, m_videoram_size)
AM_RANGE(0x2400, 0x27ff) AM_RAM AM_BASE_MEMBER(btime_state, m_colorram)
@@ -84,7 +84,7 @@ static ADDRESS_MAP_START( dommy_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( eggs_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( eggs_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_BASE_SIZE_MEMBER(btime_state, m_videoram, m_videoram_size)
AM_RANGE(0x1400, 0x17ff) AM_RAM AM_BASE_MEMBER(btime_state, m_colorram)
diff --git a/src/mame/drivers/sderby.c b/src/mame/drivers/sderby.c
index ec839036343..dc98a29e69d 100644
--- a/src/mame/drivers/sderby.c
+++ b/src/mame/drivers/sderby.c
@@ -274,7 +274,7 @@ static WRITE16_HANDLER( roulette_out_w )
* Memory Maps *
***************************/
-static ADDRESS_MAP_START( sderby_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sderby_map, AS_PROGRAM, 16, sderby_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(sderby_videoram_w) AM_BASE_MEMBER(sderby_state,m_videoram) /* bg */
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(sderby_md_videoram_w) AM_BASE_MEMBER(sderby_state,m_md_videoram) /* mid */
@@ -293,7 +293,7 @@ static ADDRESS_MAP_START( sderby_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( luckboom_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( luckboom_map, AS_PROGRAM, 16, sderby_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(sderby_videoram_w) AM_BASE_MEMBER(sderby_state,m_videoram) /* bg */
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(sderby_md_videoram_w) AM_BASE_MEMBER(sderby_state,m_md_videoram) /* mid */
@@ -311,7 +311,7 @@ static ADDRESS_MAP_START( luckboom_map, AS_PROGRAM, 16 )
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spacewin_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( spacewin_map, AS_PROGRAM, 16, sderby_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(sderby_videoram_w) AM_BASE_MEMBER(sderby_state,m_videoram) /* bg */
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(sderby_md_videoram_w) AM_BASE_MEMBER(sderby_state,m_md_videoram) /* mid */
@@ -332,7 +332,7 @@ static ADDRESS_MAP_START( spacewin_map, AS_PROGRAM, 16 )
AM_RANGE(0x8fc000, 0x8fffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( roulette_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( roulette_map, AS_PROGRAM, 16, sderby_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x440000, 0x440fff) AM_WRITEONLY AM_BASE_MEMBER(sderby_state,m_spriteram) AM_SIZE_MEMBER(sderby_state,m_spriteram_size)
AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(sderby_videoram_w) AM_BASE_MEMBER(sderby_state,m_videoram) /* bg */
diff --git a/src/mame/drivers/seattle.c b/src/mame/drivers/seattle.c
index ceaaa5308b8..411699afd5f 100644
--- a/src/mame/drivers/seattle.c
+++ b/src/mame/drivers/seattle.c
@@ -1761,7 +1761,7 @@ static READ32_DEVICE_HANDLER( seattle_ide_r )
return ide_controller32_r(device, offset, mem_mask);
}
-static ADDRESS_MAP_START( seattle_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( seattle_map, AS_PROGRAM, 32, seattle_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x007fffff) AM_RAM AM_BASE_MEMBER(seattle_state, m_rambase) // wg3dh only has 4MB; sfrush, blitz99 8MB
AM_RANGE(0x08000000, 0x08ffffff) AM_DEVREAD("voodoo", voodoo_r) AM_WRITE(seattle_voodoo_w)
diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c
index 4c05380a34e..1d93d6fe12c 100644
--- a/src/mame/drivers/segac2.c
+++ b/src/mame/drivers/segac2.c
@@ -603,7 +603,7 @@ static WRITE16_HANDLER( print_club_camera_w )
******************************************************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, segac2_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x800000, 0x800001) AM_MIRROR(0x13fdfe) AM_READWRITE(prot_r, prot_w)
AM_RANGE(0x800200, 0x800201) AM_MIRROR(0x13fdfe) AM_WRITE(control_w)
diff --git a/src/mame/drivers/segag80r.c b/src/mame/drivers/segag80r.c
index 52a0640b5ca..b998101b4a9 100644
--- a/src/mame/drivers/segag80r.c
+++ b/src/mame/drivers/segag80r.c
@@ -333,7 +333,7 @@ static const ppi8255_interface sindbadm_ppi_intf =
*************************************/
/* complete memory map derived from schematics */
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, segag80r_state )
AM_RANGE(0x0000, 0x07ff) AM_ROM /* CPU board ROM */
AM_RANGE(0x0800, 0x7fff) AM_ROM /* PROM board ROM area */
AM_RANGE(0x8000, 0xbfff) AM_ROM /* PROM board ROM area */
@@ -343,7 +343,7 @@ ADDRESS_MAP_END
/* complete memory map derived from schematics */
-static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, AS_IO, 8, segag80r_state )
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)
@@ -352,7 +352,7 @@ static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_ppi8255_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( main_ppi8255_portmap, AS_IO, 8, segag80r_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE("ppi8255", ppi8255_r, ppi8255_w)
AM_RANGE(0xbe, 0xbf) AM_READWRITE(segag80r_video_port_r, segag80r_video_port_w)
@@ -362,7 +362,7 @@ static ADDRESS_MAP_START( main_ppi8255_portmap, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sindbadm_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sindbadm_portmap, AS_IO, 8, segag80r_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x42, 0x43) AM_READWRITE(segag80r_video_port_r, segag80r_video_port_w)
AM_RANGE(0x80, 0x83) AM_DEVREADWRITE("ppi8255", ppi8255_r, ppi8255_w)
@@ -378,7 +378,7 @@ ADDRESS_MAP_END
*************************************/
/* complete memory map derived from System 1 schematics */
-static ADDRESS_MAP_START( sindbadm_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sindbadm_sound_map, AS_PROGRAM, 8, segag80r_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x1800) AM_RAM
AM_RANGE(0xa000, 0xa003) AM_MIRROR(0x1ffc) AM_DEVWRITE("sn1", sindbadm_SN76496_w)
diff --git a/src/mame/drivers/segag80v.c b/src/mame/drivers/segag80v.c
index 7c0e3f8079d..07903ee2f42 100644
--- a/src/mame/drivers/segag80v.c
+++ b/src/mame/drivers/segag80v.c
@@ -380,7 +380,7 @@ static WRITE8_HANDLER( unknown_w )
*************************************/
/* complete memory map derived from schematics */
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, segag80v_state )
AM_RANGE(0x0000, 0x07ff) AM_ROM /* CPU board ROM */
AM_RANGE(0x0800, 0xbfff) AM_ROM /* PROM board ROM area */
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(mainram_w) AM_BASE_MEMBER(segag80v_state, m_mainram)
@@ -389,7 +389,7 @@ ADDRESS_MAP_END
/* complete memory map derived from schematics */
-static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, AS_IO, 8, segag80v_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xbc, 0xbc) /* AM_READ ??? */
AM_RANGE(0xbd, 0xbe) AM_WRITE(multiply_w)
diff --git a/src/mame/drivers/segahang.c b/src/mame/drivers/segahang.c
index 85ab017813a..f6ad31c3e66 100644
--- a/src/mame/drivers/segahang.c
+++ b/src/mame/drivers/segahang.c
@@ -428,7 +428,7 @@ static READ8_HANDLER( sound_data_r )
*
*************************************/
-static ADDRESS_MAP_START( hangon_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hangon_map, AS_PROGRAM, 16, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x20c000, 0x20ffff) AM_RAM
@@ -442,7 +442,7 @@ static ADDRESS_MAP_START( hangon_map, AS_PROGRAM, 16 )
AM_RANGE(0xe00000, 0xffffff) AM_READWRITE(hangon_io_r, hangon_io_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sharrier_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sharrier_map, AS_PROGRAM, 16, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_RAM AM_BASE(&workram)
@@ -464,7 +464,7 @@ ADDRESS_MAP_END
*************************************/
/* On Super Hang On there is a memory mapper, like the System16 one, todo: emulate it! */
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x7ffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
@@ -480,7 +480,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map_2203, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map_2203, AS_PROGRAM, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x0800) AM_RAM
@@ -488,28 +488,28 @@ static ADDRESS_MAP_START( sound_map_2203, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe0ff) AM_MIRROR(0x0f00) AM_DEVREADWRITE("pcm", sega_pcm_r, sega_pcm_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap_2203, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap_2203, AS_IO, 8, segas1x_state )
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, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map_2151, AS_PROGRAM, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xf000, 0xf0ff) AM_MIRROR(0x700) AM_DEVREADWRITE("pcm", sega_pcm_r, sega_pcm_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap_2151, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap_2151, AS_IO, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_READ(sound_data_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap_2203x2, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap_2203x2, AS_IO, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
@@ -525,7 +525,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, segas1x_state )
ADDRESS_MAP_END
diff --git a/src/mame/drivers/segald.c b/src/mame/drivers/segald.c
index 8a64926d769..0adab6dc096 100644
--- a/src/mame/drivers/segald.c
+++ b/src/mame/drivers/segald.c
@@ -242,7 +242,7 @@ static WRITE8_HANDLER( astron_io_bankswitch_w )
/* PROGRAM MAP */
-static ADDRESS_MAP_START( mainmem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mainmem, AS_PROGRAM, 8, segald_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
@@ -260,7 +260,7 @@ ADDRESS_MAP_END
/* I/O MAP */
-static ADDRESS_MAP_START( mainport, AS_IO, 8 )
+static ADDRESS_MAP_START( mainport, AS_IO, 8, segald_state )
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 3f902eb093b..d482ca313c0 100644
--- a/src/mame/drivers/segaorun.c
+++ b/src/mame/drivers/segaorun.c
@@ -789,7 +789,7 @@ static WRITE16_HANDLER( shangon_custom_io_w )
*
*************************************/
-static ADDRESS_MAP_START( outrun_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( outrun_map, AS_PROGRAM, 16, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0xffffff) AM_READWRITE(segaic16_memory_mapper_lsb_r, segaic16_memory_mapper_lsb_w)
ADDRESS_MAP_END
@@ -802,7 +802,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x05ffff) AM_ROM AM_BASE(&cpu1rom)
@@ -819,14 +819,14 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf0ff) AM_MIRROR(0x0700) AM_DEVREADWRITE("pcm", sega_pcm_r, sega_pcm_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/segas16a.c b/src/mame/drivers/segas16a.c
index d1306320f02..e9ab104796a 100644
--- a/src/mame/drivers/segas16a.c
+++ b/src/mame/drivers/segas16a.c
@@ -1005,7 +1005,7 @@ static INTERRUPT_GEN( mcu_irq_assert )
*
*************************************/
-static ADDRESS_MAP_START( system16a_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( system16a_map, AS_PROGRAM, 16, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x380000) AM_ROM
AM_RANGE(0x400000, 0x407fff) AM_MIRROR(0xb88000) AM_RAM_WRITE(segaic16_tileram_0_w) AM_BASE(&segaic16_tileram_0)
@@ -1025,14 +1025,14 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, segas1x_state )
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, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -1048,7 +1048,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( n7751_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( n7751_portmap, AS_IO, 8, segas1x_state )
AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_READ(n7751_rom_r)
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(n7751_t1_r)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE("dac", dac_w)
@@ -1064,7 +1064,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xffff) AM_READWRITE(mcu_io_r, mcu_io_w)
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_READNOP AM_WRITE(mcu_control_w)
diff --git a/src/mame/drivers/segas16b.c b/src/mame/drivers/segas16b.c
index 4f04c514482..af0136a29c6 100644
--- a/src/mame/drivers/segas16b.c
+++ b/src/mame/drivers/segas16b.c
@@ -1837,7 +1837,7 @@ static WRITE16_HANDLER( sjryuko_custom_io_w )
*
*************************************/
-static ADDRESS_MAP_START( system16b_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( system16b_map, AS_PROGRAM, 16, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0xffffff) AM_READWRITE(segaic16_memory_mapper_lsb_r, segaic16_memory_mapper_lsb_w)
ADDRESS_MAP_END
@@ -1850,7 +1850,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xdfff) AM_ROMBANK("bank1")
@@ -1858,7 +1858,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -1875,7 +1875,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x001f) AM_MIRROR(0xff00) AM_READWRITE(segaic16_memory_mapper_r, segaic16_memory_mapper_w)
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_READ_PORT("SERVICE")
@@ -7071,7 +7071,7 @@ static MACHINE_START( isgsm )
memory_set_bankptr(machine,ISGSM_MAIN_BANK, machine.region("bios")->base());
}
-static ADDRESS_MAP_START( isgsm_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( isgsm_map, AS_PROGRAM, 16, segas1x_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROMBANK(ISGSM_MAIN_BANK) // this area is ALWAYS read-only, even when the game is banked in
AM_RANGE(0x200000, 0x23ffff) AM_RAM // used during startup for decompression
diff --git a/src/mame/drivers/segas18.c b/src/mame/drivers/segas18.c
index 40acdfda74d..39b2205c41c 100644
--- a/src/mame/drivers/segas18.c
+++ b/src/mame/drivers/segas18.c
@@ -606,7 +606,7 @@ static WRITE8_HANDLER( mcu_data_w )
*
*************************************/
-static ADDRESS_MAP_START( system18_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( system18_map, AS_PROGRAM, 16, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0xffffff) AM_READWRITE(segaic16_memory_mapper_lsb_r, segaic16_memory_mapper_lsb_w)
ADDRESS_MAP_END
@@ -619,7 +619,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x9fff) AM_ROM AM_REGION("soundcpu", 0x10000)
AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank1")
@@ -628,7 +628,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x83) AM_MIRROR(0x0c) AM_DEVREADWRITE("ym1", ym3438_r, ym3438_w)
@@ -645,7 +645,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
/* port 2 not used for high order address byte */
AM_RANGE(0x0000, 0x001f) AM_MIRROR(0xff00) AM_READWRITE(segaic16_memory_mapper_r, segaic16_memory_mapper_w)
diff --git a/src/mame/drivers/segas32.c b/src/mame/drivers/segas32.c
index ff8d08882ad..5cfe744726d 100644
--- a/src/mame/drivers/segas32.c
+++ b/src/mame/drivers/segas32.c
@@ -1200,7 +1200,7 @@ static WRITE8_HANDLER( sound_dummy_w )
*
*************************************/
-static ADDRESS_MAP_START( system32_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( system32_map, AS_PROGRAM, 16, segas32_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_MIRROR(0x0f0000) AM_RAM AM_BASE_MEMBER(segas32_state, m_system32_workram)
@@ -1218,7 +1218,7 @@ static ADDRESS_MAP_START( system32_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( multi32_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( multi32_map, AS_PROGRAM, 32, segas32_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xffffff)
AM_RANGE(0x000000, 0x1fffff) AM_ROM
@@ -1248,7 +1248,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( system32_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( system32_sound_map, AS_PROGRAM, 8, segas32_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM AM_REGION("soundcpu", 0x100000)
AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc00f) AM_MIRROR(0x0ff0) AM_DEVWRITE("rfsnd", rf5c68_w)
@@ -1256,7 +1256,7 @@ static ADDRESS_MAP_START( system32_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM AM_BASE_MEMBER(segas32_state, m_z80_shared_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( system32_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( system32_sound_portmap, AS_IO, 8, segas32_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x83) AM_MIRROR(0x0c) AM_DEVREADWRITE("ym1", ym3438_r, ym3438_w)
@@ -1269,14 +1269,14 @@ static ADDRESS_MAP_START( system32_sound_portmap, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( multi32_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( multi32_sound_map, AS_PROGRAM, 8, segas32_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM AM_REGION("soundcpu", 0x100000)
AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_DEVREADWRITE("sega", multipcm_r, multipcm_w)
AM_RANGE(0xe000, 0xffff) AM_RAM AM_BASE_MEMBER(segas32_state, m_z80_shared_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( multi32_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( multi32_sound_portmap, AS_IO, 8, segas32_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x83) AM_MIRROR(0x0c) AM_DEVREADWRITE("ymsnd", ym3438_r, ym3438_w)
@@ -1295,7 +1295,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( ga2_v25_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ga2_v25_map, AS_PROGRAM, 8, segas32_state )
AM_RANGE(0x00000, 0x0ffff) AM_ROM AM_REGION("mcu", 0)
AM_RANGE(0x10000, 0x1ffff) AM_RAM AM_BASE_MEMBER(segas32_state, m_ga2_dpram)
AM_RANGE(0xf0000, 0xfffff) AM_ROM AM_REGION("mcu", 0)
diff --git a/src/mame/drivers/segaxbd.c b/src/mame/drivers/segaxbd.c
index df7cae85f29..25e67046561 100644
--- a/src/mame/drivers/segaxbd.c
+++ b/src/mame/drivers/segaxbd.c
@@ -710,7 +710,7 @@ static WRITE16_HANDLER( smgp_excs_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x3fffff)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
@@ -749,7 +749,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
@@ -771,14 +771,14 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf0ff) AM_MIRROR(0x0700) AM_DEVREADWRITE("pcm", sega_pcm_r, sega_pcm_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -793,13 +793,13 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( smgp_comm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( smgp_comm_map, AS_PROGRAM, 8, segas1x_state )
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, AS_IO, 8 )
+static ADDRESS_MAP_START( smgp_comm_portmap, AS_IO, 8, segas1x_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/segaybd.c b/src/mame/drivers/segaybd.c
index a0f876563e9..d8ff07fbda9 100644
--- a/src/mame/drivers/segaybd.c
+++ b/src/mame/drivers/segaybd.c
@@ -416,7 +416,7 @@ static WRITE16_HANDLER( analog_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
@@ -438,7 +438,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( subx_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( subx_map, AS_PROGRAM, 16, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
@@ -451,7 +451,7 @@ static ADDRESS_MAP_START( subx_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( suby_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( suby_map, AS_PROGRAM, 16, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
@@ -473,14 +473,14 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf0ff) AM_MIRROR(0x0700) AM_DEVREADWRITE("pcm", sega_pcm_r, sega_pcm_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, segas1x_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/seibuspi.c b/src/mame/drivers/seibuspi.c
index d06ba61488d..d41ea41c94a 100644
--- a/src/mame/drivers/seibuspi.c
+++ b/src/mame/drivers/seibuspi.c
@@ -1032,7 +1032,7 @@ static READ32_HANDLER( soundrom_r )
/********************************************************************/
-static ADDRESS_MAP_START( spi_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( spi_map, AS_PROGRAM, 32, seibuspi_state )
AM_RANGE(0x00000000, 0x00000417) AM_RAM
AM_RANGE(0x00000418, 0x0000041b) AM_READWRITE(spi_layer_bank_r, spi_layer_bank_w)
AM_RANGE(0x0000041c, 0x0000041f) AM_READNOP
@@ -1061,7 +1061,7 @@ static ADDRESS_MAP_START( spi_map, AS_PROGRAM, 32 )
AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("user1", 0) AM_SHARE("share2") /* ROM location in real-mode */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spisound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spisound_map, AS_PROGRAM, 8, seibuspi_state )
AM_RANGE(0x0000, 0x3fff) AM_RAMBANK("bank5")
AM_RANGE(0x4002, 0x4002) AM_WRITENOP /* ack RST 10 */
AM_RANGE(0x4003, 0x4003) AM_WRITENOP /* Unknown */
@@ -1130,7 +1130,7 @@ static const ymf271_interface ymf271_config =
/********************************************************************/
-static ADDRESS_MAP_START( seibu386_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( seibu386_map, AS_PROGRAM, 32, seibuspi_state )
AM_RANGE(0x00000000, 0x00000417) AM_RAM
AM_RANGE(0x00000418, 0x0000041b) AM_READWRITE(spi_layer_bank_r, spi_layer_bank_w)
AM_RANGE(0x0000041c, 0x0000041f) AM_READNOP
@@ -1159,7 +1159,7 @@ static WRITE32_HANDLER(input_select_w)
state->m_ejsakura_input_port = data;
}
-static ADDRESS_MAP_START( sys386f2_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( sys386f2_map, AS_PROGRAM, 32, seibuspi_state )
AM_RANGE(0x00000000, 0x0000000f) AM_RAM
AM_RANGE(0x00000010, 0x00000013) AM_READ(spi_int_r) /* Unknown */
AM_RANGE(0x00000090, 0x00000097) AM_RAM /* Unknown */
diff --git a/src/mame/drivers/seicross.c b/src/mame/drivers/seicross.c
index a2c9eff1222..8242d165b21 100644
--- a/src/mame/drivers/seicross.c
+++ b/src/mame/drivers/seicross.c
@@ -111,7 +111,7 @@ static WRITE8_DEVICE_HANDLER( friskyt_portB_w )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, seicross_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x8820, 0x887f) AM_RAM AM_BASE_SIZE_MEMBER(seicross_state, m_spriteram, m_spriteram_size)
@@ -125,14 +125,14 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, AS_IO, 8, seicross_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_MIRROR(0x08) AM_DEVWRITE("aysnd", ay8910_address_data_w)
AM_RANGE(0x04, 0x04) AM_MIRROR(0x08) AM_DEVREAD("aysnd", ay8910_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_nvram_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_nvram_map, AS_PROGRAM, 8, seicross_state )
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x1000, 0x10ff) AM_RAM AM_BASE_SIZE_MEMBER(seicross_state, m_nvram, m_nvram_size)
AM_RANGE(0x2000, 0x2000) AM_DEVWRITE("dac", dac_w)
@@ -140,7 +140,7 @@ static ADDRESS_MAP_START( mcu_nvram_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_no_nvram_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_no_nvram_map, AS_PROGRAM, 8, seicross_state )
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x1003, 0x1003) AM_READ_PORT("DSW1") /* DSW1 */
AM_RANGE(0x1005, 0x1005) AM_READ_PORT("DSW2") /* DSW2 */
diff --git a/src/mame/drivers/sengokmj.c b/src/mame/drivers/sengokmj.c
index e29a046014b..27532398d3d 100644
--- a/src/mame/drivers/sengokmj.c
+++ b/src/mame/drivers/sengokmj.c
@@ -114,7 +114,7 @@ static READ16_HANDLER( sengokmj_system_r )
return (input_port_read(space->machine(), "SYSTEM") & 0xffbf) | state->m_hopper_io;
}
-static ADDRESS_MAP_START( sengokmj_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sengokmj_map, AS_PROGRAM, 16, sengokmj_state )
AM_RANGE(0x00000, 0x07fff) AM_RAM
AM_RANGE(0x08000, 0x09fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x0c000, 0x0c7ff) AM_RAM_WRITE(seibucrtc_sc0vram_w) AM_BASE(&seibucrtc_sc0vram)
@@ -126,7 +126,7 @@ static ADDRESS_MAP_START( sengokmj_map, AS_PROGRAM, 16 )
AM_RANGE(0xc0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sengokmj_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( sengokmj_io_map, AS_IO, 16, sengokmj_state )
AM_RANGE(0x4000, 0x400f) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
/*Areas from 8000-804f are for the custom Seibu CRTC.*/
AM_RANGE(0x8000, 0x804f) AM_RAM_WRITE(seibucrtc_vregs_w) AM_BASE(&seibucrtc_vregs)
diff --git a/src/mame/drivers/senjyo.c b/src/mame/drivers/senjyo.c
index ab5f051ba03..5f22343d26b 100644
--- a/src/mame/drivers/senjyo.c
+++ b/src/mame/drivers/senjyo.c
@@ -127,7 +127,7 @@ static WRITE8_HANDLER( senjyo_paletteram_w )
palette_set_color_rgb(space->machine(), offset, pal4bit(rr), pal4bit(gg), pal4bit(bb) );
}
-static ADDRESS_MAP_START( senjyo_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( senjyo_map, AS_PROGRAM, 8, senjyo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(senjyo_fgvideoram_w) AM_BASE_MEMBER(senjyo_state, m_fgvideoram)
@@ -159,7 +159,7 @@ static ADDRESS_MAP_START( senjyo_map, AS_PROGRAM, 8 )
AM_RANGE(0xd005, 0xd005) AM_READ_PORT("DSW2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( senjyo_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( senjyo_sound_map, AS_PROGRAM, 8, senjyo_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x8000, 0x8000) AM_DEVWRITE("sn1", sn76496_w)
@@ -172,7 +172,7 @@ static ADDRESS_MAP_START( senjyo_sound_map, AS_PROGRAM, 8 )
#endif
ADDRESS_MAP_END
-static ADDRESS_MAP_START( senjyo_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( senjyo_sound_io_map, AS_IO, 8, senjyo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("z80pio", z80pio_ba_cd_r, z80pio_ba_cd_w)
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("z80ctc", z80ctc_r, z80ctc_w)
@@ -197,7 +197,7 @@ static WRITE8_HANDLER(starforb_scrollx2)
state->m_scrollx1[offset] = data;
}
-static ADDRESS_MAP_START( starforb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( starforb_map, AS_PROGRAM, 8, senjyo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(senjyo_fgvideoram_w) AM_BASE_MEMBER(senjyo_state, m_fgvideoram)
@@ -229,7 +229,7 @@ static ADDRESS_MAP_START( starforb_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( starforb_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( starforb_sound_map, AS_PROGRAM, 8, senjyo_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x8000, 0x8000) AM_DEVWRITE("sn1", sn76496_w)
diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c
index b2949d9468b..eedd722d052 100644
--- a/src/mame/drivers/seta.c
+++ b/src/mame/drivers/seta.c
@@ -1582,7 +1582,7 @@ static SCREEN_VBLANK( seta_buffer_sprites )
writing to sharedram! */
-static ADDRESS_MAP_START( tndrcade_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tndrcade_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x200001) AM_WRITENOP // ? 0
AM_RANGE(0x280000, 0x280001) AM_WRITENOP // ? 0 / 1 (sub cpu related?)
@@ -1605,7 +1605,7 @@ ADDRESS_MAP_END
(with slight variations, and Meta Fox protection hooked in)
***************************************************************************/
-static ADDRESS_MAP_START( downtown_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( downtown_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x09ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x103fff) AM_DEVREADWRITE("x1snd", seta_sound_word_r,seta_sound_word_w) // Sound
AM_RANGE(0x200000, 0x200001) AM_NOP // watchdog? (twineagl)
@@ -1663,7 +1663,7 @@ static WRITE16_HANDLER( calibr50_soundlatch_w )
}
}
-static ADDRESS_MAP_START( calibr50_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( calibr50_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x09ffff) AM_ROM // ROM
AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
AM_RANGE(0x100000, 0x100007) AM_READNOP // ? (same as a00010-a00017?)
@@ -1748,7 +1748,7 @@ static WRITE16_HANDLER( usclssic_lockout_w )
}
-static ADDRESS_MAP_START( usclssic_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( usclssic_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
AM_RANGE(0x800000, 0x8005ff) AM_RAM AM_DEVREADWRITE("spritegen", spriteylow_r16, spriteylow_w16) // Sprites Y
@@ -1776,7 +1776,7 @@ ADDRESS_MAP_END
Athena no Hatena?
***************************************************************************/
-static ADDRESS_MAP_START( atehate_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( atehate_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x900000, 0x9fffff) AM_RAM // RAM
AM_RANGE(0x100000, 0x103fff) AM_DEVREADWRITE("x1snd", seta_sound_word_r,seta_sound_word_w) // Sound
@@ -1799,7 +1799,7 @@ ADDRESS_MAP_END
Blandia
***************************************************************************/
-static ADDRESS_MAP_START( blandia_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( blandia_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM (up to 2MB)
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM (main ram for zingzip, wrofaero writes to 20f000-20ffff)
AM_RANGE(0x210000, 0x21ffff) AM_RAM // RAM (gundhara)
@@ -1834,7 +1834,7 @@ ADDRESS_MAP_END
(with slight variations)
***************************************************************************/
-static ADDRESS_MAP_START( blandiap_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( blandiap_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM (up to 2MB)
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM (main ram for zingzip, wrofaero writes to 20f000-20ffff)
AM_RANGE(0x210000, 0x21ffff) AM_RAM // RAM (gundhara)
@@ -1916,7 +1916,7 @@ static WRITE16_HANDLER( zombraid_gun_w )
state->m_gun_old_clock = data & 1;
}
-static ADDRESS_MAP_START( wrofaero_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( wrofaero_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM (up to 2MB)
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_MEMBER(seta_state, m_workram) // RAM (pointer for zombraid crosshair hack)
AM_RANGE(0x210000, 0x21ffff) AM_RAM // RAM (gundhara)
@@ -1955,7 +1955,7 @@ static READ16_HANDLER( zingzipbl_unknown_r )
return 0x0000;
}
-static ADDRESS_MAP_START( zingzipbl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( zingzipbl_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM (up to 2MB)
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_MEMBER(seta_state, m_workram) // RAM (pointer for zombraid crosshair hack)
AM_RANGE(0x210000, 0x21ffff) AM_RAM // RAM (gundhara)
@@ -1993,7 +1993,7 @@ static ADDRESS_MAP_START( zingzipbl_map, AS_PROGRAM, 16 )
AM_RANGE(0xf00000, 0xf00001) AM_WRITENOP // ? Sound IRQ Ack
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jjsquawb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( jjsquawb_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM (up to 2MB)
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_MEMBER(seta_state, m_workram) // RAM (pointer for zombraid crosshair hack)
AM_RANGE(0x210000, 0x21ffff) AM_RAM // RAM (gundhara)
@@ -2030,7 +2030,7 @@ ADDRESS_MAP_END
Orbs
***************************************************************************/
-static ADDRESS_MAP_START( orbs_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( orbs_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM
AM_RANGE(0x100000, 0x100001) AM_READNOP // ?
@@ -2115,7 +2115,7 @@ static WRITE16_HANDLER( keroppi_prize_w )
}
}
-static ADDRESS_MAP_START( keroppi_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( keroppi_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM
AM_RANGE(0x100000, 0x100001) AM_READ(keroppi_protection_r) //
@@ -2149,7 +2149,7 @@ static MACHINE_START( keroppi )
***************************************************************************/
/* similar to krzybowl */
-static ADDRESS_MAP_START( blockcar_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( blockcar_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0xf00000, 0xf03fff) AM_RAM // RAM
AM_RANGE(0xf04000, 0xf041ff) AM_RAM // Backup RAM?
@@ -2174,7 +2174,7 @@ ADDRESS_MAP_END
Daioh
***************************************************************************/
-static ADDRESS_MAP_START( daioh_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( daioh_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // RAM
AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P1") // P1
@@ -2207,7 +2207,7 @@ ADDRESS_MAP_END
Dragon Unit, Quiz Kokology, Quiz Kokology 2, Strike Gunner
***************************************************************************/
-static ADDRESS_MAP_START( drgnunit_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( drgnunit_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM // ROM
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM (qzkklogy)
AM_RANGE(0xffc000, 0xffffff) AM_RAM // RAM (drgnunit,stg)
@@ -2271,7 +2271,7 @@ static READ16_HANDLER( setaroul_spritecode_r )
-static ADDRESS_MAP_START( setaroul_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( setaroul_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM // ROM
AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_SHARE("nvram")
@@ -2303,7 +2303,7 @@ ADDRESS_MAP_END
Extreme Downhill / Sokonuke
***************************************************************************/
-static ADDRESS_MAP_START( extdwnhl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( extdwnhl_map, AS_PROGRAM, 16, seta_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
@@ -2337,7 +2337,7 @@ ADDRESS_MAP_END
(Kamen) Masked Riders Club Battle Race / Mad Shark
***************************************************************************/
-static ADDRESS_MAP_START( kamenrid_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( kamenrid_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1") // P1
@@ -2370,7 +2370,7 @@ static ADDRESS_MAP_START( kamenrid_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
/* almost identical to kamenrid */
-static ADDRESS_MAP_START( madshark_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( madshark_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1") // P1
@@ -2427,7 +2427,7 @@ static READ16_HANDLER( krzybowl_input_r )
}
}
-static ADDRESS_MAP_START( krzybowl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( krzybowl_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM
AM_RANGE(0x100000, 0x100001) AM_READNOP // ?
@@ -2466,7 +2466,7 @@ static WRITE16_HANDLER( msgundam_vregs_w )
/* Mirror RAM is necessary or startup, to clear Work RAM after the test */
-static ADDRESS_MAP_START( msgundam_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( msgundam_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x1fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_MIRROR(0x70000) // RAM
@@ -2500,7 +2500,7 @@ ADDRESS_MAP_END
***************************************************************************/
/* similar to wrofaero */
-static ADDRESS_MAP_START( oisipuzl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( oisipuzl_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x17ffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
@@ -2529,7 +2529,7 @@ ADDRESS_MAP_END
/* Same as oisipuzl but with the sound system replaced */
-static ADDRESS_MAP_START( triplfun_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( triplfun_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x17ffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
@@ -2594,7 +2594,7 @@ static READ16_HANDLER( kiwame_input_r )
}
}
-static ADDRESS_MAP_START( kiwame_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( kiwame_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
AM_RANGE(0xfffc00, 0xffffff) AM_READWRITE(kiwame_nvram_r, kiwame_nvram_w) AM_BASE_MEMBER(seta_state, m_kiwame_nvram) // NVRAM + Regs ?
@@ -2625,7 +2625,7 @@ static WRITE16_HANDLER( thunderl_protection_w )
/* Similar to downtown etc. */
-static ADDRESS_MAP_START( thunderl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( thunderl_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM // ROM
AM_RANGE(0xffc000, 0xffffff) AM_RAM // RAM
AM_RANGE(0x100000, 0x103fff) AM_DEVREADWRITE("x1snd", seta_sound_word_r,seta_sound_word_w) // Sound
@@ -2649,7 +2649,7 @@ static ADDRESS_MAP_START( thunderl_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( thunderlbl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( thunderlbl_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM // ROM
AM_RANGE(0xffc000, 0xffffff) AM_RAM // RAM
// AM_RANGE(0x100000, 0x103fff) AM_DEVREADWRITE("x1snd", seta_sound_word_r,seta_sound_word_w) // Sound
@@ -2692,7 +2692,7 @@ static WRITE16_HANDLER( wiggie_soundlatch_w )
}
-static ADDRESS_MAP_START( wiggie_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( wiggie_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM // ROM
AM_RANGE(0xffc000, 0xffffff) AM_RAM // RAM
AM_RANGE(0x200000, 0x200001) AM_WRITENOP // ?
@@ -2714,7 +2714,7 @@ static ADDRESS_MAP_START( wiggie_map, AS_PROGRAM, 16 )
AM_RANGE(0xe04000, 0xe07fff) AM_RAM // (wits)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wiggie_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wiggie_sound_map, AS_PROGRAM, 8, seta_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
@@ -2726,7 +2726,7 @@ ADDRESS_MAP_END
Ultraman Club / SD Gundam Neo Battling
***************************************************************************/
-static ADDRESS_MAP_START( umanclub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( umanclub_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
AM_RANGE(0x300000, 0x3003ff) AM_RAM AM_BASE_SIZE_MEMBER(seta_state, m_paletteram, m_paletteram_size) // Palette
@@ -2759,7 +2759,7 @@ static WRITE16_HANDLER( utoukond_soundlatch_w )
}
}
-static ADDRESS_MAP_START( utoukond_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( utoukond_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P1") // P1
@@ -2802,7 +2802,7 @@ static WRITE16_HANDLER( pairlove_prot_w )
state->m_pairslove_protram[offset] = data;
}
-static ADDRESS_MAP_START( pairlove_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pairlove_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x100001) AM_WRITENOP // ? 1 (start of interrupts, main loop: watchdog?)
AM_RANGE(0x200000, 0x200001) AM_WRITENOP // ? 0/1 (IRQ acknowledge?)
@@ -2826,7 +2826,7 @@ ADDRESS_MAP_END
Crazy Fight
***************************************************************************/
-static ADDRESS_MAP_START( crazyfgt_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( crazyfgt_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM
AM_RANGE(0x610000, 0x610001) AM_READ_PORT("COINS")
@@ -2886,7 +2886,7 @@ static READ16_HANDLER( inttoote_700000_r )
return state->m_inttoote_700000[offset] & 0x3f;
}
-static ADDRESS_MAP_START( inttoote_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( inttoote_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM (up to 2MB)
AM_RANGE(0x200000, 0x200001) AM_RAM_READ(inttoote_key_r) AM_BASE_MEMBER(seta_state, m_inttoote_key_select)
@@ -2951,7 +2951,7 @@ static READ16_HANDLER( unk_r )
}
/* same as International Toote but without the protection and different RTC hook-up */
-static ADDRESS_MAP_START( jockeyc_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( jockeyc_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM (up to 2MB)
AM_RANGE(0x200000, 0x200001) AM_READWRITE(jockeyc_mux_r,jockeyc_mux_w)
@@ -3017,7 +3017,7 @@ static WRITE8_HANDLER( sub_bankswitch_lockout_w )
static READ8_HANDLER( ff_r ) {return 0xff;}
-static ADDRESS_MAP_START( tndrcade_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tndrcade_sub_map, AS_PROGRAM, 8, seta_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM // RAM
AM_RANGE(0x0800, 0x0800) AM_READ(ff_r) // ? (bits 0/1/2/3: 1 -> do test 0-ff/100-1e0/5001-57ff/banked rom)
//AM_RANGE(0x0800, 0x0800) AM_READ(soundlatch_r) //
@@ -3039,7 +3039,7 @@ ADDRESS_MAP_END
Twin Eagle
***************************************************************************/
-static ADDRESS_MAP_START( twineagl_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( twineagl_sub_map, AS_PROGRAM, 8, seta_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM // RAM
AM_RANGE(0x0800, 0x0800) AM_READ(soundlatch_r) //
AM_RANGE(0x0801, 0x0801) AM_READ(soundlatch2_r) //
@@ -3081,7 +3081,7 @@ static READ8_HANDLER( downtown_ip_r )
return 0;
}
-static ADDRESS_MAP_START( downtown_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( downtown_sub_map, AS_PROGRAM, 8, seta_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM // RAM
AM_RANGE(0x0800, 0x0800) AM_READ(soundlatch_r) //
AM_RANGE(0x0801, 0x0801) AM_READ(soundlatch2_r) //
@@ -3110,7 +3110,7 @@ static WRITE8_HANDLER( calibr50_soundlatch2_w )
device_spin_until_time(&space->device(), attotime::from_usec(50)); // Allow the other cpu to reply
}
-static ADDRESS_MAP_START( calibr50_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( calibr50_sub_map, AS_PROGRAM, 8, seta_state )
AM_RANGE(0x0000, 0x1fff) AM_DEVREADWRITE("x1snd", seta_sound_r,seta_sound_w) // Sound
AM_RANGE(0x4000, 0x4000) AM_READ(soundlatch_r) // From Main CPU
AM_RANGE(0x4000, 0x4000) AM_WRITE(sub_bankswitch_w) // Bankswitching
@@ -3124,7 +3124,7 @@ ADDRESS_MAP_END
Meta Fox
***************************************************************************/
-static ADDRESS_MAP_START( metafox_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( metafox_sub_map, AS_PROGRAM, 8, seta_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM // RAM
AM_RANGE(0x0800, 0x0800) AM_READ(soundlatch_r) //
AM_RANGE(0x0801, 0x0801) AM_READ(soundlatch2_r) //
@@ -3144,13 +3144,13 @@ ADDRESS_MAP_END
Ultra Toukon Densetsu
***************************************************************************/
-static ADDRESS_MAP_START( utoukond_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( utoukond_sound_map, AS_PROGRAM, 8, seta_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xefff) AM_RAM
AM_RANGE(0xf000, 0xffff) AM_DEVREADWRITE("x1snd", seta_sound_r,seta_sound_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( utoukond_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( utoukond_sound_io_map, AS_IO, 8, seta_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym3438_r, ym3438_w)
AM_RANGE(0x80, 0x80) AM_WRITENOP //?
@@ -8560,7 +8560,7 @@ static MACHINE_CONFIG_START( thunderl, seta_state )
MACHINE_CONFIG_END
-static ADDRESS_MAP_START( thunderlbl_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( thunderlbl_sound_map, AS_PROGRAM, 8, seta_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xdfff) AM_ROM//ROMBANK("bank1")
@@ -8568,7 +8568,7 @@ static ADDRESS_MAP_START( thunderlbl_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( thunderlbl_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( thunderlbl_sound_portmap, AS_IO, 8, seta_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c
index eddffe0013f..70ac271b5d6 100644
--- a/src/mame/drivers/seta2.c
+++ b/src/mame/drivers/seta2.c
@@ -149,7 +149,7 @@ static WRITE16_HANDLER( grdians_lockout_w )
// popmessage("%04X", data & 0xffff);
}
-static ADDRESS_MAP_START( grdians_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( grdians_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
AM_RANGE(0x304000, 0x30ffff) AM_RAM // ? seems tile data
@@ -187,7 +187,7 @@ static WRITE16_DEVICE_HANDLER( gundamex_eeprom_w )
eeprom->set_cs_line((data & 0x4) ? CLEAR_LINE : ASSERT_LINE);
}
-static ADDRESS_MAP_START( gundamex_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gundamex_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
AM_RANGE(0x500000, 0x57ffff) AM_ROM // ROM
@@ -253,7 +253,7 @@ static WRITE16_HANDLER( mj4simai_keyboard_w )
state->m_keyboard_row = data & 0xff;
}
-static ADDRESS_MAP_START( mj4simai_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mj4simai_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
AM_RANGE(0x600000, 0x600001) AM_READ(mj4simai_p1_r) // P1
@@ -277,7 +277,7 @@ ADDRESS_MAP_END
Kosodate Quiz My Angel
***************************************************************************/
-static ADDRESS_MAP_START( myangel_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( myangel_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("P1") // P1
@@ -300,7 +300,7 @@ ADDRESS_MAP_END
Kosodate Quiz My Angel 2
***************************************************************************/
-static ADDRESS_MAP_START( myangel2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( myangel2_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
AM_RANGE(0x600000, 0x600001) AM_READ_PORT("P1") // P1
@@ -345,7 +345,7 @@ static WRITE16_HANDLER( pzlbowl_coin_counter_w )
}
}
-static ADDRESS_MAP_START( pzlbowl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pzlbowl_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
AM_RANGE(0x400300, 0x400301) AM_READ_PORT("DSW1") // DSW 1
@@ -368,7 +368,7 @@ ADDRESS_MAP_END
Penguin Bros
***************************************************************************/
-static ADDRESS_MAP_START( penbros_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( penbros_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
AM_RANGE(0x210000, 0x23ffff) AM_RAM // RAM
@@ -428,7 +428,7 @@ static WRITE16_HANDLER( reelquak_coin_w )
// popmessage("COIN %04X", data & 0xffff);
}
-static ADDRESS_MAP_START( reelquak_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( reelquak_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_SHARE("nvram") // NVRAM (Battery Backed)
@@ -454,7 +454,7 @@ ADDRESS_MAP_END
***************************************************************************/
// To be done:
-static ADDRESS_MAP_START( namcostr_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( namcostr_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_BASE_SIZE_MEMBER(seta2_state, m_spriteram, m_spriteram_size) // Sprites
@@ -480,7 +480,7 @@ static WRITE16_HANDLER( samshoot_coin_w )
// popmessage("%04x",data);
}
-static ADDRESS_MAP_START( samshoot_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( samshoot_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE( 0x000000, 0x1fffff ) AM_ROM
AM_RANGE( 0x200000, 0x20ffff ) AM_RAM
AM_RANGE( 0x300000, 0x30ffff ) AM_RAM AM_SHARE("nvram")
@@ -625,7 +625,7 @@ static WRITE32_DEVICE_HANDLER( oki_write )
}
-static ADDRESS_MAP_START( funcube_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( funcube_map, AS_PROGRAM, 32, seta2_state )
AM_RANGE( 0x00000000, 0x0007ffff ) AM_ROM
AM_RANGE( 0x00200000, 0x0020ffff ) AM_RAM
@@ -646,7 +646,7 @@ ADDRESS_MAP_END
// Sub CPU
-static ADDRESS_MAP_START( funcube_sub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( funcube_sub_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE( 0x000000, 0x01ffff ) AM_ROM
AM_RANGE( 0x200000, 0x20017f ) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
@@ -761,7 +761,7 @@ static WRITE8_HANDLER( funcube_outputs_w )
}
-static ADDRESS_MAP_START( funcube_sub_io, AS_IO, 8 )
+static ADDRESS_MAP_START( funcube_sub_io, AS_IO, 8, seta2_state )
AM_RANGE( H8_PORT_7, H8_PORT_7 ) AM_READ( funcube_coins_r )
AM_RANGE( H8_PORT_4, H8_PORT_4 ) AM_NOP // unused
AM_RANGE( H8_PORT_A, H8_PORT_A ) AM_READWRITE( funcube_outputs_r, funcube_outputs_w ) AM_BASE_MEMBER( seta2_state, m_funcube_outputs )
diff --git a/src/mame/drivers/sf.c b/src/mame/drivers/sf.c
index 7456b324f0e..39105f6e812 100644
--- a/src/mame/drivers/sf.c
+++ b/src/mame/drivers/sf.c
@@ -189,7 +189,7 @@ static WRITE8_DEVICE_HANDLER( msm5205_w )
-static ADDRESS_MAP_START( sf_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sf_map, AS_PROGRAM, 16, sf_state )
AM_RANGE(0x000000, 0x04ffff) AM_ROM
AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(sf_videoram_w) AM_BASE_SIZE_MEMBER(sf_state, m_videoram, m_videoram_size)
AM_RANGE(0xb00000, 0xb007ff) AM_RAM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE_GENERIC(paletteram)
@@ -211,7 +211,7 @@ static ADDRESS_MAP_START( sf_map, AS_PROGRAM, 16 )
AM_RANGE(0xffe000, 0xffffff) AM_RAM AM_BASE_MEMBER(sf_state, m_objectram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sfus_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sfus_map, AS_PROGRAM, 16, sf_state )
AM_RANGE(0x000000, 0x04ffff) AM_ROM
AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(sf_videoram_w) AM_BASE_SIZE_MEMBER(sf_state, m_videoram, m_videoram_size)
AM_RANGE(0xb00000, 0xb007ff) AM_RAM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE_GENERIC(paletteram)
@@ -233,7 +233,7 @@ static ADDRESS_MAP_START( sfus_map, AS_PROGRAM, 16 )
AM_RANGE(0xffe000, 0xffffff) AM_RAM AM_BASE_MEMBER(sf_state, m_objectram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sfjp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sfjp_map, AS_PROGRAM, 16, sf_state )
AM_RANGE(0x000000, 0x04ffff) AM_ROM
AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(sf_videoram_w) AM_BASE_SIZE_MEMBER(sf_state, m_videoram, m_videoram_size)
AM_RANGE(0xb00000, 0xb007ff) AM_RAM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE_GENERIC(paletteram)
@@ -255,7 +255,7 @@ static ADDRESS_MAP_START( sfjp_map, AS_PROGRAM, 16 )
AM_RANGE(0xffe000, 0xffffff) AM_RAM AM_BASE_MEMBER(sf_state, m_objectram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, sf_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc800) AM_READ(soundlatch_r)
@@ -263,13 +263,13 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* Yes, _no_ ram */
-static ADDRESS_MAP_START( sound2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound2_map, AS_PROGRAM, 8, sf_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
AM_RANGE(0x0000, 0xffff) AM_WRITENOP /* avoid cluttering up error.log */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound2_io_map, AS_IO, 8, sf_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVWRITE("msm1", msm5205_w)
AM_RANGE(0x01, 0x01) AM_DEVWRITE("msm2", msm5205_w)
diff --git a/src/mame/drivers/sfbonus.c b/src/mame/drivers/sfbonus.c
index 4b355f4991d..e40f433d8fd 100644
--- a/src/mame/drivers/sfbonus.c
+++ b/src/mame/drivers/sfbonus.c
@@ -1056,7 +1056,7 @@ static SCREEN_UPDATE_IND16(sfbonus)
-static ADDRESS_MAP_START( sfbonus_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sfbonus_map, AS_PROGRAM, 8, sfbonus_state )
AM_RANGE(0x0000, 0xefff) AM_ROMBANK("bank1") AM_WRITE(sfbonus_videoram_w)
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_MEMBER(sfbonus_state, m_nvram) AM_SIZE_MEMBER(sfbonus_state, m_nvram_size)
ADDRESS_MAP_END
@@ -1131,7 +1131,7 @@ static WRITE8_HANDLER( sfbonus_2c01_w )
}
-static ADDRESS_MAP_START( sfbonus_io, AS_IO, 8 )
+static ADDRESS_MAP_START( sfbonus_io, AS_IO, 8, sfbonus_state )
AM_RANGE(0x0400, 0x0400) AM_READ_PORT("KEY1")
AM_RANGE(0x0408, 0x0408) AM_READ_PORT("KEY2")
AM_RANGE(0x0410, 0x0410) AM_READ_PORT("KEY3")
@@ -1231,7 +1231,7 @@ static NVRAM_HANDLER( sfbonus )
}
}
-static ADDRESS_MAP_START( ramdac_map, AS_0, 8 )
+static ADDRESS_MAP_START( ramdac_map, AS_0, 8, sfbonus_state )
AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE_MODERN("ramdac",ramdac_device,ramdac_pal_r,ramdac_rgb666_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/sfcbox.c b/src/mame/drivers/sfcbox.c
index 0f5f8250c0c..bef0e54ed53 100644
--- a/src/mame/drivers/sfcbox.c
+++ b/src/mame/drivers/sfcbox.c
@@ -119,7 +119,7 @@ How does the Super Famicom Box operates
#include "includes/snes.h"
#include "audio/snes_snd.h"
-static ADDRESS_MAP_START( snes_map, AS_PROGRAM, 8)
+static ADDRESS_MAP_START( snes_map, AS_PROGRAM, 8, snes_state )
AM_RANGE(0x000000, 0x2fffff) AM_READWRITE(snes_r_bank1, snes_w_bank1) /* I/O and ROM (repeats for each bank) */
AM_RANGE(0x300000, 0x3fffff) AM_READWRITE(snes_r_bank2, snes_w_bank2) /* I/O and ROM (repeats for each bank) */
AM_RANGE(0x400000, 0x5fffff) AM_READ(snes_r_bank3) /* ROM (and reserved in Mode 20) */
@@ -140,7 +140,7 @@ static WRITE8_DEVICE_HANDLER( spc_ram_100_w )
spc_ram_w(device, offset + 0x100, data);
}
-static ADDRESS_MAP_START( spc_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spc_mem, AS_PROGRAM, 8, snes_state )
AM_RANGE(0x0000, 0x00ef) AM_DEVREADWRITE("spc700", spc_ram_r, spc_ram_w) /* lower 32k ram */
AM_RANGE(0x00f0, 0x00ff) AM_DEVREADWRITE("spc700", spc_io_r, spc_io_w) /* spc io */
AM_RANGE(0x0100, 0xffff) AM_DEVWRITE("spc700", spc_ram_100_w)
diff --git a/src/mame/drivers/sfkick.c b/src/mame/drivers/sfkick.c
index 96253568e8c..a58c58763c8 100644
--- a/src/mame/drivers/sfkick.c
+++ b/src/mame/drivers/sfkick.c
@@ -314,7 +314,7 @@ static WRITE8_HANDLER(page3_w)
-static ADDRESS_MAP_START( sfkick_map, AS_PROGRAM, 8)
+static ADDRESS_MAP_START( sfkick_map, AS_PROGRAM, 8, sfkick_state )
AM_RANGE( 0x0000, 0x1fff) AM_ROMBANK("bank1")
AM_RANGE( 0x2000, 0x3fff) AM_ROMBANK("bank2")
AM_RANGE( 0x4000, 0x5fff) AM_ROMBANK("bank3")
@@ -329,7 +329,7 @@ static ADDRESS_MAP_START( sfkick_map, AS_PROGRAM, 8)
AM_RANGE( 0xc000, 0xffff) AM_WRITE( page3_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sfkick_io_map, AS_IO, 8)
+static ADDRESS_MAP_START( sfkick_io_map, AS_IO, 8, sfkick_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0xa0, 0xa7) AM_WRITE( soundlatch_w )
@@ -338,12 +338,12 @@ static ADDRESS_MAP_START( sfkick_io_map, AS_IO, 8)
AM_RANGE( 0xb4, 0xb5) AM_RAM /* loopback ? req by sfkicka (MSX Bios leftover)*/
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sfkick_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sfkick_sound_map, AS_PROGRAM, 8, sfkick_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sfkick_sound_io_map, AS_IO, 8)
+static ADDRESS_MAP_START( sfkick_sound_io_map, AS_IO, 8, sfkick_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
AM_RANGE(0x04, 0x05) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
diff --git a/src/mame/drivers/sg1000a.c b/src/mame/drivers/sg1000a.c
index 4f6d6824b27..4dec295974c 100644
--- a/src/mame/drivers/sg1000a.c
+++ b/src/mame/drivers/sg1000a.c
@@ -134,13 +134,13 @@ public:
*
*************************************/
-static ADDRESS_MAP_START( program_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( program_map, AS_PROGRAM, 8, sg1000a_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // separate region needed for decrypting
AM_RANGE(0x8000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_MIRROR(0x400)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, sg1000a_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x7f, 0x7f) AM_DEVWRITE("snsnd", sn76496_w)
AM_RANGE(0xbe, 0xbe) AM_DEVREADWRITE_MODERN("tms9928a", tms9928a_device, vram_read, vram_write)
diff --git a/src/mame/drivers/shadfrce.c b/src/mame/drivers/shadfrce.c
index 4db1acf7f10..419048b72b9 100644
--- a/src/mame/drivers/shadfrce.c
+++ b/src/mame/drivers/shadfrce.c
@@ -364,7 +364,7 @@ static TIMER_DEVICE_CALLBACK( shadfrce_scanline )
/* Memory Maps */
-static ADDRESS_MAP_START( shadfrce_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( shadfrce_map, AS_PROGRAM, 16, shadfrce_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(shadfrce_bg0videoram_w) AM_BASE_MEMBER(shadfrce_state,m_bg0videoram) /* video */
AM_RANGE(0x101000, 0x101fff) AM_RAM
@@ -399,7 +399,7 @@ static WRITE8_DEVICE_HANDLER( oki_bankswitch_w )
downcast<okim6295_device *>(device)->set_bank_base((data & 1) * 0x40000);
}
-static ADDRESS_MAP_START( shadfrce_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( shadfrce_sound_map, AS_PROGRAM, 8, shadfrce_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc801) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/shangha3.c b/src/mame/drivers/shangha3.c
index 0930a76ad9c..ac7a4f06cde 100644
--- a/src/mame/drivers/shangha3.c
+++ b/src/mame/drivers/shangha3.c
@@ -117,7 +117,7 @@ static WRITE16_HANDLER( heberpop_sound_command_w )
-static ADDRESS_MAP_START( shangha3_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( shangha3_map, AS_PROGRAM, 16, shangha3_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x200000, 0x200001) AM_READ_PORT("INPUTS")
@@ -135,7 +135,7 @@ static ADDRESS_MAP_START( shangha3_map, AS_PROGRAM, 16 )
AM_RANGE(0x360000, 0x360001) AM_WRITE(shangha3_gfxlist_addr_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( heberpop_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( heberpop_map, AS_PROGRAM, 16, shangha3_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x200000, 0x200001) AM_READ_PORT("INPUTS")
@@ -151,7 +151,7 @@ static ADDRESS_MAP_START( heberpop_map, AS_PROGRAM, 16 )
AM_RANGE(0x800000, 0xb7ffff) AM_READ(heberpop_gfxrom_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( blocken_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( blocken_map, AS_PROGRAM, 16, shangha3_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("INPUTS")
AM_RANGE(0x100002, 0x100003) AM_READ_PORT("SYSTEM")
@@ -168,12 +168,12 @@ static ADDRESS_MAP_START( blocken_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( heberpop_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( heberpop_sound_map, AS_PROGRAM, 8, shangha3_state )
AM_RANGE(0x0000, 0xf7ff) AM_ROM
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( heberpop_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( heberpop_sound_io_map, AS_IO, 8, shangha3_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym3438_r, ym3438_w)
AM_RANGE(0x80, 0x80) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
diff --git a/src/mame/drivers/shanghai.c b/src/mame/drivers/shanghai.c
index d8ffb062f0d..90f3f0aa808 100644
--- a/src/mame/drivers/shanghai.c
+++ b/src/mame/drivers/shanghai.c
@@ -132,20 +132,20 @@ static WRITE16_HANDLER( shanghai_coin_w )
}
}
-static ADDRESS_MAP_START( shanghai_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( shanghai_map, AS_PROGRAM, 16, shanghai_state )
AM_RANGE(0x00000, 0x03fff) AM_RAM
AM_RANGE(0x80000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shangha2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( shangha2_map, AS_PROGRAM, 16, shanghai_state )
AM_RANGE(0x00000, 0x03fff) AM_RAM
AM_RANGE(0x04000, 0x041ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x80000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shanghai_portmap, AS_IO, 16 )
+static ADDRESS_MAP_START( shanghai_portmap, AS_IO, 16, shanghai_state )
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("hd63484", hd63484_status_r, hd63484_address_w)
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("hd63484", hd63484_data_r, hd63484_data_w)
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE8("ymsnd", ym2203_r, ym2203_w, 0x00ff)
@@ -156,7 +156,7 @@ static ADDRESS_MAP_START( shanghai_portmap, AS_IO, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shangha2_portmap, AS_IO, 16 )
+static ADDRESS_MAP_START( shangha2_portmap, AS_IO, 16, shanghai_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("P1")
AM_RANGE(0x10, 0x11) AM_READ_PORT("P2")
AM_RANGE(0x20, 0x21) AM_READ_PORT("SYSTEM")
@@ -171,7 +171,7 @@ static READ16_HANDLER( kothello_hd63484_status_r )
return 0xff22; /* write FIFO ready + command end + read FIFO ready */
}
-static ADDRESS_MAP_START( kothello_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( kothello_map, AS_PROGRAM, 16, shanghai_state )
AM_RANGE(0x00000, 0x07fff) AM_RAM
AM_RANGE(0x08010, 0x08011) AM_READ(kothello_hd63484_status_r) AM_DEVWRITE("hd63484", hd63484_address_w)
AM_RANGE(0x08012, 0x08013) AM_DEVREADWRITE("hd63484", hd63484_data_r, hd63484_data_w)
diff --git a/src/mame/drivers/shangkid.c b/src/mame/drivers/shangkid.c
index dfa108c7570..1656014bde0 100644
--- a/src/mame/drivers/shangkid.c
+++ b/src/mame/drivers/shangkid.c
@@ -235,7 +235,7 @@ GFXDECODE_END
/***************************************************************************************/
-static ADDRESS_MAP_START( chinhero_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( chinhero_main_map, AS_PROGRAM, 8, shangkid_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* ? */
AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w)
@@ -254,7 +254,7 @@ static ADDRESS_MAP_START( chinhero_main_map, AS_PROGRAM, 8 )
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_BASE_MEMBER(shangkid_state, m_spriteram) AM_SHARE("share3")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shangkid_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( shangkid_main_map, AS_PROGRAM, 8, shangkid_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* ? */
@@ -277,7 +277,7 @@ ADDRESS_MAP_END
/***************************************************************************************/
-static ADDRESS_MAP_START( chinhero_bbx_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( chinhero_bbx_map, AS_PROGRAM, 8, shangkid_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* ? */
AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w)
@@ -295,7 +295,7 @@ static ADDRESS_MAP_START( chinhero_bbx_map, AS_PROGRAM, 8 )
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_SHARE("share3")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shangkid_bbx_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( shangkid_bbx_map, AS_PROGRAM, 8, shangkid_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* ? */
AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w)
@@ -314,29 +314,29 @@ static ADDRESS_MAP_START( shangkid_bbx_map, AS_PROGRAM, 8 )
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_SHARE("share3")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( chinhero_bbx_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( chinhero_bbx_portmap, AS_IO, 8, shangkid_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shangkid_bbx_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( shangkid_bbx_portmap, AS_IO, 8, shangkid_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
ADDRESS_MAP_END
/***************************************************************************************/
-static ADDRESS_MAP_START( chinhero_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( chinhero_sound_map, AS_PROGRAM, 8, shangkid_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shangkid_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( shangkid_sound_map, AS_PROGRAM, 8, shangkid_state )
AM_RANGE(0x0000, 0xdfff) AM_ROMBANK("bank2") /* sample player writes to ROM area */
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, shangkid_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(shangkid_soundlatch_r) AM_DEVWRITE("dac", dac_w)
ADDRESS_MAP_END
@@ -435,7 +435,7 @@ MACHINE_CONFIG_END
-static ADDRESS_MAP_START( dynamski_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dynamski_map, AS_PROGRAM, 8, shangkid_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE_MEMBER(shangkid_state, m_videoram) /* tilemap */
AM_RANGE(0xc800, 0xcbff) AM_RAM
@@ -450,7 +450,7 @@ static ADDRESS_MAP_START( dynamski_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf7ff) AM_RAM /* work ram */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dynamski_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( dynamski_portmap, AS_IO, 8, shangkid_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
/* ports are reversed */
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_data_address_w)
diff --git a/src/mame/drivers/shaolins.c b/src/mame/drivers/shaolins.c
index fed72f81cd7..49b05ff11aa 100644
--- a/src/mame/drivers/shaolins.c
+++ b/src/mame/drivers/shaolins.c
@@ -26,7 +26,7 @@ static TIMER_DEVICE_CALLBACK( shaolins_interrupt )
-static ADDRESS_MAP_START( shaolins_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( shaolins_map, AS_PROGRAM, 8, shaolins_state )
AM_RANGE(0x0000, 0x0000) AM_WRITE(shaolins_nmi_w) /* bit 0 = flip screen, bit 1 = nmi enable, bit 2 = ? */
/* bit 3, bit 4 = coin counters */
AM_RANGE(0x0100, 0x0100) AM_WRITE(watchdog_reset_w)
diff --git a/src/mame/drivers/shisen.c b/src/mame/drivers/shisen.c
index d53bb925c1d..c99375708df 100644
--- a/src/mame/drivers/shisen.c
+++ b/src/mame/drivers/shisen.c
@@ -42,7 +42,7 @@ static WRITE8_HANDLER( sichuan2_coin_w )
-static ADDRESS_MAP_START( shisen_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( shisen_map, AS_PROGRAM, 8, shisen_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc800, 0xcaff) AM_RAM_WRITE(sichuan2_paletteram_w) AM_BASE_MEMBER(shisen_state, m_paletteram)
@@ -50,7 +50,7 @@ static ADDRESS_MAP_START( shisen_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shisen_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( shisen_io_map, AS_IO, 8, shisen_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(sichuan2_dsw1_r, sichuan2_coin_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("DSW2") AM_DEVWRITE("m72", m72_sound_command_byte_w)
@@ -59,12 +59,12 @@ static ADDRESS_MAP_START( shisen_io_map, AS_IO, 8 )
AM_RANGE(0x04, 0x04) AM_READ_PORT("COIN")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shisen_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( shisen_sound_map, AS_PROGRAM, 8, shisen_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0xfd00, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shisen_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( shisen_sound_io_map, AS_IO, 8, shisen_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x80, 0x80) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/shootout.c b/src/mame/drivers/shootout.c
index ce66c3049a0..88872743754 100644
--- a/src/mame/drivers/shootout.c
+++ b/src/mame/drivers/shootout.c
@@ -64,7 +64,7 @@ static WRITE8_HANDLER( shootout_coin_counter_w )
/*******************************************************************************/
-static ADDRESS_MAP_START( shootout_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( shootout_map, AS_PROGRAM, 8, shootout_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_READ_PORT("DSW1") AM_WRITE(shootout_bankswitch_w)
AM_RANGE(0x1001, 0x1001) AM_READ_PORT("P1") AM_WRITE(shootout_flipscreen_w)
@@ -78,7 +78,7 @@ static ADDRESS_MAP_START( shootout_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shootouj_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( shootouj_map, AS_PROGRAM, 8, shootout_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_READ_PORT("DSW1")
AM_RANGE(0x1001, 0x1001) AM_READ_PORT("P1")
@@ -96,7 +96,7 @@ ADDRESS_MAP_END
/*******************************************************************************/
/* same as Tryout */
-static ADDRESS_MAP_START( shootout_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( shootout_sound_map, AS_PROGRAM, 8, shootout_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x4000, 0x4001) AM_DEVREADWRITE("ymsnd", ym2203_r,ym2203_w)
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/shougi.c b/src/mame/drivers/shougi.c
index a819b1b8f05..b43b804b5ab 100644
--- a/src/mame/drivers/shougi.c
+++ b/src/mame/drivers/shougi.c
@@ -274,7 +274,7 @@ static INTERRUPT_GEN( shougi_vblank_nmi )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, shougi_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM /* 2114 x 2 (0x400 x 4bit each) */
@@ -314,17 +314,17 @@ static READ8_HANDLER ( dummy_r )
return 0;
}
-static ADDRESS_MAP_START( readport_sub, AS_IO, 8 )
+static ADDRESS_MAP_START( readport_sub, AS_IO, 8, shougi_state )
ADDRESS_MAP_GLOBAL_MASK( 0x00ff )
AM_RANGE(0x00, 0x00) AM_READ(dummy_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, shougi_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_RAM AM_SHARE("share2") /* 2114 x 2 (0x400 x 4bit each) */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, shougi_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END
diff --git a/src/mame/drivers/shtzone.c b/src/mame/drivers/shtzone.c
index 25eb0f07722..5386b791b79 100644
--- a/src/mame/drivers/shtzone.c
+++ b/src/mame/drivers/shtzone.c
@@ -57,7 +57,7 @@ public:
: driver_device(mconfig, type, tag) { }
};
-static ADDRESS_MAP_START( shtzone_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( shtzone_map, AS_PROGRAM, 8, shtzone_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x5fff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/shuuz.c b/src/mame/drivers/shuuz.c
index 36373201e72..3419fac4835 100644
--- a/src/mame/drivers/shuuz.c
+++ b/src/mame/drivers/shuuz.c
@@ -138,7 +138,7 @@ static READ16_HANDLER( special_port0_r )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, shuuz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_READWRITE(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
AM_RANGE(0x101000, 0x101fff) AM_WRITE(atarigen_eeprom_enable_w)
diff --git a/src/mame/drivers/sidearms.c b/src/mame/drivers/sidearms.c
index 5cb692d13d6..a440c3bba4b 100644
--- a/src/mame/drivers/sidearms.c
+++ b/src/mame/drivers/sidearms.c
@@ -69,7 +69,7 @@ static READ8_HANDLER( turtship_ports_r )
}
-static ADDRESS_MAP_START( sidearms_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sidearms_map, AS_PROGRAM, 8, sidearms_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_split1_w) AM_BASE_GENERIC(paletteram)
@@ -90,7 +90,7 @@ static ADDRESS_MAP_START( sidearms_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("spriteram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( turtship_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( turtship_map, AS_PROGRAM, 8, sidearms_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM
@@ -111,7 +111,7 @@ static ADDRESS_MAP_START( turtship_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(sidearms_colorram_w) AM_BASE_MEMBER(sidearms_state,m_colorram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sidearms_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sidearms_sound_map, AS_PROGRAM, 8, sidearms_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r)
@@ -139,7 +139,7 @@ static WRITE8_HANDLER( whizz_bankswitch_w )
memory_set_bankptr(space->machine(), "bank1",&RAM[bankaddress]);
}
-static ADDRESS_MAP_START( whizz_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( whizz_map, AS_PROGRAM, 8, sidearms_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_split1_w) AM_BASE_GENERIC(paletteram)
@@ -163,12 +163,12 @@ static ADDRESS_MAP_START( whizz_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("spriteram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( whizz_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( whizz_sound_map, AS_PROGRAM, 8, sidearms_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( whizz_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( whizz_io_map, AS_IO, 8, sidearms_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x40, 0x40) AM_WRITENOP
diff --git a/src/mame/drivers/sidepckt.c b/src/mame/drivers/sidepckt.c
index 1c81d6b01bf..249a6ed3350 100644
--- a/src/mame/drivers/sidepckt.c
+++ b/src/mame/drivers/sidepckt.c
@@ -227,7 +227,7 @@ static WRITE8_HANDLER( sidepctj_i8751_w )
/******************************************************************************/
-static ADDRESS_MAP_START( sidepckt_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sidepckt_map, AS_PROGRAM, 8, sidepckt_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(sidepckt_videoram_w) AM_BASE_MEMBER(sidepckt_state,m_videoram) AM_SIZE_MEMBER(sidepckt_state,m_videoram_size)
AM_RANGE(0x1400, 0x17ff) AM_RAM // ???
@@ -246,7 +246,7 @@ static ADDRESS_MAP_START( sidepckt_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, sidepckt_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("ym2", ym3526_w)
diff --git a/src/mame/drivers/sigmab52.c b/src/mame/drivers/sigmab52.c
index b2c6118e42c..a54967c04f8 100644
--- a/src/mame/drivers/sigmab52.c
+++ b/src/mame/drivers/sigmab52.c
@@ -303,7 +303,7 @@ static READ8_HANDLER(unk_f721_r)
* Memory Maps *
*************************/
-static ADDRESS_MAP_START( jwildb52_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jwildb52_map, AS_PROGRAM, 8, sigmab52_state )
AM_RANGE(0x0000, 0x3fff) AM_RAM
AM_RANGE(0x4000, 0x7fff) AM_RAMBANK("bank1")
@@ -348,7 +348,7 @@ ADDRESS_MAP_END
*/
#ifdef UNUSED_CODE
-static ADDRESS_MAP_START( sound_prog_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_prog_map, AS_PROGRAM, 8, sigmab52_state )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
#endif
diff --git a/src/mame/drivers/sigmab98.c b/src/mame/drivers/sigmab98.c
index d83927023e9..d1be1f32267 100644
--- a/src/mame/drivers/sigmab98.c
+++ b/src/mame/drivers/sigmab98.c
@@ -450,7 +450,7 @@ static WRITE8_HANDLER( c8_w )
show_outputs(state);
}
-static ADDRESS_MAP_START( gegege_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gegege_mem_map, AS_PROGRAM, 8, sigmab98_state )
AM_RANGE( 0x0000, 0x7fff ) AM_ROM
AM_RANGE( 0x8000, 0x9fff ) AM_ROMBANK("rombank")
@@ -468,7 +468,7 @@ static ADDRESS_MAP_START( gegege_mem_map, AS_PROGRAM, 8 )
AM_RANGE( 0xf000, 0xffff ) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gegege_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( gegege_io_map, AS_IO, 8, sigmab98_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x01 ) AM_DEVWRITE( "ymz", ymz280b_w )
@@ -702,7 +702,7 @@ static READ8_HANDLER( sammymdl_coin_hopper_r )
return ret;
}
-static ADDRESS_MAP_START( animalc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( animalc_map, AS_PROGRAM, 8, sigmab98_state )
AM_RANGE( 0x0000, 0x3fff ) AM_ROM
AM_RANGE( 0x4000, 0x7fff ) AM_ROMBANK( "rombank" )
AM_RANGE( 0x8000, 0x8fff ) AM_RAMBANK( "rambank" ) AM_SHARE( "nvram" ) AM_BASE_MEMBER( sigmab98_state, m_nvram )
@@ -720,7 +720,7 @@ static ADDRESS_MAP_START( animalc_map, AS_PROGRAM, 8 )
AM_RANGE( 0xfe00, 0xffff ) AM_RAM // High speed internal RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( animalc_io, AS_IO, 8 )
+static ADDRESS_MAP_START( animalc_io, AS_IO, 8, sigmab98_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x02, 0x03 ) AM_READWRITE( animalc_rombank_r, animalc_rombank_w )
AM_RANGE( 0x04, 0x05 ) AM_READWRITE( animalc_rambank_r, animalc_rambank_w )
@@ -954,14 +954,14 @@ static WRITE8_HANDLER( haekaka_coin_w )
show_3_outputs(state);
}
-static ADDRESS_MAP_START( haekaka_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( haekaka_map, AS_PROGRAM, 8, sigmab98_state )
AM_RANGE( 0x0000, 0x7fff ) AM_ROM
AM_RANGE( 0xb000, 0xcfff ) AM_READWRITE( haekaka_b000_r, haekaka_b000_w )
AM_RANGE( 0xd000, 0xefff ) AM_RAM AM_SHARE( "nvram" ) AM_BASE_MEMBER( sigmab98_state, m_nvram )
AM_RANGE( 0xfe00, 0xffff ) AM_RAM // High speed internal RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( haekaka_io, AS_IO, 8 )
+static ADDRESS_MAP_START( haekaka_io, AS_IO, 8, sigmab98_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x02, 0x03 ) AM_READWRITE( haekaka_rombank_r, haekaka_rombank_w )
AM_RANGE( 0x04, 0x05 ) AM_READWRITE( haekaka_rambank_r, haekaka_rambank_w )
@@ -1190,7 +1190,7 @@ static READ8_HANDLER( itazuram_palette_r )
return space->machine().generic.paletteram.u8[offset];
}
-static ADDRESS_MAP_START( itazuram_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( itazuram_map, AS_PROGRAM, 8, sigmab98_state )
AM_RANGE( 0x0000, 0x37ff ) AM_ROM
AM_RANGE( 0x3800, 0x47ff ) AM_READ_BANK( "rombank0" ) AM_WRITE_BANK( "sprbank0" )
AM_RANGE( 0x4800, 0x57ff ) AM_READ_BANK( "rombank1" ) AM_WRITE_BANK( "sprbank1" )
@@ -1205,7 +1205,7 @@ static ADDRESS_MAP_START( itazuram_map, AS_PROGRAM, 8 )
AM_RANGE( 0xfe00, 0xffff ) AM_RAM // High speed internal RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( itazuram_io, AS_IO, 8 )
+static ADDRESS_MAP_START( itazuram_io, AS_IO, 8, sigmab98_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x02, 0x03 ) AM_READWRITE( itazuram_rombank_r, itazuram_rombank_w )
AM_RANGE( 0x04, 0x05 ) AM_READWRITE( itazuram_rambank_r, itazuram_rambank_w )
@@ -1226,7 +1226,7 @@ ADDRESS_MAP_END
Pye-nage Taikai
***************************************************************************/
-static ADDRESS_MAP_START( pyenaget_io, AS_IO, 8 )
+static ADDRESS_MAP_START( pyenaget_io, AS_IO, 8, sigmab98_state )
AM_RANGE( 0x31, 0x31 ) AM_WRITE( sammymdl_coin_w )
AM_IMPORT_FROM( haekaka_io )
ADDRESS_MAP_END
@@ -1418,14 +1418,14 @@ static WRITE8_HANDLER( tdoboon_c000_w )
logerror("%s: unknown write to %02x = %02x with rombank = %02x\n", space->machine().describe_context(), offset+0xc000, data, state->m_rombank);
}
-static ADDRESS_MAP_START( tdoboon_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tdoboon_map, AS_PROGRAM, 8, sigmab98_state )
AM_RANGE( 0x0000, 0xbfff ) AM_ROM
AM_RANGE( 0xc000, 0xcfff ) AM_READWRITE( tdoboon_c000_r, tdoboon_c000_w )
AM_RANGE( 0xd000, 0xefff ) AM_RAM AM_SHARE( "nvram" ) AM_BASE_MEMBER( sigmab98_state, m_nvram )
AM_RANGE( 0xfe00, 0xffff ) AM_RAM // High speed internal RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tdoboon_io, AS_IO, 8 )
+static ADDRESS_MAP_START( tdoboon_io, AS_IO, 8, sigmab98_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x02, 0x03 ) AM_READWRITE( tdoboon_rombank_r, tdoboon_rombank_w )
AM_RANGE( 0x04, 0x05 ) AM_READWRITE( tdoboon_rambank_r, tdoboon_rambank_w )
diff --git a/src/mame/drivers/silkroad.c b/src/mame/drivers/silkroad.c
index 5e710a55c3b..f8ea17301f0 100644
--- a/src/mame/drivers/silkroad.c
+++ b/src/mame/drivers/silkroad.c
@@ -152,7 +152,7 @@ static WRITE32_HANDLER(silk_coin_counter_w)
}
}
-static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 32, silkroad_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x40c000, 0x40cfff) AM_RAM AM_BASE_MEMBER(silkroad_state,m_sprram) // sprites
AM_RANGE(0x600000, 0x603fff) AM_RAM_WRITE(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE_GENERIC(paletteram) // palette
diff --git a/src/mame/drivers/simpl156.c b/src/mame/drivers/simpl156.c
index bdb68f900ce..77986601d9d 100644
--- a/src/mame/drivers/simpl156.c
+++ b/src/mame/drivers/simpl156.c
@@ -248,7 +248,7 @@ static WRITE32_HANDLER( simpl156_pf2_rowscroll_w )
/* Memory Map controled by PALs */
/* Joe and Mac Returns */
-static ADDRESS_MAP_START( joemacr_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( joemacr_map, AS_PROGRAM, 32, simpl156_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x107fff) AM_READWRITE(simpl156_mainram_r, simpl156_mainram_w) AM_BASE_MEMBER(simpl156_state, m_mainram) // main ram
AM_RANGE(0x110000, 0x111fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w)
@@ -269,7 +269,7 @@ ADDRESS_MAP_END
/* Chain Reaction */
-static ADDRESS_MAP_START( chainrec_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( chainrec_map, AS_PROGRAM, 32, simpl156_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // rom (32-bit)
AM_RANGE(0x200000, 0x200003) AM_READ(simpl156_inputs_read)
AM_RANGE(0x201000, 0x201fff) AM_RAM AM_BASE_MEMBER(simpl156_state, m_systemram) // work ram (32-bit)
@@ -290,7 +290,7 @@ ADDRESS_MAP_END
/* Magical Drop */
-static ADDRESS_MAP_START( magdrop_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( magdrop_map, AS_PROGRAM, 32, simpl156_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x200003) AM_READ(simpl156_inputs_read)
AM_RANGE(0x201000, 0x201fff) AM_RAM AM_BASE_MEMBER(simpl156_state, m_systemram) // work ram (32-bit)
@@ -311,7 +311,7 @@ ADDRESS_MAP_END
/* Magical Drop Plus 1 */
-static ADDRESS_MAP_START( magdropp_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( magdropp_map, AS_PROGRAM, 32, simpl156_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x200003) AM_READ(simpl156_inputs_read)
AM_RANGE(0x201000, 0x201fff) AM_RAM AM_BASE_MEMBER(simpl156_state, m_systemram) // work ram (32-bit)
@@ -332,7 +332,7 @@ ADDRESS_MAP_END
/* Mitchell MT5601-0 PCB (prtytime, charlien, osman) */
-static ADDRESS_MAP_START( mitchell156_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( mitchell156_map, AS_PROGRAM, 32, simpl156_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100003) AM_DEVREADWRITE8_MODERN("okisfx", okim6295_device, read, write, 0x000000ff)
AM_RANGE(0x140000, 0x140003) AM_DEVREADWRITE8_MODERN("okimusic", okim6295_device, read, write, 0x000000ff)
diff --git a/src/mame/drivers/simpsons.c b/src/mame/drivers/simpsons.c
index 257d03f1873..7a2abafe1e1 100644
--- a/src/mame/drivers/simpsons.c
+++ b/src/mame/drivers/simpsons.c
@@ -83,7 +83,7 @@ Custom ICs - 053260 - sound chip (QFP80)
***************************************************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, simpsons_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1f80, 0x1f80) AM_READ_PORT("COIN")
AM_RANGE(0x1f81, 0x1f81) AM_READ_PORT("TEST")
@@ -133,7 +133,7 @@ static WRITE8_HANDLER( z80_arm_nmi_w )
space->machine().scheduler().timer_set(attotime::from_usec(25), FUNC(nmi_callback)); /* kludge until the K053260 is emulated correctly */
}
-static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8, simpsons_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
AM_RANGE(0xf000, 0xf7ff) AM_RAM
diff --git a/src/mame/drivers/skeetsht.c b/src/mame/drivers/skeetsht.c
index edc28386e52..a724efb1287 100644
--- a/src/mame/drivers/skeetsht.c
+++ b/src/mame/drivers/skeetsht.c
@@ -169,14 +169,14 @@ static WRITE8_HANDLER( ay8910_w )
*
*************************************/
-static ADDRESS_MAP_START( hc11_pgm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hc11_pgm_map, AS_PROGRAM, 8, skeetsht_state )
AM_RANGE(0x2800, 0x2807) AM_READWRITE(tms_r, tms_w)
AM_RANGE(0x1800, 0x1800) AM_WRITE(ay8910_w)
AM_RANGE(0xb600, 0xbdff) AM_RAM //internal EEPROM
AM_RANGE(0x0000, 0xffff) AM_ROM AM_REGION("68hc11", 0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hc11_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( hc11_io_map, AS_IO, 8, skeetsht_state )
AM_RANGE(MC68HC11_IO_PORTA, MC68HC11_IO_PORTA) AM_READWRITE(hc11_porta_r, hc11_porta_w)
ADDRESS_MAP_END
@@ -187,7 +187,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( tms_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tms_program_map, AS_PROGRAM, 16, skeetsht_state )
AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, tms34010_io_register_w)
AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_BASE_MEMBER(skeetsht_state,m_tms_vram)
AM_RANGE(0x00440000, 0x004fffff) AM_READWRITE(ramdac_r, ramdac_w)
diff --git a/src/mame/drivers/skimaxx.c b/src/mame/drivers/skimaxx.c
index 3324ac37825..aa7130ebad1 100644
--- a/src/mame/drivers/skimaxx.c
+++ b/src/mame/drivers/skimaxx.c
@@ -308,7 +308,7 @@ static READ32_HANDLER( skimaxx_analog_r )
*
*************************************/
-static ADDRESS_MAP_START( 68030_1_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( 68030_1_map, AS_PROGRAM, 32, skimaxx_state )
AM_RANGE(0x00000000, 0x001fffff) AM_ROM
AM_RANGE(0x10000000, 0x10000003) AM_WRITE( skimaxx_sub_ctrl_w )
AM_RANGE(0x10100000, 0x1010000f) AM_READWRITE(m68k_tms_r, m68k_tms_w)//AM_NOP
@@ -341,7 +341,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( 68030_2_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( 68030_2_map, AS_PROGRAM, 32, skimaxx_state )
AM_RANGE(0x00000000, 0x003fffff) AM_ROM
AM_RANGE(0x20000000, 0x2007ffff) AM_READ ( skimaxx_blitter_r ) // do blit
@@ -365,7 +365,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( tms_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tms_program_map, AS_PROGRAM, 16, skimaxx_state )
AM_RANGE(0x00000000, 0x000100ff) AM_RAM
AM_RANGE(0x00008000, 0x0003ffff) AM_RAM
AM_RANGE(0x00050000, 0x0005ffff) AM_RAM
diff --git a/src/mame/drivers/skullxbo.c b/src/mame/drivers/skullxbo.c
index 41b1999e393..ebc2563fb9e 100644
--- a/src/mame/drivers/skullxbo.c
+++ b/src/mame/drivers/skullxbo.c
@@ -125,7 +125,7 @@ static WRITE16_HANDLER( skullxbo_mobwr_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, skullxbo_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0xff0000, 0xff07ff) AM_WRITE(skullxbo_mobmsb_w)
AM_RANGE(0xff0800, 0xff0bff) AM_WRITE(skullxbo_halt_until_hblank_0_w)
diff --git a/src/mame/drivers/skyarmy.c b/src/mame/drivers/skyarmy.c
index 80da277bd19..7fcc2483821 100644
--- a/src/mame/drivers/skyarmy.c
+++ b/src/mame/drivers/skyarmy.c
@@ -162,7 +162,7 @@ static WRITE8_HANDLER( nmi_enable_w )
}
-static ADDRESS_MAP_START( skyarmy_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( skyarmy_map, AS_PROGRAM, 8, skyarmy_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(skyarmy_videoram_w) AM_BASE_MEMBER(skyarmy_state,m_videoram) /* Video RAM */
@@ -179,7 +179,7 @@ static ADDRESS_MAP_START( skyarmy_map, AS_PROGRAM, 8 )
AM_RANGE(0xa007, 0xa007) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( skyarmy_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( skyarmy_io_map, AS_IO, 8, skyarmy_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x05) AM_DEVWRITE("aysnd", ay8910_address_data_w)
AM_RANGE(0x06, 0x06) AM_DEVREAD("aysnd", ay8910_r)
diff --git a/src/mame/drivers/skydiver.c b/src/mame/drivers/skydiver.c
index 8dca7f43bc4..b32a6235cdf 100644
--- a/src/mame/drivers/skydiver.c
+++ b/src/mame/drivers/skydiver.c
@@ -186,7 +186,7 @@ static WRITE8_DEVICE_HANDLER( skydiver_whistle_w )
*
*************************************/
-static ADDRESS_MAP_START( skydiver_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( skydiver_map, AS_PROGRAM, 8, skydiver_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x4300) AM_READWRITE(skydiver_wram_r, skydiver_wram_w)
AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x4000) AM_RAM /* RAM B1 */
diff --git a/src/mame/drivers/skyfox.c b/src/mame/drivers/skyfox.c
index 6c0ee953211..a4aee79985d 100644
--- a/src/mame/drivers/skyfox.c
+++ b/src/mame/drivers/skyfox.c
@@ -35,7 +35,7 @@ Verified Dip locations and recommended settings with manual
Sky Fox
***************************************************************************/
-static ADDRESS_MAP_START( skyfox_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( skyfox_map, AS_PROGRAM, 8, skyfox_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM // ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM // RAM
AM_RANGE(0xd000, 0xd3ff) AM_RAM AM_BASE_SIZE_MEMBER(skyfox_state, m_spriteram, m_spriteram_size) // Sprites
@@ -63,7 +63,7 @@ ADDRESS_MAP_END
***************************************************************************/
-static ADDRESS_MAP_START( skyfox_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( skyfox_sound_map, AS_PROGRAM, 8, skyfox_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM // RAM
// AM_RANGE(0x9000, 0x9001) AM_WRITENOP // ??
diff --git a/src/mame/drivers/skykid.c b/src/mame/drivers/skykid.c
index 27ddbb58bfc..65d92cf2f34 100644
--- a/src/mame/drivers/skykid.c
+++ b/src/mame/drivers/skykid.c
@@ -103,7 +103,7 @@ static MACHINE_START( skykid )
-static ADDRESS_MAP_START( skykid_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( skykid_map, AS_PROGRAM, 8, skykid_state )
AM_RANGE(0x0000, 0x1fff) AM_ROMBANK("bank1") /* banked ROM */
AM_RANGE(0x2000, 0x2fff) AM_READWRITE(skykid_videoram_r,skykid_videoram_w) AM_BASE_MEMBER(skykid_state, m_videoram)/* Video RAM (background) */
AM_RANGE(0x4000, 0x47ff) AM_READWRITE(skykid_textram_r,skykid_textram_w) AM_BASE_MEMBER(skykid_state, m_textram) /* video RAM (text layer) */
@@ -119,7 +119,7 @@ static ADDRESS_MAP_START( skykid_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xa001) AM_WRITE(skykid_flipscreen_priority_w) /* flip screen & priority */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, skykid_state )
AM_RANGE(0x0000, 0x001f) AM_READWRITE(m6801_io_r, m6801_io_w)
AM_RANGE(0x0080, 0x00ff) AM_RAM
AM_RANGE(0x1000, 0x13ff) AM_DEVREADWRITE("namco", namcos1_cus30_r, namcos1_cus30_w) /* PSG device, shared RAM */
@@ -136,7 +136,7 @@ static READ8_HANDLER( readFF )
return 0xff;
}
-static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8, skykid_state )
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ(inputport_r) /* input ports read */
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_WRITE(inputport_select_w) /* input port select */
AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ(readFF) /* leds won't work otherwise */
diff --git a/src/mame/drivers/skylncr.c b/src/mame/drivers/skylncr.c
index 45369f0c55a..22dabacc5ec 100644
--- a/src/mame/drivers/skylncr.c
+++ b/src/mame/drivers/skylncr.c
@@ -342,7 +342,7 @@ static WRITE8_HANDLER( skylncr_nmi_enable_w )
* Memory Map *
**************************************/
-static ADDRESS_MAP_START( mem_map_skylncr, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mem_map_skylncr, AS_PROGRAM, 8, skylncr_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram")
@@ -400,7 +400,7 @@ static ADDRESS_MAP_START( mem_map_skylncr, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map_skylncr, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map_skylncr, AS_IO, 8, skylncr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) /* Input Ports */
diff --git a/src/mame/drivers/skyraid.c b/src/mame/drivers/skyraid.c
index 1441ac8d8d5..419a8a7e37e 100644
--- a/src/mame/drivers/skyraid.c
+++ b/src/mame/drivers/skyraid.c
@@ -72,7 +72,7 @@ static WRITE8_HANDLER( skyraid_scroll_w )
}
-static ADDRESS_MAP_START( skyraid_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( skyraid_map, AS_PROGRAM, 8, skyraid_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x300)
AM_RANGE(0x0400, 0x040f) AM_WRITEONLY AM_BASE_MEMBER(skyraid_state, m_pos_ram)
AM_RANGE(0x0800, 0x087f) AM_RAM AM_MIRROR(0x480) AM_BASE_MEMBER(skyraid_state, m_alpha_num_ram)
diff --git a/src/mame/drivers/slapfght.c b/src/mame/drivers/slapfght.c
index 68844cdfd6b..300ff194c9d 100644
--- a/src/mame/drivers/slapfght.c
+++ b/src/mame/drivers/slapfght.c
@@ -269,7 +269,7 @@ Stephh's notes (based on the games Z80 code and some tests) :
#include "includes/slapfght.h"
-static ADDRESS_MAP_START( perfrman_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( perfrman_map, AS_PROGRAM, 8, slapfght_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x880f) AM_RAM AM_SHARE("share1")
@@ -279,7 +279,7 @@ static ADDRESS_MAP_START( perfrman_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("spriteram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tigerh_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tigerh_map, AS_PROGRAM, 8, slapfght_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc80f) AM_RAM AM_SHARE("share1")
@@ -294,7 +294,7 @@ static ADDRESS_MAP_START( tigerh_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(slapfight_fixcol_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_fixcolorram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slapfght_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slapfght_map, AS_PROGRAM, 8, slapfght_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc7ff) AM_RAM
@@ -311,7 +311,7 @@ static ADDRESS_MAP_START( slapfght_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(slapfight_fixcol_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_fixcolorram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slapfighb2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slapfighb2_map, AS_PROGRAM, 8, slapfght_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc7ff) AM_RAM
@@ -328,7 +328,7 @@ static ADDRESS_MAP_START( slapfighb2_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(slapfight_fixcol_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_fixcolorram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slapfght_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( slapfght_io_map, AS_IO, 8, slapfght_state )
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)
@@ -341,7 +341,7 @@ static ADDRESS_MAP_START( slapfght_io_map, AS_IO, 8 )
AM_RANGE(0x0c, 0x0d) AM_WRITE(slapfight_palette_bank_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slapfight_m68705_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slapfight_m68705_map, AS_PROGRAM, 8, slapfght_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(slapfight_68705_portA_r, slapfight_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(slapfight_68705_portB_r, slapfight_68705_portB_w)
@@ -358,7 +358,7 @@ static READ8_HANDLER(tigerh_status_r)
return (slapfight_port_00_r(space, 0) & 0xf9)| ((tigerh_mcu_status_r(space, 0)));
}
-static ADDRESS_MAP_START( tigerh_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( tigerh_io_map, AS_IO, 8, slapfght_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(tigerh_status_r, slapfight_port_00_w) /* status register */
AM_RANGE(0x01, 0x01) AM_WRITE(slapfight_port_01_w)
@@ -367,7 +367,7 @@ static ADDRESS_MAP_START( tigerh_io_map, AS_IO, 8 )
AM_RANGE(0x07, 0x07) AM_WRITE(slapfight_port_07_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tigerhb_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( tigerhb_io_map, AS_IO, 8, slapfght_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(slapfight_port_00_r, slapfight_port_00_w) /* status register */
AM_RANGE(0x01, 0x01) AM_WRITE(slapfight_port_01_w)
@@ -376,7 +376,7 @@ static ADDRESS_MAP_START( tigerhb_io_map, AS_IO, 8 )
AM_RANGE(0x07, 0x07) AM_WRITE(slapfight_port_07_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tigerh_m68705_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tigerh_m68705_map, AS_PROGRAM, 8, slapfght_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(tigerh_68705_portA_r,tigerh_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(tigerh_68705_portB_r,tigerh_68705_portB_w)
@@ -388,7 +388,7 @@ static ADDRESS_MAP_START( tigerh_m68705_map, AS_PROGRAM, 8 )
AM_RANGE(0x0080, 0x07ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( perfrman_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( perfrman_sound_map, AS_PROGRAM, 8, slapfght_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x8800, 0x880f) AM_RAM AM_SHARE("share1")
AM_RANGE(0x8810, 0x8fff) AM_RAMBANK("bank1") /* Shared RAM with main CPU */
@@ -402,7 +402,7 @@ static ADDRESS_MAP_START( perfrman_sound_map, AS_PROGRAM, 8 )
// AM_RANGE(0xa0f0, 0xa0f0) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slapfght_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slapfght_sound_map, AS_PROGRAM, 8, slapfght_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0xa080, 0xa080) AM_DEVWRITE("ay1", ay8910_address_w)
AM_RANGE(0xa081, 0xa081) AM_DEVREAD("ay1", ay8910_r)
diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c
index d785ce036d9..2f20141b270 100644
--- a/src/mame/drivers/slapshot.c
+++ b/src/mame/drivers/slapshot.c
@@ -289,7 +289,7 @@ static READ16_HANDLER( slapshot_msb_sound_r )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( slapshot_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( slapshot_map, AS_PROGRAM, 16, slapshot_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x500000, 0x50ffff) AM_RAM /* main RAM */
AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_BASE_SIZE_MEMBER(slapshot_state, m_spriteram, m_spriteram_size) /* sprite ram */
@@ -304,7 +304,7 @@ static ADDRESS_MAP_START( slapshot_map, AS_PROGRAM, 16 )
AM_RANGE(0xd00000, 0xd00003) AM_READWRITE(slapshot_msb_sound_r, slapshot_msb_sound_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( opwolf3_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( opwolf3_map, AS_PROGRAM, 16, slapshot_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x500000, 0x50ffff) AM_RAM /* main RAM */
AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_BASE_SIZE_MEMBER(slapshot_state, m_spriteram, m_spriteram_size) /* sprite ram */
@@ -323,7 +323,7 @@ ADDRESS_MAP_END
/***************************************************************************/
-static ADDRESS_MAP_START( opwolf3_z80_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( opwolf3_z80_sound_map, AS_PROGRAM, 8, slapshot_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10")
AM_RANGE(0xc000, 0xdfff) AM_RAM
diff --git a/src/mame/drivers/sliver.c b/src/mame/drivers/sliver.c
index 96b649c8641..6af45aa2bae 100644
--- a/src/mame/drivers/sliver.c
+++ b/src/mame/drivers/sliver.c
@@ -314,7 +314,7 @@ static WRITE16_HANDLER(sound_w)
cputag_set_input_line(space->machine(), "audiocpu", MCS51_INT0_LINE, HOLD_LINE);
}
-static ADDRESS_MAP_START( sliver_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sliver_map, AS_PROGRAM, 16, sliver_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_DEVWRITE8_MODERN("ramdac", ramdac_device, index_w, 0x00ff)
@@ -351,11 +351,11 @@ static WRITE8_HANDLER(oki_setbank)
memcpy(sound+0x20000, sound+0x100000+0x20000*bank, 0x20000);
}
-static ADDRESS_MAP_START( soundmem_prg, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( soundmem_prg, AS_PROGRAM, 8, sliver_state )
AM_RANGE(0x0000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( soundmem_io, AS_IO, 8 )
+static ADDRESS_MAP_START( soundmem_io, AS_IO, 8, sliver_state )
AM_RANGE(0x0100, 0x0100) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
AM_RANGE(0x0101, 0x0101) AM_READ(soundlatch_r)
/* ports */
@@ -449,7 +449,7 @@ static INPUT_PORTS_START( sliver )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
INPUT_PORTS_END
-static ADDRESS_MAP_START( ramdac_map, AS_0, 8 )
+static ADDRESS_MAP_START( ramdac_map, AS_0, 8, sliver_state )
AM_RANGE(0x000, 0x3ff) AM_RAM AM_BASE_MEMBER(sliver_state,m_colorram)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/slotcarn.c b/src/mame/drivers/slotcarn.c
index 0fb393ad907..2761e4b4000 100644
--- a/src/mame/drivers/slotcarn.c
+++ b/src/mame/drivers/slotcarn.c
@@ -179,7 +179,7 @@ static const mc6845_interface mc6845_intf =
* Memory Map *
*******************************/
-static ADDRESS_MAP_START( slotcarn_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slotcarn_map, AS_PROGRAM, 8, slotcarn_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x67ff) AM_RAM AM_BASE_MEMBER(slotcarn_state, m_backup_ram)
AM_RANGE(0x6800, 0x6fff) AM_RAM // spielbud
@@ -207,7 +207,7 @@ static ADDRESS_MAP_START( slotcarn_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
// spielbud - is the ay mirrored, or are there now 2?
-static ADDRESS_MAP_START( spielbud_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( spielbud_io_map, AS_IO, 8, slotcarn_state )
AM_RANGE(0xb000, 0xb000) AM_DEVWRITE("aysnd", ay8910_address_w)
AM_RANGE(0xb100, 0xb100) AM_DEVWRITE("aysnd", ay8910_data_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/sms.c b/src/mame/drivers/sms.c
index bd87c063879..d54fdcc052d 100644
--- a/src/mame/drivers/sms.c
+++ b/src/mame/drivers/sms.c
@@ -494,7 +494,7 @@ static PALETTE_INIT( sms )
*
*************************************/
-static ADDRESS_MAP_START( sms_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sms_map, AS_PROGRAM, 8, smsmfg_state )
AM_RANGE(0x00000, 0x007ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x00800, 0x00803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
AM_RANGE(0x01000, 0x01007) AM_WRITE(video_w)
@@ -505,7 +505,7 @@ static ADDRESS_MAP_START( sms_map, AS_PROGRAM, 8 )
AM_RANGE(0xf8000, 0xfffff) AM_ROM // mirror for vectors
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sureshot_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sureshot_map, AS_PROGRAM, 8, smsmfg_state )
AM_RANGE(0x00000, 0x007ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x02000, 0x02007) AM_WRITE(video_w)
AM_RANGE(0x03000, 0x03003) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
@@ -514,7 +514,7 @@ static ADDRESS_MAP_START( sureshot_map, AS_PROGRAM, 8 )
AM_RANGE(0xf8000, 0xfffff) AM_ROM // mirror for vectors
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, smsmfg_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x3100, 0x3103) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w)
diff --git a/src/mame/drivers/snesb.c b/src/mame/drivers/snesb.c
index a4457ed95e1..fb1c0de9a5c 100644
--- a/src/mame/drivers/snesb.c
+++ b/src/mame/drivers/snesb.c
@@ -275,7 +275,7 @@ static READ8_HANDLER(denseib_770079_r)
-static ADDRESS_MAP_START( snesb_map, AS_PROGRAM, 8)
+static ADDRESS_MAP_START( snesb_map, AS_PROGRAM, 8, snesb_state )
AM_RANGE(0x000000, 0x2fffff) AM_READWRITE(snes_r_bank1, snes_w_bank1) /* I/O and ROM (repeats for each bank) */
AM_RANGE(0x300000, 0x3fffff) AM_READWRITE(snes_r_bank2, snes_w_bank2) /* I/O and ROM (repeats for each bank) */
AM_RANGE(0x400000, 0x5fffff) AM_READ(snes_r_bank3) /* ROM (and reserved in Mode 20) */
@@ -297,7 +297,7 @@ static WRITE8_DEVICE_HANDLER( spc_ram_100_w )
spc_ram_w(device, offset + 0x100, data);
}
-static ADDRESS_MAP_START( spc_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spc_mem, AS_PROGRAM, 8, snesb_state )
AM_RANGE(0x0000, 0x00ef) AM_DEVREADWRITE("spc700", spc_ram_r, spc_ram_w) /* lower 32k ram */
AM_RANGE(0x00f0, 0x00ff) AM_DEVREADWRITE("spc700", spc_io_r, spc_io_w) /* spc io */
AM_RANGE(0x0100, 0xffff) AM_DEVWRITE("spc700", spc_ram_100_w)
diff --git a/src/mame/drivers/snk.c b/src/mame/drivers/snk.c
index 49172ce4bca..006872381cb 100644
--- a/src/mame/drivers/snk.c
+++ b/src/mame/drivers/snk.c
@@ -858,7 +858,7 @@ static CUSTOM_INPUT( snk_bonus_r )
/************************************************************************/
-static ADDRESS_MAP_START( marvins_cpuA_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( marvins_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6000) AM_WRITE(marvins_palette_bank_w)
AM_RANGE(0x8000, 0x8000) AM_READ_PORT("IN0")
@@ -885,7 +885,7 @@ static ADDRESS_MAP_START( marvins_cpuA_map, AS_PROGRAM, 8 )
AM_RANGE(0xff00, 0xff00) AM_WRITE(marvins_scroll_msb_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( marvins_cpuB_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( marvins_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x8700, 0x8700) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("share1")
@@ -906,7 +906,7 @@ ADDRESS_MAP_END
// vangrd2 accesses video registers at xxF1 instead of xx00
-static ADDRESS_MAP_START( madcrash_cpuA_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( madcrash_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8000) AM_READ_PORT("IN0")
AM_RANGE(0x8100, 0x8100) AM_READ_PORT("IN1")
@@ -933,7 +933,7 @@ static ADDRESS_MAP_START( madcrash_cpuA_map, AS_PROGRAM, 8 )
AM_RANGE(0xff00, 0xff00) AM_MIRROR(0xff) AM_WRITE(snk_fg_scrollx_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( madcrash_cpuB_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( madcrash_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x8700, 0x8700) AM_WRITE(snk_cpuB_nmi_ack_w) // vangrd2
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_WRITE(snk_cpuB_nmi_ack_w) // madcrash
@@ -953,7 +953,7 @@ static ADDRESS_MAP_START( madcrash_cpuB_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("share3")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( madcrush_cpuA_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( madcrush_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8000) AM_READ_PORT("IN0")
AM_RANGE(0x8100, 0x8100) AM_READ_PORT("IN1")
@@ -980,7 +980,7 @@ static ADDRESS_MAP_START( madcrush_cpuA_map, AS_PROGRAM, 8 )
AM_RANGE(0xff00, 0xff00) AM_WRITE(marvins_scroll_msb_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( madcrush_cpuB_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( madcrush_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_WRITE(snk_cpuB_nmi_ack_w)
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share1") // + work ram
@@ -1001,7 +1001,7 @@ static ADDRESS_MAP_START( madcrush_cpuB_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jcross_cpuA_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jcross_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa100, 0xa100) AM_READ_PORT("IN1")
@@ -1022,7 +1022,7 @@ static ADDRESS_MAP_START( jcross_cpuA_map, AS_PROGRAM, 8 )
AM_RANGE(0xffff, 0xffff) AM_WRITENOP // simply a program patch to not write to two not existing video registers?
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jcross_cpuB_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jcross_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa700, 0xa700) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share1")
@@ -1031,7 +1031,7 @@ static ADDRESS_MAP_START( jcross_cpuB_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sgladiat_cpuA_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sgladiat_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa100, 0xa100) AM_READ_PORT("IN1")
@@ -1053,7 +1053,7 @@ static ADDRESS_MAP_START( sgladiat_cpuA_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(snk_tx_videoram_w) AM_SHARE("share3") AM_BASE_MEMBER(snk_state, m_tx_videoram) // + work RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sgladiat_cpuB_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sgladiat_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
AM_RANGE(0xa600, 0xa600) AM_WRITE(sgladiat_flipscreen_w) // flip screen, bg palette bank
@@ -1069,7 +1069,7 @@ static ADDRESS_MAP_START( sgladiat_cpuB_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hal21_cpuA_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hal21_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("IN1")
@@ -1089,7 +1089,7 @@ static ADDRESS_MAP_START( hal21_cpuA_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(snk_tx_videoram_w) AM_SHARE("share3") AM_BASE_MEMBER(snk_state, m_tx_videoram) // + work RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hal21_cpuB_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hal21_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_WRITE(snk_cpuB_nmi_ack_w)
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share1")
@@ -1098,7 +1098,7 @@ static ADDRESS_MAP_START( hal21_cpuB_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aso_cpuA_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( aso_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("IN1")
@@ -1120,7 +1120,7 @@ static ADDRESS_MAP_START( aso_cpuA_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(snk_tx_videoram_w) AM_SHARE("share4") AM_BASE_MEMBER(snk_state, m_tx_videoram) // + work RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aso_cpuB_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( aso_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1")
@@ -1130,7 +1130,7 @@ static ADDRESS_MAP_START( aso_cpuB_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tnk3_cpuA_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tnk3_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("IN1")
@@ -1153,7 +1153,7 @@ static ADDRESS_MAP_START( tnk3_cpuA_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(snk_tx_videoram_w) AM_SHARE("share3") AM_BASE_MEMBER(snk_state, m_tx_videoram) // + work RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tnk3_cpuB_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tnk3_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w) // tnk3, athena
AM_RANGE(0xc700, 0xc700) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w) // fitegolf
@@ -1164,7 +1164,7 @@ static ADDRESS_MAP_START( tnk3_cpuB_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ikari_cpuA_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ikari_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("IN1")
@@ -1199,7 +1199,7 @@ static ADDRESS_MAP_START( ikari_cpuA_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(snk_tx_videoram_w) AM_SHARE("share4") AM_BASE_MEMBER(snk_state, m_tx_videoram) // + work RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ikari_cpuB_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ikari_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
AM_RANGE(0xc980, 0xc980) AM_WRITE(ikari_unknown_video_w)
@@ -1219,7 +1219,7 @@ static ADDRESS_MAP_START( ikari_cpuB_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bermudat_cpuA_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bermudat_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("IN1")
@@ -1263,7 +1263,7 @@ static ADDRESS_MAP_START( bermudat_cpuA_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(snk_tx_videoram_w) AM_SHARE("share4") AM_BASE_MEMBER(snk_state, m_tx_videoram) // + work RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bermudat_cpuB_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bermudat_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc700, 0xc700) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
AM_RANGE(0xc800, 0xc800) AM_WRITE(snk_bg_scrolly_w)
@@ -1282,7 +1282,7 @@ static ADDRESS_MAP_START( bermudat_cpuB_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gwar_cpuA_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gwar_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("IN1")
@@ -1309,7 +1309,7 @@ static ADDRESS_MAP_START( gwar_cpuA_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(snk_tx_videoram_w) AM_SHARE("share4") AM_BASE_MEMBER(snk_state, m_tx_videoram) // + work RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gwar_cpuB_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gwar_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
AM_RANGE(0xc8c0, 0xc8c0) AM_WRITE(gwar_tx_bank_w) // char and palette bank
@@ -1320,7 +1320,7 @@ static ADDRESS_MAP_START( gwar_cpuB_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gwara_cpuA_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gwara_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("IN1")
@@ -1346,7 +1346,7 @@ static ADDRESS_MAP_START( gwara_cpuA_map, AS_PROGRAM, 8 )
AM_RANGE(0xfac0, 0xfac0) AM_WRITE(snk_sprite_split_point_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gwara_cpuB_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gwara_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(snk_tx_videoram_w) AM_SHARE("share1")
@@ -1357,7 +1357,7 @@ static ADDRESS_MAP_START( gwara_cpuB_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tdfever_cpuA_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tdfever_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc080, 0xc080) AM_READ_PORT("IN1")
@@ -1387,7 +1387,7 @@ static ADDRESS_MAP_START( tdfever_cpuA_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(snk_tx_videoram_w) AM_SHARE("share4") AM_BASE_MEMBER(snk_state, m_tx_videoram) // + work RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tdfever_cpuB_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tdfever_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w) // tdfever, tdfever2
AM_RANGE(0xc700, 0xc700) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w) // fsoccer
@@ -1400,7 +1400,7 @@ ADDRESS_MAP_END
/***********************************************************************/
-static ADDRESS_MAP_START( marvins_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( marvins_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4000) AM_READ(marvins_soundlatch_r)
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("ay1", ay8910_address_data_w)
@@ -1410,13 +1410,13 @@ static ADDRESS_MAP_START( marvins_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe7ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( marvins_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( marvins_sound_portmap, AS_IO, 8, snk_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READNOP // read on startup, then the Z80 automatically pulls down the IORQ pin to ack irq
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jcross_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jcross_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ(sgladiat_soundlatch_r)
@@ -1426,13 +1426,13 @@ static ADDRESS_MAP_START( jcross_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe004, 0xe005) AM_DEVWRITE("ay2", ay8910_address_data_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jcross_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( jcross_sound_portmap, AS_IO, 8, snk_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(sgladiat_sound_irq_ack_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hal21_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hal21_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ(sgladiat_soundlatch_r)
@@ -1442,13 +1442,13 @@ static ADDRESS_MAP_START( hal21_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe008, 0xe009) AM_DEVWRITE("ay2", ay8910_address_data_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hal21_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( hal21_sound_portmap, AS_IO, 8, snk_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READNOP // read on startup, then the Z80 automatically pulls down the IORQ pin to ack irq
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tnk3_YM3526_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tnk3_YM3526_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
@@ -1458,7 +1458,7 @@ static ADDRESS_MAP_START( tnk3_YM3526_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe006, 0xe006) AM_READ(tnk3_ymirq_ack_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aso_YM3526_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( aso_YM3526_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r)
@@ -1469,7 +1469,7 @@ static ADDRESS_MAP_START( aso_YM3526_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf006, 0xf006) AM_READ(tnk3_ymirq_ack_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( YM3526_YM3526_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( YM3526_YM3526_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
@@ -1480,7 +1480,7 @@ static ADDRESS_MAP_START( YM3526_YM3526_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_status_r, snk_sound_status_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( YM3812_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( YM3812_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
@@ -1489,7 +1489,7 @@ static ADDRESS_MAP_START( YM3812_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_status_r, snk_sound_status_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( YM3526_Y8950_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( YM3526_Y8950_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
@@ -1500,7 +1500,7 @@ static ADDRESS_MAP_START( YM3526_Y8950_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_status_r, snk_sound_status_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( YM3812_Y8950_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( YM3812_Y8950_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
@@ -1511,7 +1511,7 @@ static ADDRESS_MAP_START( YM3812_Y8950_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_status_r, snk_sound_status_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( Y8950_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( Y8950_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/snk6502.c b/src/mame/drivers/snk6502.c
index 7ede9421d0c..0df03b4b9c8 100644
--- a/src/mame/drivers/snk6502.c
+++ b/src/mame/drivers/snk6502.c
@@ -340,7 +340,7 @@ static CUSTOM_INPUT( sasuke_count_r )
*
*************************************/
-static ADDRESS_MAP_START( sasuke_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sasuke_map, AS_PROGRAM, 8, snk6502_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(snk6502_videoram2_w) AM_BASE_MEMBER(snk6502_state, m_videoram2)
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(snk6502_videoram_w) AM_BASE_MEMBER(snk6502_state, m_videoram)
@@ -359,7 +359,7 @@ static ADDRESS_MAP_START( sasuke_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( satansat_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( satansat_map, AS_PROGRAM, 8, snk6502_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(snk6502_videoram2_w) AM_BASE_MEMBER(snk6502_state, m_videoram2)
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(snk6502_videoram_w) AM_BASE_MEMBER(snk6502_state, m_videoram)
@@ -378,7 +378,7 @@ static ADDRESS_MAP_START( satansat_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( vanguard_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( vanguard_map, AS_PROGRAM, 8, snk6502_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(snk6502_videoram2_w) AM_BASE_MEMBER(snk6502_state, m_videoram2)
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(snk6502_videoram_w) AM_BASE_MEMBER(snk6502_state, m_videoram)
@@ -399,7 +399,7 @@ static ADDRESS_MAP_START( vanguard_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_ROM /* for the reset / interrupt vectors */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fantasy_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fantasy_map, AS_PROGRAM, 8, snk6502_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(snk6502_videoram2_w) AM_BASE_MEMBER(snk6502_state, m_videoram2)
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(snk6502_videoram_w) AM_BASE_MEMBER(snk6502_state, m_videoram)
@@ -419,7 +419,7 @@ static ADDRESS_MAP_START( fantasy_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pballoon_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pballoon_map, AS_PROGRAM, 8, snk6502_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(snk6502_videoram2_w) AM_BASE_MEMBER(snk6502_state, m_videoram2)
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(snk6502_videoram_w) AM_BASE_MEMBER(snk6502_state, m_videoram)
diff --git a/src/mame/drivers/snk68.c b/src/mame/drivers/snk68.c
index 734cf45cd62..2316cc1e3f5 100644
--- a/src/mame/drivers/snk68.c
+++ b/src/mame/drivers/snk68.c
@@ -119,7 +119,7 @@ static WRITE16_HANDLER( sound_w )
/*******************************************************************************/
-static ADDRESS_MAP_START( pow_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pow_map, AS_PROGRAM, 16, snk68_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_RAM
AM_RANGE(0x080000, 0x080001) AM_READ(control_1_r)
@@ -136,7 +136,7 @@ static ADDRESS_MAP_START( pow_map, AS_PROGRAM, 16 )
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(pow_paletteram16_word_w) AM_BASE_MEMBER(snk68_state, m_paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( searchar_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( searchar_map, AS_PROGRAM, 16, snk68_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_RAM
AM_RANGE(0x080000, 0x080005) AM_READ(protcontrols_r) /* Player 1 & 2 */
@@ -160,7 +160,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, snk68_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_r) AM_WRITE(sound_status_w)
@@ -178,7 +178,7 @@ static WRITE8_DEVICE_HANDLER( D7759_upd_reset_w )
upd7759_reset_w(device, data & 0x80);
}
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, snk68_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("ymsnd", ym3812_status_port_r, ym3812_control_port_w)
AM_RANGE(0x20, 0x20) AM_DEVWRITE("ymsnd", ym3812_write_port_w)
diff --git a/src/mame/drivers/snookr10.c b/src/mame/drivers/snookr10.c
index b094de9a529..a7db420f591 100644
--- a/src/mame/drivers/snookr10.c
+++ b/src/mame/drivers/snookr10.c
@@ -496,7 +496,7 @@ static WRITE8_HANDLER( output_port_1_w )
* Memory map information *
*************************/
-static ADDRESS_MAP_START( snookr10_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( snookr10_map, AS_PROGRAM, 8, snookr10_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x1000, 0x1000) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
AM_RANGE(0x3000, 0x3000) AM_READ_PORT("IN0") /* IN0 */
@@ -511,7 +511,7 @@ static ADDRESS_MAP_START( snookr10_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tenballs_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tenballs_map, AS_PROGRAM, 8, snookr10_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x1000, 0x1000) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("IN0") /* IN0 */
diff --git a/src/mame/drivers/snowbros.c b/src/mame/drivers/snowbros.c
index 7e212602dee..29aca73e2ee 100644
--- a/src/mame/drivers/snowbros.c
+++ b/src/mame/drivers/snowbros.c
@@ -195,7 +195,7 @@ static WRITE16_HANDLER( semicom_soundcmd_w )
/* Snow Bros Memory Map */
-static ADDRESS_MAP_START( snowbros_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( snowbros_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x200000, 0x200001) AM_WRITE(watchdog_reset16_w)
@@ -211,12 +211,12 @@ static ADDRESS_MAP_START( snowbros_map, AS_PROGRAM, 16 )
AM_RANGE(0xa00000, 0xa00001) AM_WRITE(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, snowbros_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, snowbros_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x04, 0x04) AM_READWRITE(soundlatch_r, soundlatch_w) /* goes back to the main CPU, checked during boot */
@@ -268,17 +268,17 @@ static WRITE8_HANDLER( prot_io_w )
}
/* Semicom AT89C52 MCU */
-static ADDRESS_MAP_START( protection_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( protection_map, AS_PROGRAM, 8, snowbros_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( protection_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( protection_iomap, AS_IO, 8, snowbros_state )
AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READWRITE(prot_io_r,prot_io_w)
ADDRESS_MAP_END
/* Winter Bobble - bootleg GFX chip */
-static ADDRESS_MAP_START( wintbob_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( wintbob_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x200000, 0x200001) AM_WRITE(watchdog_reset16_w)
@@ -296,7 +296,7 @@ ADDRESS_MAP_END
/* Honey Dolls */
-static ADDRESS_MAP_START( honeydol_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( honeydol_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE_MEMBER(snowbros_state, m_hyperpac_ram)
AM_RANGE(0x200000, 0x200001) AM_WRITENOP /* ? */
@@ -312,13 +312,13 @@ static ADDRESS_MAP_START( honeydol_map, AS_PROGRAM, 16 )
AM_RANGE(0xb00000, 0xb01fff) AM_RAM AM_BASE_SIZE_MEMBER(snowbros_state, m_bootleg_spriteram16, m_spriteram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( honeydol_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( honeydol_sound_map, AS_PROGRAM, 8, snowbros_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xe010, 0xe010) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( honeydol_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( honeydol_sound_io_map, AS_IO, 8, snowbros_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w) // not connected?
AM_RANGE(0x04, 0x04) AM_READWRITE(soundlatch_r, soundlatch_w) /* goes back to the main CPU, checked during boot */
@@ -335,7 +335,7 @@ static WRITE16_HANDLER( twinadv_68000_sound_w )
}
}
-static ADDRESS_MAP_START( twinadv_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( twinadv_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x200001) AM_WRITE(watchdog_reset16_w)
@@ -361,7 +361,7 @@ static WRITE8_DEVICE_HANDLER( twinadv_oki_bank_w )
downcast<okim6295_device *>(device)->set_bank_base(bank * 0x40000);
}
-static ADDRESS_MAP_START( twinadv_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( twinadv_sound_io_map, AS_IO, 8, snowbros_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_READWRITE(soundlatch_r, soundlatch_w) // back to 68k?
AM_RANGE(0x04, 0x04) AM_DEVWRITE("oki", twinadv_oki_bank_w) // oki bank?
@@ -376,7 +376,7 @@ sound hardware is also different
*/
-static ADDRESS_MAP_START( hyperpac_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hyperpac_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE_MEMBER(snowbros_state, m_hyperpac_ram)
AM_RANGE(0x300000, 0x300001) AM_WRITE(semicom_soundcmd_w)
@@ -392,7 +392,7 @@ static ADDRESS_MAP_START( hyperpac_map, AS_PROGRAM, 16 )
AM_RANGE(0xa00000, 0xa00001) AM_WRITE(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hyperpac_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hyperpac_sound_map, AS_PROGRAM, 8, snowbros_state )
AM_RANGE(0x0000, 0xcfff) AM_ROM
AM_RANGE(0xd000, 0xd7ff) AM_RAM
AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("ymsnd", ym2151_r,ym2151_w)
@@ -510,7 +510,7 @@ static WRITE16_DEVICE_HANDLER( sb3_sound_w )
-static ADDRESS_MAP_START( snowbros3_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( snowbros3_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE( 0x000000, 0x03ffff) AM_ROM
AM_RANGE( 0x100000, 0x103fff) AM_RAM
AM_RANGE( 0x200000, 0x200001) AM_WRITE(watchdog_reset16_w)
@@ -529,7 +529,7 @@ ADDRESS_MAP_END
/* Final Tetris */
-static ADDRESS_MAP_START( finalttr_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( finalttr_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE_MEMBER(snowbros_state, m_hyperpac_ram)
AM_RANGE(0x300000, 0x300001) AM_WRITE(semicom_soundcmd_w)
diff --git a/src/mame/drivers/solomon.c b/src/mame/drivers/solomon.c
index 3282bec6398..0333491c0ae 100644
--- a/src/mame/drivers/solomon.c
+++ b/src/mame/drivers/solomon.c
@@ -45,7 +45,7 @@ static WRITE8_HANDLER( nmi_mask_w )
state->m_nmi_mask = data & 1;
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, solomon_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(solomon_colorram_w) AM_BASE_MEMBER(solomon_state, m_colorram)
@@ -67,14 +67,14 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, solomon_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x8000, 0x8000) AM_READ(soundlatch_r)
AM_RANGE(0xffff, 0xffff) AM_WRITENOP /* watchdog? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, solomon_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x11) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x20, 0x21) AM_DEVWRITE("ay2", ay8910_address_data_w)
diff --git a/src/mame/drivers/sonson.c b/src/mame/drivers/sonson.c
index 6990fc0f4e0..8c43fae6224 100644
--- a/src/mame/drivers/sonson.c
+++ b/src/mame/drivers/sonson.c
@@ -78,7 +78,7 @@ static WRITE8_HANDLER( sonson_coin2_counter_w )
coin_counter_w(space->machine(), 1, data & 1);
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, sonson_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(sonson_videoram_w) AM_BASE_SIZE_MEMBER(sonson_state, m_videoram, m_videoram_size)
AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(sonson_colorram_w) AM_BASE_MEMBER(sonson_state, m_colorram)
@@ -98,7 +98,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, sonson_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x4000, 0x4001) AM_DEVWRITE("ay2", ay8910_address_data_w)
diff --git a/src/mame/drivers/sothello.c b/src/mame/drivers/sothello.c
index 3aa0a11ec57..4ec100cce96 100644
--- a/src/mame/drivers/sothello.c
+++ b/src/mame/drivers/sothello.c
@@ -121,14 +121,14 @@ static READ8_HANDLER( soundcpu_status_r )
return state->m_soundcpu_busy;
}
-static ADDRESS_MAP_START( maincpu_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( maincpu_mem_map, AS_PROGRAM, 8, sothello_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_MIRROR(0x1800) AM_SHARE("share1")
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( maincpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( maincpu_io_map, AS_IO, 8, sothello_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x0f) AM_READ_PORT("INPUT1")
AM_RANGE( 0x10, 0x1f) AM_READ_PORT("INPUT2")
@@ -182,12 +182,12 @@ static WRITE8_HANDLER(soundcpu_int_clear_w)
cputag_set_input_line(space->machine(), "soundcpu", 0, CLEAR_LINE );
}
-static ADDRESS_MAP_START( soundcpu_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( soundcpu_mem_map, AS_PROGRAM, 8, sothello_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( soundcpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( soundcpu_io_map, AS_IO, 8, sothello_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
AM_RANGE(0x01, 0x01) AM_WRITE(msm_data_w)
@@ -223,7 +223,7 @@ static READ8_HANDLER(subcpu_status_r)
return 0;
}
-static ADDRESS_MAP_START( subcpu_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( subcpu_mem_map, AS_PROGRAM, 8, sothello_state )
AM_RANGE(0x0000, 0x1fff) AM_READWRITE(subcpu_status_r,subcpu_status_w)
AM_RANGE(0x2000, 0x77ff) AM_RAM
AM_RANGE(0x7800, 0x7fff) AM_RAM AM_SHARE("share1") /* upper 0x800 of 6264 is shared with main cpu */
diff --git a/src/mame/drivers/spacefb.c b/src/mame/drivers/spacefb.c
index 40887dac5e9..f1f05bb388a 100644
--- a/src/mame/drivers/spacefb.c
+++ b/src/mame/drivers/spacefb.c
@@ -197,7 +197,7 @@ static MACHINE_RESET( spacefb )
*
*************************************/
-static ADDRESS_MAP_START( spacefb_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spacefb_main_map, AS_PROGRAM, 8, spacefb_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_NOP
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x3c00) AM_RAM AM_BASE_MEMBER(spacefb_state, m_videoram) AM_SIZE_MEMBER(spacefb_state, m_videoram_size)
@@ -206,7 +206,7 @@ static ADDRESS_MAP_START( spacefb_main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spacefb_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spacefb_audio_map, AS_PROGRAM, 8, spacefb_state )
ADDRESS_MAP_GLOBAL_MASK(0x3ff)
AM_RANGE(0x0000, 0x03ff) AM_ROM
ADDRESS_MAP_END
@@ -219,7 +219,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( spacefb_main_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( spacefb_main_io_map, AS_IO, 8, spacefb_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
AM_RANGE(0x01, 0x01) AM_READ_PORT("P2")
@@ -234,7 +234,7 @@ static ADDRESS_MAP_START( spacefb_main_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spacefb_audio_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( spacefb_audio_io_map, AS_IO, 8, spacefb_state )
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE("dac", dac_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READ(spacefb_audio_p2_r)
AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(spacefb_audio_t0_r)
diff --git a/src/mame/drivers/spaceg.c b/src/mame/drivers/spaceg.c
index cef556d3e0a..c97ae361c79 100644
--- a/src/mame/drivers/spaceg.c
+++ b/src/mame/drivers/spaceg.c
@@ -323,7 +323,7 @@ static SCREEN_UPDATE_IND16( spaceg )
*
*************************************/
-static ADDRESS_MAP_START( spaceg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spaceg_map, AS_PROGRAM, 8, spaceg_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x3000, 0x3fff) AM_ROM
AM_RANGE(0x7000, 0x77ff) AM_RAM
diff --git a/src/mame/drivers/spbactn.c b/src/mame/drivers/spbactn.c
index 5ad3e5f46b1..2db7e62c785 100644
--- a/src/mame/drivers/spbactn.c
+++ b/src/mame/drivers/spbactn.c
@@ -140,7 +140,7 @@ static WRITE16_HANDLER( soundcommand_w )
}
}
-static ADDRESS_MAP_START( spbactn_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( spbactn_map, AS_PROGRAM, 16, spbactn_state )
AM_RANGE(0x00000, 0x3ffff) AM_ROM
AM_RANGE(0x40000, 0x43fff) AM_RAM // main ram
AM_RANGE(0x50000, 0x50fff) AM_RAM AM_BASE_MEMBER(spbactn_state,m_spvideoram)
@@ -186,7 +186,7 @@ static ADDRESS_MAP_START( spbactn_map, AS_PROGRAM, 16 )
AM_RANGE(0xa0206, 0xa0207) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spbactn_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spbactn_sound_map, AS_PROGRAM, 8, spbactn_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
diff --git a/src/mame/drivers/spcforce.c b/src/mame/drivers/spcforce.c
index e0aede681ff..5d0dc5d26a9 100644
--- a/src/mame/drivers/spcforce.c
+++ b/src/mame/drivers/spcforce.c
@@ -88,7 +88,7 @@ static WRITE8_HANDLER( irq_mask_w )
state->m_irq_mask = data & 1;
}
-static ADDRESS_MAP_START( spcforce_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spcforce_map, AS_PROGRAM, 8, spcforce_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x7000, 0x7000) AM_READ_PORT("DSW") AM_WRITE(soundlatch_w)
@@ -102,11 +102,11 @@ static ADDRESS_MAP_START( spcforce_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xa3ff) AM_RAM AM_BASE_MEMBER(spcforce_state, m_scrollram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spcforce_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spcforce_sound_map, AS_PROGRAM, 8, spcforce_state )
AM_RANGE(0x0000, 0x07ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spcforce_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( spcforce_sound_io_map, AS_IO, 8, spcforce_state )
AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_READ(soundlatch_r)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_WRITE(spcforce_SN76496_latch_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(spcforce_SN76496_select_r, spcforce_SN76496_select_w)
diff --git a/src/mame/drivers/spdodgeb.c b/src/mame/drivers/spdodgeb.c
index af27633c719..97b644b6a0e 100644
--- a/src/mame/drivers/spdodgeb.c
+++ b/src/mame/drivers/spdodgeb.c
@@ -248,7 +248,7 @@ static READ8_HANDLER( port_0_r )
-static ADDRESS_MAP_START( spdodgeb_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spdodgeb_map, AS_PROGRAM, 8, spdodgeb_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x10ff) AM_WRITEONLY AM_BASE_SIZE_MEMBER(spdodgeb_state, m_spriteram, m_spriteram_size)
AM_RANGE(0x2000, 0x2fff) AM_RAM_WRITE(spdodgeb_videoram_w) AM_BASE_MEMBER(spdodgeb_state, m_videoram)
@@ -265,7 +265,7 @@ static ADDRESS_MAP_START( spdodgeb_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spdodgeb_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spdodgeb_sound_map, AS_PROGRAM, 8, spdodgeb_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_READ(soundlatch_r)
AM_RANGE(0x2800, 0x2801) AM_DEVWRITE("ymsnd", ym3812_w)
diff --git a/src/mame/drivers/speedatk.c b/src/mame/drivers/speedatk.c
index 133e2e7f1e5..a8e63fe498d 100644
--- a/src/mame/drivers/speedatk.c
+++ b/src/mame/drivers/speedatk.c
@@ -176,7 +176,7 @@ static WRITE8_HANDLER( key_matrix_status_w )
state->m_coin_settings = state->m_km_status & 0xf;
}
-static ADDRESS_MAP_START( speedatk_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( speedatk_mem, AS_PROGRAM, 8, speedatk_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8000) AM_READWRITE(key_matrix_r,key_matrix_w)
AM_RANGE(0x8001, 0x8001) AM_READWRITE(key_matrix_status_r,key_matrix_status_w)
@@ -186,7 +186,7 @@ static ADDRESS_MAP_START( speedatk_mem, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( speedatk_io, AS_IO, 8 )
+static ADDRESS_MAP_START( speedatk_io, AS_IO, 8, speedatk_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(speedatk_6845_w) //h46505 address / data routing
AM_RANGE(0x24, 0x24) AM_WRITE(watchdog_reset_w)
diff --git a/src/mame/drivers/speedbal.c b/src/mame/drivers/speedbal.c
index b3f0c0d365d..9ff0e3f45a1 100644
--- a/src/mame/drivers/speedbal.c
+++ b/src/mame/drivers/speedbal.c
@@ -64,7 +64,7 @@ static WRITE8_HANDLER( speedbal_coincounter_w )
/* unknown: (data & 0x10) and (data & 4) */
}
-static ADDRESS_MAP_START( main_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_cpu_map, AS_PROGRAM, 8, speedbal_state )
AM_RANGE(0x0000, 0xdbff) AM_ROM
AM_RANGE(0xdc00, 0xdfff) AM_RAM AM_SHARE("share1") // shared with SOUND
AM_RANGE(0xe000, 0xe1ff) AM_RAM_WRITE(speedbal_background_videoram_w) AM_BASE_MEMBER(speedbal_state, m_background_videoram)
@@ -74,7 +74,7 @@ static ADDRESS_MAP_START( main_cpu_map, AS_PROGRAM, 8 )
AM_RANGE(0xff00, 0xffff) AM_RAM AM_BASE_SIZE_MEMBER(speedbal_state, m_spriteram, m_spriteram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( main_cpu_io_map, AS_IO, 8, speedbal_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW2")
AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1")
@@ -84,14 +84,14 @@ static ADDRESS_MAP_START( main_cpu_io_map, AS_IO, 8 )
AM_RANGE(0x50, 0x50) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_cpu_map, AS_PROGRAM, 8, speedbal_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xd000, 0xdbff) AM_RAM
AM_RANGE(0xdc00, 0xdfff) AM_RAM AM_SHARE("share1") // shared with MAIN CPU
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_cpu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_cpu_io_map, AS_IO, 8, speedbal_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x40, 0x40) AM_WRITENOP
diff --git a/src/mame/drivers/speedspn.c b/src/mame/drivers/speedspn.c
index 7d608512216..131a2e34e5b 100644
--- a/src/mame/drivers/speedspn.c
+++ b/src/mame/drivers/speedspn.c
@@ -105,7 +105,7 @@ static WRITE8_DEVICE_HANDLER( oki_banking_w )
/* main cpu */
-static ADDRESS_MAP_START( speedspn_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( speedspn_map, AS_PROGRAM, 8, speedspn_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_le_w) AM_BASE_GENERIC(paletteram) /* RAM COLOUR */
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(speedspn_attram_w) AM_BASE_MEMBER(speedspn_state, m_attram)
@@ -116,7 +116,7 @@ static ADDRESS_MAP_START( speedspn_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xffff) AM_ROMBANK("bank1") /* banked ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( speedspn_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( speedspn_io_map, AS_IO, 8, speedspn_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x07, 0x07) AM_WRITE(speedspn_global_display_w)
AM_RANGE(0x10, 0x10) AM_READ_PORT("SYSTEM")
@@ -130,7 +130,7 @@ ADDRESS_MAP_END
/* sound cpu */
-static ADDRESS_MAP_START( speedspn_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( speedspn_sound_map, AS_PROGRAM, 8, speedspn_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_DEVWRITE("oki", oki_banking_w)
diff --git a/src/mame/drivers/speglsht.c b/src/mame/drivers/speglsht.c
index dc12f820f98..8c3c4331929 100644
--- a/src/mame/drivers/speglsht.c
+++ b/src/mame/drivers/speglsht.c
@@ -124,7 +124,7 @@ public:
};
-static ADDRESS_MAP_START( st0016_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( st0016_mem, AS_PROGRAM, 8, speglsht_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_READ(st0016_sprite_ram_r) AM_WRITE(st0016_sprite_ram_w)
@@ -137,7 +137,7 @@ static ADDRESS_MAP_START( st0016_mem, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_MEMBER(speglsht_state, m_shared)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( st0016_io, AS_IO, 8 )
+static ADDRESS_MAP_START( st0016_io, AS_IO, 8, speglsht_state )
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)
@@ -221,7 +221,7 @@ static READ32_HANDLER(irq_ack_clear)
return 0;
}
-static ADDRESS_MAP_START( speglsht_mem, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( speglsht_mem, AS_PROGRAM, 32, speglsht_state )
AM_RANGE(0x00000000, 0x000fffff) AM_RAM
AM_RANGE(0x01000000, 0x01007fff) AM_RAM //tested - STATIC RAM
AM_RANGE(0x01600000, 0x0160004f) AM_READWRITE(cop_r, cop_w) AM_BASE_MEMBER(speglsht_state, m_cop_ram)
diff --git a/src/mame/drivers/spiders.c b/src/mame/drivers/spiders.c
index df8d612ed17..30f2c7b1695 100644
--- a/src/mame/drivers/spiders.c
+++ b/src/mame/drivers/spiders.c
@@ -570,7 +570,7 @@ static READ8_DEVICE_HANDLER( gfx_rom_r )
*
*************************************/
-static ADDRESS_MAP_START( spiders_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spiders_main_map, AS_PROGRAM, 8, spiders_state )
AM_RANGE(0x0000, 0xbfff) AM_RAM AM_BASE_MEMBER(spiders_state, m_ram)
AM_RANGE(0xc000, 0xc000) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
AM_RANGE(0xc001, 0xc001) AM_DEVREADWRITE_MODERN("crtc", mc6845_device, register_r, register_w)
@@ -585,7 +585,7 @@ static ADDRESS_MAP_START( spiders_main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spiders_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spiders_audio_map, AS_PROGRAM, 8, spiders_state )
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x0080, 0x0083) AM_DEVREADWRITE_MODERN("pia4", pia6821_device, read, write)
AM_RANGE(0xf800, 0xffff) AM_ROM
diff --git a/src/mame/drivers/splash.c b/src/mame/drivers/splash.c
index f02bcf99c9f..e77865d92f3 100644
--- a/src/mame/drivers/splash.c
+++ b/src/mame/drivers/splash.c
@@ -88,7 +88,7 @@ static WRITE16_HANDLER( splash_coin_w )
}
}
-static ADDRESS_MAP_START( splash_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( splash_map, AS_PROGRAM, 16, splash_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM /* ROM */
AM_RANGE(0x800000, 0x83ffff) AM_RAM AM_BASE_MEMBER(splash_state, m_pixelram) /* Pixel Layer */
AM_RANGE(0x840000, 0x840001) AM_READ_PORT("DSW1")
@@ -120,7 +120,7 @@ static void splash_msm5205_int(device_t *device)
state->m_adpcm_data = (state->m_adpcm_data << 4) & 0xf0;
}
-static ADDRESS_MAP_START( splash_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( splash_sound_map, AS_PROGRAM, 8, splash_state )
AM_RANGE(0x0000, 0xd7ff) AM_ROM /* ROM */
AM_RANGE(0xd800, 0xd800) AM_WRITE(splash_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
// AM_RANGE(0xe000, 0xe000) AM_WRITENOP /* ??? */
@@ -168,7 +168,7 @@ static void ym_irq(device_t *device, int state)
roldfrog_update_irq(device->machine());
}
-static ADDRESS_MAP_START( roldfrog_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( roldfrog_map, AS_PROGRAM, 16, splash_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM /* ROM */
AM_RANGE(0x400000, 0x407fff) AM_ROM AM_BASE_MEMBER(splash_state, m_protdata) /* Protection Data */
AM_RANGE(0x408000, 0x4087ff) AM_RAM /* Extra Ram */
@@ -189,7 +189,7 @@ static ADDRESS_MAP_START( roldfrog_map, AS_PROGRAM, 16 )
AM_RANGE(0xffc000, 0xffffff) AM_RAM /* Work RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( roldfrog_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( roldfrog_sound_map, AS_PROGRAM, 8, splash_state )
AM_RANGE(0x0000, 0x6fff) AM_ROM
AM_RANGE(0x7000, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROM AM_ROMBANK("sound_bank")
@@ -201,7 +201,7 @@ static READ8_HANDLER(roldfrog_unk_r)
return 0xff;
}
-static ADDRESS_MAP_START( roldfrog_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( roldfrog_sound_io_map, AS_IO, 8, splash_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x11) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0x40, 0x40) AM_NOP
@@ -231,7 +231,7 @@ static WRITE16_HANDLER( funystrp_sh_irqtrigger_w )
cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
-static ADDRESS_MAP_START( funystrp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( funystrp_map, AS_PROGRAM, 16, splash_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x1fffff) AM_RAM /* protection? RAM */
AM_RANGE(0x800000, 0x83ffff) AM_RAM AM_BASE_MEMBER(splash_state, m_pixelram) /* Pixel Layer */
@@ -250,7 +250,7 @@ static ADDRESS_MAP_START( funystrp_map, AS_PROGRAM, 16 )
AM_RANGE(0xfe0000, 0xffffff) AM_RAM AM_MASK(0xffff) /* there's fe0000 <-> ff0000 compare */ /* Work RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( funystrp_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( funystrp_sound_map, AS_PROGRAM, 8, splash_state )
AM_RANGE(0x0000, 0x6fff) AM_ROM
AM_RANGE(0x7000, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROM AM_ROMBANK("sound_bank")
@@ -290,7 +290,7 @@ static WRITE8_HANDLER(msm2_data_w)
state->m_msm_toggle2=0;
}
-static ADDRESS_MAP_START( funystrp_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( funystrp_sound_io_map, AS_IO, 8, splash_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(msm1_data_w)
AM_RANGE(0x01, 0x01) AM_WRITE(msm2_data_w)
diff --git a/src/mame/drivers/splus.c b/src/mame/drivers/splus.c
index 1a20e9cc8d0..6cc0d16fc2e 100644
--- a/src/mame/drivers/splus.c
+++ b/src/mame/drivers/splus.c
@@ -581,11 +581,11 @@ static DRIVER_INIT( splus )
* Memory map information *
*************************/
-static ADDRESS_MAP_START( splus_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( splus_map, AS_PROGRAM, 8, splus_state )
AM_RANGE(0x0000, 0xffff) AM_ROM AM_BASE_MEMBER(splus_state, m_program_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( splus_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( splus_iomap, AS_IO, 8, splus_state )
// Serial I/O
AM_RANGE(0x0000, 0x0000) AM_READ(splus_serial_r) AM_WRITE(splus_serial_w)
diff --git a/src/mame/drivers/spoker.c b/src/mame/drivers/spoker.c
index e21d1855903..87666291049 100644
--- a/src/mame/drivers/spoker.c
+++ b/src/mame/drivers/spoker.c
@@ -218,12 +218,12 @@ static READ8_HANDLER( spoker_magic_r )
-static ADDRESS_MAP_START( spoker_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spoker_map, AS_PROGRAM, 8, spoker_state )
AM_RANGE( 0x00000, 0x0f3ff ) AM_ROM
AM_RANGE( 0x0f400, 0x0ffff ) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spoker_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( spoker_portmap, AS_IO, 8, spoker_state )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // Z180 internal regs
AM_RANGE( 0x2000, 0x23ff ) AM_RAM_WRITE( paletteram_xBBBBBGGGGGRRRRR_split1_w ) AM_BASE_GENERIC( paletteram )
@@ -254,7 +254,7 @@ static ADDRESS_MAP_START( spoker_portmap, AS_IO, 8 )
AM_RANGE( 0x7000, 0x7fff ) AM_RAM_WRITE( fg_color_w ) AM_BASE_MEMBER( spoker_state,m_fg_color_ram )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( 3super8_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( 3super8_portmap, AS_IO, 8, spoker_state )
// AM_RANGE( 0x1000, 0x1fff ) AM_WRITENOP
AM_RANGE( 0x2000, 0x27ff ) AM_RAM_WRITE( paletteram_xBBBBBGGGGGRRRRR_split1_w ) AM_BASE_GENERIC( paletteram )
diff --git a/src/mame/drivers/spool99.c b/src/mame/drivers/spool99.c
index 49ca1a1ccab..8349bf1ac5d 100644
--- a/src/mame/drivers/spool99.c
+++ b/src/mame/drivers/spool99.c
@@ -206,7 +206,7 @@ static WRITE8_DEVICE_HANDLER( eeprom_dataline_w )
eeprom->write_bit(data & 0x01);
}
-static ADDRESS_MAP_START( spool99_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spool99_map, AS_PROGRAM, 8, spool99_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_BASE_MEMBER(spool99_state,m_main)
AM_RANGE(0x0100, 0xaeff) AM_ROM AM_REGION("maincpu", 0x100) AM_WRITENOP
AM_RANGE(0xaf00, 0xafff) AM_READ(spool99_io_r)
@@ -252,7 +252,7 @@ static READ8_HANDLER( vcarn_io_r )
return ROM[0xa700+offset];
}
-static ADDRESS_MAP_START( vcarn_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( vcarn_map, AS_PROGRAM, 8, spool99_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_BASE_MEMBER(spool99_state,m_main)
AM_RANGE(0x0100, 0xa6ff) AM_ROM AM_REGION("maincpu", 0x100) AM_WRITENOP
AM_RANGE(0xa700, 0xa7ff) AM_READ(vcarn_io_r)
diff --git a/src/mame/drivers/sprcros2.c b/src/mame/drivers/sprcros2.c
index 1b1c68bb3b0..8aa3c1fac30 100644
--- a/src/mame/drivers/sprcros2.c
+++ b/src/mame/drivers/sprcros2.c
@@ -101,7 +101,7 @@ static WRITE8_HANDLER( sprcros2_s_port3_w )
state->m_s_port3 = data;
}
-static ADDRESS_MAP_START( sprcros2_master_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sprcros2_master_map, AS_PROGRAM, 8, sprcros2_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("bank1")
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(sprcros2_fgvideoram_w) AM_BASE_MEMBER(sprcros2_state, m_fgvideoram)
@@ -112,7 +112,7 @@ static ADDRESS_MAP_START( sprcros2_master_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("share1") //shared with slave cpu
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sprcros2_master_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sprcros2_master_io_map, AS_IO, 8, sprcros2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") AM_DEVWRITE("sn1", sn76496_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("P2") AM_DEVWRITE("sn2", sn76496_w)
@@ -122,7 +122,7 @@ static ADDRESS_MAP_START( sprcros2_master_io_map, AS_IO, 8 )
AM_RANGE(0x07, 0x07) AM_WRITE(sprcros2_m_port7_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sprcros2_slave_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sprcros2_slave_map, AS_PROGRAM, 8, sprcros2_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("bank2")
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(sprcros2_bgvideoram_w) AM_BASE_MEMBER(sprcros2_state, m_bgvideoram)
@@ -131,7 +131,7 @@ static ADDRESS_MAP_START( sprcros2_slave_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sprcros2_slave_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sprcros2_slave_io_map, AS_IO, 8, sprcros2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(sprcros2_bgscrollx_w)
AM_RANGE(0x01, 0x01) AM_WRITE(sprcros2_bgscrolly_w)
diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c
index 23037e03c21..0c760be4fa6 100644
--- a/src/mame/drivers/sprint2.c
+++ b/src/mame/drivers/sprint2.c
@@ -256,7 +256,7 @@ static WRITE8_HANDLER( sprint2_lamp2_w )
}
-static ADDRESS_MAP_START( sprint2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sprint2_map, AS_PROGRAM, 8, sprint2_state )
AM_RANGE(0x0000, 0x03ff) AM_READWRITE(sprint2_wram_r,sprint2_wram_w)
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(sprint2_video_ram_w) AM_BASE_MEMBER(sprint2_state, m_video_ram)
AM_RANGE(0x0818, 0x081f) AM_READ(sprint2_input_A_r)
diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c
index 29ea2ff50bd..bca3484167f 100644
--- a/src/mame/drivers/sprint4.c
+++ b/src/mame/drivers/sprint4.c
@@ -230,7 +230,7 @@ static WRITE8_DEVICE_HANDLER( sprint4_attract_w )
}
-static ADDRESS_MAP_START( sprint4_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sprint4_cpu_map, AS_PROGRAM, 8, sprint4_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
diff --git a/src/mame/drivers/sprint8.c b/src/mame/drivers/sprint8.c
index 0af43faa345..4641eb7bd20 100644
--- a/src/mame/drivers/sprint8.c
+++ b/src/mame/drivers/sprint8.c
@@ -102,7 +102,7 @@ static WRITE8_HANDLER( sprint8_int_reset_w )
}
-static ADDRESS_MAP_START( sprint8_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sprint8_map, AS_PROGRAM, 8, sprint8_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(sprint8_video_ram_w) AM_BASE_MEMBER(sprint8_state, m_video_ram)
AM_RANGE(0x1c00, 0x1c00) AM_READ(sprint8_collision_r)
diff --git a/src/mame/drivers/spy.c b/src/mame/drivers/spy.c
index 4b7d77f28bf..07efd4356c2 100644
--- a/src/mame/drivers/spy.c
+++ b/src/mame/drivers/spy.c
@@ -384,7 +384,7 @@ static WRITE8_HANDLER( k052109_051960_w )
k051960_w(state->m_k051960, offset - 0x3c00, data);
}
-static ADDRESS_MAP_START( spy_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spy_map, AS_PROGRAM, 8, spy_state )
AM_RANGE(0x0000, 0x07ff) AM_READWRITE(spy_bankedram1_r, spy_bankedram1_w) AM_BASE_MEMBER(spy_state, m_ram)
AM_RANGE(0x0800, 0x1aff) AM_RAM
AM_RANGE(0x3f80, 0x3f80) AM_WRITE(bankswitch_w)
@@ -402,7 +402,7 @@ static ADDRESS_MAP_START( spy_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spy_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( spy_sound_map, AS_PROGRAM, 8, spy_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_WRITE(sound_bank_w)
diff --git a/src/mame/drivers/srmp2.c b/src/mame/drivers/srmp2.c
index 75187582124..f70e1b00270 100644
--- a/src/mame/drivers/srmp2.c
+++ b/src/mame/drivers/srmp2.c
@@ -391,7 +391,7 @@ static WRITE8_HANDLER( srmp2_irq4_ack_w )
}
-static ADDRESS_MAP_START( srmp2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( srmp2_map, AS_PROGRAM, 16, srmp2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x0c0000, 0x0c3fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x140000, 0x143fff) AM_RAM AM_DEVREADWRITE("spritegen", spritecode_r16, spritecode_w16) /* Sprites Code + X + Attr */
@@ -424,7 +424,7 @@ static READ8_HANDLER( mjyuugi_irq4_ack_r )
return 0xff; // value returned doesn't matter
}
-static ADDRESS_MAP_START( mjyuugi_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mjyuugi_map, AS_PROGRAM, 16, srmp2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("SYSTEM") /* Coinage */
AM_RANGE(0x100000, 0x100001) AM_WRITE(mjyuugi_flags_w) /* Coin Counter */
@@ -471,7 +471,7 @@ static WRITE8_HANDLER( srmp3_irq_ack_w )
cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
}
-static ADDRESS_MAP_START( srmp3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( srmp3_map, AS_PROGRAM, 8, srmp2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1") /* rom bank */
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("nvram") /* work ram */
@@ -483,7 +483,7 @@ static ADDRESS_MAP_START( srmp3_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM AM_DEVREADWRITE("spritegen", spritecodehigh_r8, spritecodehigh_w8)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( srmp3_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( srmp3_io_map, AS_IO, 8, srmp2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x20, 0x20) AM_WRITE(srmp3_irq_ack_w) /* interrupt acknowledge */
AM_RANGE(0x40, 0x40) AM_READ_PORT("SYSTEM") AM_WRITE(srmp3_flags_w) /* coin, service | GFX bank, counter, lockout */
@@ -496,7 +496,7 @@ static ADDRESS_MAP_START( srmp3_io_map, AS_IO, 8 )
AM_RANGE(0xe2, 0xe2) AM_DEVREAD("aysnd", ay8910_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rmgoldyh_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rmgoldyh_map, AS_PROGRAM, 8, srmp2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1") /* rom bank */
AM_RANGE(0xa000, 0xafff) AM_RAM AM_SHARE("nvram") /* work ram */
@@ -526,7 +526,7 @@ static WRITE8_HANDLER( rmgoldyh_rombank_w )
memory_set_bankptr(space->machine(), "bank1", &ROM[addr]);
}
-static ADDRESS_MAP_START( rmgoldyh_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( rmgoldyh_io_map, AS_IO, 8, srmp2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP /* watchdog */
AM_RANGE(0x60, 0x60) AM_WRITE(rmgoldyh_rombank_w) /* ROM bank select */
diff --git a/src/mame/drivers/srmp5.c b/src/mame/drivers/srmp5.c
index 90cea6a8c16..a67286e6eeb 100644
--- a/src/mame/drivers/srmp5.c
+++ b/src/mame/drivers/srmp5.c
@@ -343,7 +343,7 @@ static READ32_HANDLER(irq_ack_clear)
return 0;
}
-static ADDRESS_MAP_START( srmp5_mem, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( srmp5_mem, AS_PROGRAM, 32, srmp5_state )
AM_RANGE(0x00000000, 0x000fffff) AM_RAM //maybe 0 - 2fffff ?
AM_RANGE(0x002f0000, 0x002f7fff) AM_RAM
AM_RANGE(0x01000000, 0x01000003) AM_WRITEONLY // 0xaa .. watchdog ?
@@ -374,7 +374,7 @@ static ADDRESS_MAP_START( srmp5_mem, AS_PROGRAM, 32 )
AM_RANGE(0x2fc00000, 0x2fdfffff) AM_ROM AM_REGION("user1", 0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( st0016_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( st0016_mem, AS_PROGRAM, 8, srmp5_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xe900, 0xe9ff) AM_DEVREADWRITE("stsnd", st0016_snd_r, st0016_snd_w)
@@ -404,7 +404,7 @@ static READ8_HANDLER(cmd_stat8_r)
return state->m_cmd_stat;
}
-static ADDRESS_MAP_START( st0016_io, AS_IO, 8 )
+static ADDRESS_MAP_START( st0016_io, AS_IO, 8, srmp5_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xbf) AM_READ(st0016_vregs_r) AM_WRITE(st0016_vregs_w)
AM_RANGE(0xc0, 0xc0) AM_READ(cmd1_r)
diff --git a/src/mame/drivers/srmp6.c b/src/mame/drivers/srmp6.c
index 1e1653b99e7..7b2148cb889 100644
--- a/src/mame/drivers/srmp6.c
+++ b/src/mame/drivers/srmp6.c
@@ -539,7 +539,7 @@ static READ16_HANDLER( srmp6_irq_ack_r )
return 0; // value read doesn't matter
}
-static ADDRESS_MAP_START( srmp6_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( srmp6_map, AS_PROGRAM, 16, srmp6_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x23ffff) AM_RAM // work RAM
AM_RANGE(0x600000, 0x7fffff) AM_ROMBANK("bank1") // banked ROM (used by ROM check)
diff --git a/src/mame/drivers/srumbler.c b/src/mame/drivers/srumbler.c
index 0e4da96822b..880898683e0 100644
--- a/src/mame/drivers/srumbler.c
+++ b/src/mame/drivers/srumbler.c
@@ -72,7 +72,7 @@ to the page register.
Ignore the warnings about writing to unmapped memory.
*/
-static ADDRESS_MAP_START( srumbler_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( srumbler_map, AS_PROGRAM, 8, srumbler_state )
AM_RANGE(0x0000, 0x1dff) AM_RAM /* RAM (of 1 sort or another) */
AM_RANGE(0x1e00, 0x1fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x2000, 0x3fff) AM_RAM_WRITE(srumbler_background_w) AM_BASE_MEMBER(srumbler_state, m_backgroundram)
@@ -98,7 +98,7 @@ static ADDRESS_MAP_START( srumbler_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_ROMBANK("f000") /* Banked ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( srumbler_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( srumbler_sound_map, AS_PROGRAM, 8, srumbler_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ym2", ym2203_w)
diff --git a/src/mame/drivers/ssfindo.c b/src/mame/drivers/ssfindo.c
index 5dde36fd9a9..481f5b0330e 100644
--- a/src/mame/drivers/ssfindo.c
+++ b/src/mame/drivers/ssfindo.c
@@ -544,7 +544,7 @@ static READ32_HANDLER(randomized_r)
return space->machine().rand();
}
-static ADDRESS_MAP_START( ssfindo_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( ssfindo_map, AS_PROGRAM, 32, ssfindo_state )
AM_RANGE(0x00000000, 0x000fffff) AM_ROM AM_REGION("user1", 0)
AM_RANGE(0x03200000, 0x032001ff) AM_READWRITE(PS7500_IO_r,PS7500_IO_w)
AM_RANGE(0x03012e60, 0x03012e67) AM_NOP
@@ -562,7 +562,7 @@ static ADDRESS_MAP_START( ssfindo_map, AS_PROGRAM, 32 )
AM_RANGE(0x10000000, 0x11ffffff) AM_RAM AM_BASE_MEMBER(ssfindo_state, m_vram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ppcar_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( ppcar_map, AS_PROGRAM, 32, ssfindo_state )
AM_RANGE(0x00000000, 0x000fffff) AM_ROM AM_REGION("user1", 0)
AM_RANGE(0x03200000, 0x032001ff) AM_READWRITE(PS7500_IO_r,PS7500_IO_w)
AM_RANGE(0x03012b00, 0x03012bff) AM_READ(randomized_r) AM_WRITENOP
@@ -588,7 +588,7 @@ static WRITE32_HANDLER(tetfight_unk_w)
//sound latch ?
}
-static ADDRESS_MAP_START( tetfight_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( tetfight_map, AS_PROGRAM, 32, ssfindo_state )
AM_RANGE(0x00000000, 0x001fffff) AM_ROM AM_REGION("user1", 0)
AM_RANGE(0x03200000, 0x032001ff) AM_READWRITE(PS7500_IO_r,PS7500_IO_w)
AM_RANGE(0x03400000, 0x03400003) AM_WRITE(FIFO_w)
diff --git a/src/mame/drivers/sshangha.c b/src/mame/drivers/sshangha.c
index 5a5850e828b..f94522511b0 100644
--- a/src/mame/drivers/sshangha.c
+++ b/src/mame/drivers/sshangha.c
@@ -159,7 +159,7 @@ WRITE16_HANDLER( paletteram16_xbgr_word_be_tilehigh_w )
set_color_888(space->machine(), (offset/2)+0x300, 0, 8, 16, state->m_tile_paletteram2[(offset) | 1] | (state->m_tile_paletteram2[(offset) & ~1] << 16) );
}
-static ADDRESS_MAP_START( sshangha_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sshangha_map, AS_PROGRAM, 16, sshangha_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10000f) AM_RAM AM_BASE_MEMBER(sshangha_state, m_sound_shared_ram)
@@ -190,7 +190,7 @@ static ADDRESS_MAP_START( sshangha_map, AS_PROGRAM, 16 )
AM_RANGE(0xff4000, 0xff47ff) AM_READWRITE(sshangha_protection16_r,sshangha_protection16_w) AM_BASE_MEMBER(sshangha_state, m_prot_data)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sshanghb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sshanghb_map, AS_PROGRAM, 16, sshangha_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x084000, 0x0847ff) AM_READ(sshanghb_protection16_r)
AM_RANGE(0x101000, 0x10100f) AM_RAM AM_BASE_MEMBER(sshangha_state, m_sound_shared_ram) /* the bootleg writes here */
@@ -235,7 +235,7 @@ static WRITE8_HANDLER(sshangha_sound_shared_w)
}
/* Note: there's rom data after 0x8000 but the game never seem to call a rom bank, left-over? */
-static ADDRESS_MAP_START( sshangha_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sshangha_sound_map, AS_PROGRAM, 8, sshangha_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2203_r,ym2203_w)
AM_RANGE(0xc200, 0xc201) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
diff --git a/src/mame/drivers/sshot.c b/src/mame/drivers/sshot.c
index 5e9eb0201f3..de3ff0fca5a 100644
--- a/src/mame/drivers/sshot.c
+++ b/src/mame/drivers/sshot.c
@@ -248,7 +248,7 @@ static WRITE8_HANDLER(supershot_output1_w)
*
*************************************/
-static ADDRESS_MAP_START( supershot_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( supershot_map, AS_PROGRAM, 8, supershot_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM_WRITE( supershot_vidram_w ) AM_BASE_MEMBER( supershot_state, m_videoram )
AM_RANGE(0x4100, 0x41ff) AM_RAM
diff --git a/src/mame/drivers/ssingles.c b/src/mame/drivers/ssingles.c
index 9a360fa1744..d0eda46576e 100644
--- a/src/mame/drivers/ssingles.c
+++ b/src/mame/drivers/ssingles.c
@@ -353,7 +353,7 @@ static CUSTOM_INPUT(controls_r)
return data;
}
-static ADDRESS_MAP_START( ssingles_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ssingles_map, AS_PROGRAM, 8, ssingles_state )
AM_RANGE(0x0000, 0x00ff) AM_WRITE(ssingles_videoram_w)
AM_RANGE(0x0800, 0x08ff) AM_WRITE(ssingles_colorram_w)
AM_RANGE(0x0000, 0x1fff) AM_ROM
@@ -394,7 +394,7 @@ static WRITE8_HANDLER( atamanot_prot_w )
}
-static ADDRESS_MAP_START( atamanot_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( atamanot_map, AS_PROGRAM, 8, ssingles_state )
AM_RANGE(0x0000, 0x00ff) AM_WRITE(ssingles_videoram_w)
AM_RANGE(0x0800, 0x08ff) AM_WRITE(ssingles_colorram_w)
AM_RANGE(0x0000, 0x3fff) AM_ROM
@@ -407,7 +407,7 @@ static ADDRESS_MAP_START( atamanot_map, AS_PROGRAM, 8 )
// AM_RANGE(0xc001, 0xc001) AM_READWRITE( c001_r, c001_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ssingles_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( ssingles_io_map, AS_IO, 8, ssingles_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVWRITE("ay1", ay8910_address_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE("ay1", ay8910_data_w)
@@ -422,7 +422,7 @@ static ADDRESS_MAP_START( ssingles_io_map, AS_IO, 8 )
AM_RANGE(0xff, 0xff) AM_DEVWRITE_MODERN("crtc", mc6845_device, register_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( atamanot_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( atamanot_io_map, AS_IO, 8, ssingles_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVWRITE("ay1", ay8910_address_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE("ay1", ay8910_data_w)
diff --git a/src/mame/drivers/sslam.c b/src/mame/drivers/sslam.c
index 0bca0f5aea9..4bc3d0c98ae 100644
--- a/src/mame/drivers/sslam.c
+++ b/src/mame/drivers/sslam.c
@@ -386,7 +386,7 @@ static WRITE16_HANDLER( powerbls_sound_w )
/* these will need verifying .. the game writes all over the place ... */
-static ADDRESS_MAP_START( sslam_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sslam_program_map, AS_PROGRAM, 16, sslam_state )
AM_RANGE(0x000400, 0x07ffff) AM_RAM
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(sslam_bg_tileram_w) AM_BASE_MEMBER(sslam_state,m_bg_tileram)
AM_RANGE(0x104000, 0x107fff) AM_RAM_WRITE(sslam_md_tileram_w) AM_BASE_MEMBER(sslam_state,m_md_tileram)
@@ -409,7 +409,7 @@ static ADDRESS_MAP_START( sslam_program_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0xffffff) AM_ROM /* I don't honestly know where the rom is mirrored .. so all unmapped reads / writes go to rom */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( powerbls_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( powerbls_map, AS_PROGRAM, 16, sslam_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(powerbls_bg_tileram_w) AM_BASE_MEMBER(sslam_state,m_bg_tileram)
AM_RANGE(0x104000, 0x107fff) AM_RAM // not used
@@ -478,7 +478,7 @@ static WRITE8_HANDLER( playmark_snd_control_w )
// (data & 0x40) -> always set
}
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, sslam_state )
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITE(playmark_snd_control_w)
AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE(playmark_snd_command_r, playmark_oki_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ssozumo.c b/src/mame/drivers/ssozumo.c
index 7f13c218214..c65c82ca526 100644
--- a/src/mame/drivers/ssozumo.c
+++ b/src/mame/drivers/ssozumo.c
@@ -21,7 +21,7 @@ static WRITE8_HANDLER( ssozumo_sh_command_w )
}
-static ADDRESS_MAP_START( ssozumo_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ssozumo_map, AS_PROGRAM, 8, ssozumo_state )
AM_RANGE(0x0000, 0x077f) AM_RAM
AM_RANGE(0x0780, 0x07ff) AM_RAM AM_BASE_SIZE_MEMBER(ssozumo_state, m_spriteram, m_spriteram_size)
AM_RANGE(0x2000, 0x23ff) AM_RAM_WRITE(ssozumo_videoram2_w) AM_BASE_MEMBER(ssozumo_state, m_videoram2)
@@ -48,7 +48,7 @@ static WRITE8_HANDLER( sound_nmi_mask_w )
}
/* Same as Tag Team */
-static ADDRESS_MAP_START( ssozumo_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ssozumo_sound_map, AS_PROGRAM, 8, ssozumo_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("ay1", ay8910_data_address_w)
AM_RANGE(0x2002, 0x2003) AM_DEVWRITE("ay2", ay8910_data_address_w)
diff --git a/src/mame/drivers/sspeedr.c b/src/mame/drivers/sspeedr.c
index b4e61148844..92546aaaf83 100644
--- a/src/mame/drivers/sspeedr.c
+++ b/src/mame/drivers/sspeedr.c
@@ -77,14 +77,14 @@ static WRITE8_HANDLER( sspeedr_sound_w )
}
-static ADDRESS_MAP_START( sspeedr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sspeedr_map, AS_PROGRAM, 8, sspeedr_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x2000, 0x21ff) AM_RAM
AM_RANGE(0x7f00, 0x7f17) AM_WRITE(sspeedr_score_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sspeedr_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sspeedr_io_map, AS_IO, 8, sspeedr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/ssrj.c b/src/mame/drivers/ssrj.c
index ab51a886565..b8b0981d578 100644
--- a/src/mame/drivers/ssrj.c
+++ b/src/mame/drivers/ssrj.c
@@ -53,7 +53,7 @@ static READ8_HANDLER(ssrj_wheel_r)
return retval;
}
-static ADDRESS_MAP_START( ssrj_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ssrj_map, AS_PROGRAM, 8, ssrj_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(ssrj_vram1_w) AM_BASE_MEMBER(ssrj_state, m_vram1)
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(ssrj_vram2_w) AM_BASE_MEMBER(ssrj_state, m_vram2)
diff --git a/src/mame/drivers/sstrangr.c b/src/mame/drivers/sstrangr.c
index b49b2688611..af85c345192 100644
--- a/src/mame/drivers/sstrangr.c
+++ b/src/mame/drivers/sstrangr.c
@@ -138,7 +138,7 @@ static WRITE8_HANDLER( port_w )
-static ADDRESS_MAP_START( sstrangr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sstrangr_map, AS_PROGRAM, 8, sstrangr_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE_MEMBER(sstrangr_state,m_ram)
@@ -146,7 +146,7 @@ static ADDRESS_MAP_START( sstrangr_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sstrangr_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sstrangr_io_map, AS_IO, 8, sstrangr_state )
AM_RANGE(0x41, 0x41) AM_READ_PORT("DSW")
AM_RANGE(0x42, 0x42) AM_READ_PORT("INPUTS")
AM_RANGE(0x44, 0x44) AM_READ_PORT("EXT") AM_WRITE(port_w)
diff --git a/src/mame/drivers/ssv.c b/src/mame/drivers/ssv.c
index b8d23b1b44e..92224acc6b9 100644
--- a/src/mame/drivers/ssv.c
+++ b/src/mame/drivers/ssv.c
@@ -340,11 +340,11 @@ static MACHINE_RESET( ssv )
***************************************************************************/
-static ADDRESS_MAP_START( dsp_prg_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( dsp_prg_map, AS_PROGRAM, 32, ssv_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM AM_REGION("dspprg", 0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dsp_data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( dsp_data_map, AS_DATA, 16, ssv_state )
AM_RANGE(0x0000, 0x07ff) AM_ROM AM_REGION("dspdata", 0)
ADDRESS_MAP_END
@@ -441,7 +441,7 @@ static READ16_HANDLER( drifto94_rand_r )
return space->machine().rand() & 0xffff;
}
-static ADDRESS_MAP_START( drifto94_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( drifto94_map, AS_PROGRAM, 16, ssv_state )
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start
AM_RANGE(0x400000, 0x47ffff) AM_WRITEONLY // ?
AM_RANGE(0x480000, 0x480001) AM_READWRITE(dsp_dr_r, dsp_dr_w)
@@ -587,7 +587,7 @@ static WRITE16_HANDLER( gdfs_blitram_w )
}
}
-static ADDRESS_MAP_START( gdfs_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gdfs_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x400000, 0x41ffff) AM_RAM_WRITE(gdfs_tmapram_w) AM_BASE_MEMBER(ssv_state, m_gdfs_tmapram)
AM_RANGE(0x420000, 0x43ffff) AM_RAM
AM_RANGE(0x440000, 0x44003f) AM_RAM AM_BASE_MEMBER(ssv_state, m_gdfs_tmapscroll)
@@ -626,7 +626,7 @@ static READ16_HANDLER( hypreact_input_r )
return 0xffff;
}
-static ADDRESS_MAP_START( hypreact_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hypreact_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 5 at the start
AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Inverted lockout lines
@@ -642,7 +642,7 @@ ADDRESS_MAP_END
Hyper Reaction 2
***************************************************************************/
-static ADDRESS_MAP_START( hypreac2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hypreac2_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 5 at the start
AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Inverted lockout lines
@@ -661,7 +661,7 @@ ADDRESS_MAP_END
static READ16_HANDLER( srmp4_input_r );
-static ADDRESS_MAP_START( janjans1_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( janjans1_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x210000, 0x210001) AM_WRITENOP // koikois2 but not janjans1
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start
AM_RANGE(0x210006, 0x210007) AM_READNOP
@@ -675,7 +675,7 @@ ADDRESS_MAP_END
Keith & Lucy
***************************************************************************/
-static ADDRESS_MAP_START( keithlcy_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( keithlcy_map, AS_PROGRAM, 16, ssv_state )
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start
AM_RANGE(0x210010, 0x210011) AM_WRITENOP //
AM_RANGE(0x21000e, 0x21000f) AM_READNOP //
@@ -688,7 +688,7 @@ ADDRESS_MAP_END
Meosis Magic
***************************************************************************/
-static ADDRESS_MAP_START( meosism_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( meosism_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r ) // Watchdog
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 5 at the start
// AM_RANGE(0x280000, 0x280001) AM_READNOP // ? read once, value not used
@@ -717,7 +717,7 @@ static WRITE16_HANDLER( ssv_mainram_w )
COMBINE_DATA(&state->m_mainram[offset]);
}
-static ADDRESS_MAP_START( mslider_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mslider_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x010000, 0x01ffff) AM_READWRITE(ssv_mainram_r, ssv_mainram_w) // RAM Mirror
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start
AM_RANGE(0x400000, 0x47ffff) AM_WRITEONLY // ?
@@ -730,7 +730,7 @@ ADDRESS_MAP_END
Gourmet Battle Quiz Ryohrioh CooKing
***************************************************************************/
-static ADDRESS_MAP_START( ryorioh_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ryorioh_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x210000, 0x210001) AM_WRITE(watchdog_reset16_w) // Watchdog
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start
SSV_MAP( 0xc00000 )
@@ -754,7 +754,7 @@ static READ16_HANDLER( srmp4_input_r )
return 0xffff;
}
-static ADDRESS_MAP_START( srmp4_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( srmp4_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1,5 at the start
AM_RANGE(0xc0000a, 0xc0000b) AM_READ(srmp4_input_r) // Inputs
@@ -803,7 +803,7 @@ static READ16_HANDLER( srmp7_input_r )
return 0xffff;
}
-static ADDRESS_MAP_START( srmp7_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( srmp7_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x010000, 0x050faf) AM_RAM // More RAM
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 0,4 at the start
@@ -821,7 +821,7 @@ ADDRESS_MAP_END
Survival Arts
***************************************************************************/
-static ADDRESS_MAP_START( survarts_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( survarts_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 0,4 at the start
// AM_RANGE(0x290000, 0x290001) AM_READNOP // ?
@@ -873,7 +873,7 @@ static WRITE16_HANDLER( sxyreact_motor_w )
// popmessage("%04X",data); // 8 = motor on; 0 = motor off
}
-static ADDRESS_MAP_START( sxyreact_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sxyreact_map, AS_PROGRAM, 16, ssv_state )
// AM_RANGE(0x020000, 0x03ffff) AM_READWRITE(ssv_mainram_r, ssv_mainram_w) // sxyreac2 reads / writes here, why?
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start
@@ -892,7 +892,7 @@ ADDRESS_MAP_END
/* comes as either a standalone board or a standard SSV rom board (verified) */
-static ADDRESS_MAP_START( twineag2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( twineag2_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x010000, 0x03ffff) AM_RAM // More RAM
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog (also value is cmp.b with mem 8)
AM_RANGE(0x480000, 0x480001) AM_READWRITE(dsp_dr_r, dsp_dr_w)
@@ -907,7 +907,7 @@ ADDRESS_MAP_END
/* standalone board based on SSV hardware */
-static ADDRESS_MAP_START( ultrax_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ultrax_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x010000, 0x03ffff) AM_RAM // More RAM
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog (also value is cmp.b with memory address 8)
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 2,6 at the start
@@ -958,7 +958,7 @@ static WRITE16_HANDLER(latch16_w)
space->machine().scheduler().synchronize();
}
-static ADDRESS_MAP_START( jsk_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( jsk_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x050000, 0x05ffff) AM_READWRITE(ssv_mainram_r, ssv_mainram_w) // RAM Mirror?
AM_RANGE(0x210000, 0x210001) AM_WRITE(watchdog_reset16_w) // Watchdog
AM_RANGE(0x400000, 0x47ffff) AM_RAM // RAM?
@@ -967,7 +967,7 @@ static ADDRESS_MAP_START( jsk_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jsk_v810_mem, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( jsk_v810_mem, AS_PROGRAM, 32, ssv_state )
AM_RANGE(0x00000000, 0x0001ffff) AM_RAM
AM_RANGE(0x80000000, 0x8001ffff) AM_RAM
AM_RANGE(0xc0000000, 0xc001ffff) AM_RAM
@@ -1047,7 +1047,7 @@ static WRITE16_HANDLER( eaglshot_gfxram_w )
}
-static ADDRESS_MAP_START( eaglshot_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( eaglshot_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x180000, 0x1bffff) AM_READWRITE(eaglshot_gfxram_r, eaglshot_gfxram_w)
AM_RANGE(0x210000, 0x210001) AM_READNOP /*AM_READ(watchdog_reset16_r)*/ // Watchdog
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 0,4 at the start
diff --git a/src/mame/drivers/st0016.c b/src/mame/drivers/st0016.c
index 927f49dd2bf..680ec7d2f8b 100644
--- a/src/mame/drivers/st0016.c
+++ b/src/mame/drivers/st0016.c
@@ -25,7 +25,7 @@ UINT32 st0016_rom_bank;
*
*************************************/
-static ADDRESS_MAP_START( st0016_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( st0016_mem, AS_PROGRAM, 8, st0016_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_READ(st0016_sprite_ram_r) AM_WRITE(st0016_sprite_ram_w)
@@ -76,7 +76,7 @@ WRITE8_HANDLER(st0016_rom_bank_w)
st0016_rom_bank=data;
}
-static ADDRESS_MAP_START( st0016_io, AS_IO, 8 )
+static ADDRESS_MAP_START( st0016_io, AS_IO, 8, st0016_state )
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_PORT("P1") AM_WRITE(mux_select_w)
@@ -132,7 +132,7 @@ static WRITE8_HANDLER(latch8_w)
space->machine().scheduler().synchronize();
}
-static ADDRESS_MAP_START( v810_mem,AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( v810_mem,AS_PROGRAM, 32, st0016_state )
AM_RANGE(0x00000000, 0x0001ffff) AM_RAM
AM_RANGE(0x80000000, 0x8001ffff) AM_RAM
AM_RANGE(0xc0000000, 0xc001ffff) AM_RAM
@@ -140,7 +140,7 @@ static ADDRESS_MAP_START( v810_mem,AS_PROGRAM, 32 )
AM_RANGE(0xfff80000, 0xffffffff) AM_ROMBANK("bank2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( st0016_m2_io, AS_IO, 8 )
+static ADDRESS_MAP_START( st0016_m2_io, AS_IO, 8, st0016_state )
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/stactics.c b/src/mame/drivers/stactics.c
index 7a85b94dca6..a10b417c3b1 100644
--- a/src/mame/drivers/stactics.c
+++ b/src/mame/drivers/stactics.c
@@ -171,7 +171,7 @@ static INTERRUPT_GEN( stactics_interrupt )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, stactics_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x4000, 0x40ff) AM_MIRROR(0x0700) AM_RAM
AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x0fff) AM_READ_PORT("IN0")
diff --git a/src/mame/drivers/stadhero.c b/src/mame/drivers/stadhero.c
index efe132acc0b..b7827308b62 100644
--- a/src/mame/drivers/stadhero.c
+++ b/src/mame/drivers/stadhero.c
@@ -57,7 +57,7 @@ static WRITE16_HANDLER( stadhero_control_w )
/******************************************************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, stadhero_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(stadhero_pf1_data_w) AM_BASE_MEMBER(stadhero_state, m_pf1_data)
AM_RANGE(0x240000, 0x240007) AM_DEVWRITE("tilegen1", deco_bac06_pf_control_0_w) /* text layer */
@@ -71,7 +71,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, stadhero_state )
AM_RANGE(0x0000, 0x05ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym2", ym3812_w)
diff --git a/src/mame/drivers/starcrus.c b/src/mame/drivers/starcrus.c
index 6786eece7e6..6fc7ff35cb8 100644
--- a/src/mame/drivers/starcrus.c
+++ b/src/mame/drivers/starcrus.c
@@ -14,12 +14,12 @@ palazzol@home.com
#include "sound/samples.h"
#include "includes/starcrus.h"
-static ADDRESS_MAP_START( starcrus_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( starcrus_map, AS_PROGRAM, 8, starcrus_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1000, 0x10ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( starcrus_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( starcrus_io_map, AS_IO, 8, starcrus_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") AM_WRITE(starcrus_s1_x_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("P2") AM_WRITE(starcrus_s1_y_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(starcrus_coll_det_r, starcrus_s2_x_w)
diff --git a/src/mame/drivers/starfire.c b/src/mame/drivers/starfire.c
index 16eb82cd86d..320e6b7bebb 100644
--- a/src/mame/drivers/starfire.c
+++ b/src/mame/drivers/starfire.c
@@ -151,7 +151,7 @@ static READ8_HANDLER( fireone_input_r )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, starfire_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_READWRITE(starfire_scratch_r, starfire_scratch_w)
AM_RANGE(0xa000, 0xbfff) AM_READWRITE(starfire_colorram_r, starfire_colorram_w) AM_BASE_MEMBER(starfire_state, m_starfire_colorram)
diff --git a/src/mame/drivers/starshp1.c b/src/mame/drivers/starshp1.c
index f70d3da734a..535c3a29482 100644
--- a/src/mame/drivers/starshp1.c
+++ b/src/mame/drivers/starshp1.c
@@ -169,7 +169,7 @@ static WRITE8_HANDLER( starshp1_misc_w )
}
-static ADDRESS_MAP_START( starshp1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( starshp1_map, AS_PROGRAM, 8, starshp1_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x100)
AM_RANGE(0x2c00, 0x3fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("SYSTEM")
diff --git a/src/mame/drivers/starwars.c b/src/mame/drivers/starwars.c
index c9b1c947fd7..5126e5e2de6 100644
--- a/src/mame/drivers/starwars.c
+++ b/src/mame/drivers/starwars.c
@@ -153,7 +153,7 @@ DIRECT_UPDATE_HANDLER( esb_setdirect )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, starwars_state )
AM_RANGE(0x0000, 0x2fff) AM_RAM AM_BASE(&avgdvg_vectorram) AM_SIZE(&avgdvg_vectorram_size) AM_REGION("maincpu", 0)
AM_RANGE(0x3000, 0x3fff) AM_ROM /* vector_rom */
AM_RANGE(0x4300, 0x431f) AM_READ_PORT("IN0")
@@ -190,7 +190,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, starwars_state )
AM_RANGE(0x0000, 0x07ff) AM_WRITE(starwars_sout_w)
AM_RANGE(0x0800, 0x0fff) AM_READ(starwars_sin_r) /* SIN Read */
AM_RANGE(0x1000, 0x107f) AM_RAM /* 6532 ram */
diff --git a/src/mame/drivers/statriv2.c b/src/mame/drivers/statriv2.c
index b4b06563e35..005bd3e5cbd 100644
--- a/src/mame/drivers/statriv2.c
+++ b/src/mame/drivers/statriv2.c
@@ -288,14 +288,14 @@ static const ppi8255_interface ppi8255_intf =
*
*************************************/
-static ADDRESS_MAP_START( statriv2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( statriv2_map, AS_PROGRAM, 8, statriv2_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x4800, 0x48ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(statriv2_videoram_w) AM_BASE_MEMBER(statriv2_state, m_videoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( statriv2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( statriv2_io_map, AS_IO, 8, statriv2_state )
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("ppi", ppi8255_r, ppi8255_w)
AM_RANGE(0x28, 0x2b) AM_READ(question_data_r) AM_WRITEONLY AM_BASE_MEMBER(statriv2_state, m_question_offset)
AM_RANGE(0xb0, 0xb1) AM_DEVWRITE("aysnd", ay8910_address_data_w)
@@ -304,7 +304,7 @@ static ADDRESS_MAP_START( statriv2_io_map, AS_IO, 8 )
ADDRESS_MAP_END
#ifdef UNUSED_CODE
-static ADDRESS_MAP_START( statusbj_io, AS_IO, 8 )
+static ADDRESS_MAP_START( statusbj_io, AS_IO, 8, statriv2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("ppi", ppi8255_r, ppi8255_w)
AM_RANGE(0xb0, 0xb1) AM_DEVWRITE("aysnd", ay8910_address_data_w)
diff --git a/src/mame/drivers/stepstag.c b/src/mame/drivers/stepstag.c
index ec20d90e259..491acdf0f5d 100644
--- a/src/mame/drivers/stepstag.c
+++ b/src/mame/drivers/stepstag.c
@@ -57,7 +57,7 @@ static READ16_HANDLER( unknown_read_0xffff00 )
return space->machine().rand();
}
-static ADDRESS_MAP_START( stepstag_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( stepstag_map, AS_PROGRAM, 16, stepstag_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("spriteram") // Object RAM
AM_RANGE(0x104000, 0x107fff) AM_RAM // Spare Object RAM
@@ -89,7 +89,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( stepstag_sub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( stepstag_sub_map, AS_PROGRAM, 16, stepstag_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
diff --git a/src/mame/drivers/stfight.c b/src/mame/drivers/stfight.c
index 5fbff4782d8..8599019baa9 100644
--- a/src/mame/drivers/stfight.c
+++ b/src/mame/drivers/stfight.c
@@ -234,7 +234,7 @@ DONE? (check on real board)
#include "sound/msm5205.h"
#include "includes/stfight.h"
-static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8, stfight_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* sf02.bin */
AM_RANGE(0xc000, 0xc0ff) AM_RAM AM_BASE_GENERIC(paletteram)
@@ -256,7 +256,7 @@ static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_MEMBER(stfight_state, m_sprite_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, stfight_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
AM_RANGE(0xc800, 0xc801) AM_DEVREADWRITE("ym2", ym2203_r, ym2203_w)
diff --git a/src/mame/drivers/stlforce.c b/src/mame/drivers/stlforce.c
index 5a25c4d0ac3..aedc70218d6 100644
--- a/src/mame/drivers/stlforce.c
+++ b/src/mame/drivers/stlforce.c
@@ -90,7 +90,7 @@ static WRITE16_DEVICE_HANDLER( oki_bank_w )
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * ((data>>8) & 3));
}
-static ADDRESS_MAP_START( stlforce_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( stlforce_map, AS_PROGRAM, 16, stlforce_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x1007ff) AM_RAM_WRITE(stlforce_bg_videoram_w) AM_BASE_MEMBER(stlforce_state,m_bg_videoram)
AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(stlforce_mlow_videoram_w) AM_BASE_MEMBER(stlforce_state,m_mlow_videoram)
diff --git a/src/mame/drivers/strnskil.c b/src/mame/drivers/strnskil.c
index b3a73b67ecd..86dd01fae81 100644
--- a/src/mame/drivers/strnskil.c
+++ b/src/mame/drivers/strnskil.c
@@ -80,7 +80,7 @@ static WRITE8_HANDLER( protection_w )
/****************************************************************************/
-static ADDRESS_MAP_START( strnskil_map1, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( strnskil_map1, AS_PROGRAM, 8, strnskil_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
@@ -99,7 +99,7 @@ static ADDRESS_MAP_START( strnskil_map1, AS_PROGRAM, 8 )
AM_RANGE(0xd80a, 0xd80b) AM_WRITEONLY AM_BASE_MEMBER(strnskil_state, m_xscroll)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( strnskil_map2, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( strnskil_map2, AS_PROGRAM, 8, strnskil_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE_SIZE_MEMBER(strnskil_state, m_spriteram, m_spriteram_size)
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1")
@@ -109,7 +109,7 @@ static ADDRESS_MAP_START( strnskil_map2, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, strnskil_state )
// AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(mcu_portk_r)
// AM_RANGE(MB88_PORTR0, MB88_PORTR0) AM_READWRITE(mcu_portr0_r, mcu_portr0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/su2000.c b/src/mame/drivers/su2000.c
index 446df784d82..80a68ce6a88 100644
--- a/src/mame/drivers/su2000.c
+++ b/src/mame/drivers/su2000.c
@@ -86,14 +86,14 @@ public:
*
*************************************/
-static ADDRESS_MAP_START( pcat_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( pcat_map, AS_PROGRAM, 32, su2000_state )
AM_RANGE(0x00000000, 0x0009ffff) AM_RAMBANK("mem_bank")
AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM
AM_RANGE(0x000f0000, 0x000fffff) AM_ROM
AM_RANGE(0xffff0000, 0xffffffff) AM_ROM AM_REGION("maincpu", 0x0f0000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pcat_io, AS_IO, 32 )
+static ADDRESS_MAP_START( pcat_io, AS_IO, 32, su2000_state )
AM_IMPORT_FROM(pcat32_io_common)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/sub.c b/src/mame/drivers/sub.c
index 3b540ccfec3..273f70b01be 100644
--- a/src/mame/drivers/sub.c
+++ b/src/mame/drivers/sub.c
@@ -213,7 +213,7 @@ static SCREEN_UPDATE_IND16(sub)
return 0;
}
-static ADDRESS_MAP_START( subm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( subm_map, AS_PROGRAM, 8, sub_state )
AM_RANGE(0x0000, 0xafff) AM_ROM
AM_RANGE(0xb000, 0xbfff) AM_RAM
AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_BASE_MEMBER(sub_state,m_attr)
@@ -248,18 +248,18 @@ static WRITE8_HANDLER( nmi_mask_w )
state->m_nmi_en = data & 1;
}
-static ADDRESS_MAP_START( subm_io, AS_IO, 8 )
+static ADDRESS_MAP_START( subm_io, AS_IO, 8, sub_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(soundlatch2_r, subm_to_sound_w) // to/from sound CPU
ADDRESS_MAP_END
-static ADDRESS_MAP_START( subm_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( subm_sound_map, AS_PROGRAM, 8, sub_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_WRITE(nmi_mask_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( subm_sound_io, AS_IO, 8 )
+static ADDRESS_MAP_START( subm_sound_io, AS_IO, 8, sub_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(soundlatch_r, soundlatch2_w) // to/from main CPU
AM_RANGE(0x40, 0x41) AM_DEVREADWRITE("ay1", ay8910_r, ay8910_address_data_w)
diff --git a/src/mame/drivers/subs.c b/src/mame/drivers/subs.c
index 3288e7ba4d5..776d68c4303 100644
--- a/src/mame/drivers/subs.c
+++ b/src/mame/drivers/subs.c
@@ -45,7 +45,7 @@ static PALETTE_INIT( subs )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, subs_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x0000) AM_DEVWRITE("discrete", subs_noise_reset_w)
AM_RANGE(0x0000, 0x0007) AM_READ(subs_control_r)
diff --git a/src/mame/drivers/subsino.c b/src/mame/drivers/subsino.c
index a921f76c2d4..ec97ee18d36 100644
--- a/src/mame/drivers/subsino.c
+++ b/src/mame/drivers/subsino.c
@@ -774,7 +774,7 @@ static WRITE8_HANDLER( subsino_out_b_w )
* Memory Maps *
***************************************************************************/
-static ADDRESS_MAP_START( srider_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( srider_map, AS_PROGRAM, 8, subsino_state )
AM_RANGE( 0x00000, 0x0bfff ) AM_ROM
AM_RANGE( 0x0c000, 0x0cfff ) AM_RAM
@@ -803,7 +803,7 @@ static ADDRESS_MAP_START( srider_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sharkpy_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sharkpy_map, AS_PROGRAM, 8, subsino_state )
AM_RANGE( 0x09800, 0x09fff ) AM_RAM
AM_RANGE( 0x09000, 0x09000 ) AM_READ_PORT( "SW1" )
@@ -838,7 +838,7 @@ that announces to the player that the card deck changes. If the protection check
this event makes the game to reset without any money in the bank.
*/
-static ADDRESS_MAP_START( victor21_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( victor21_map, AS_PROGRAM, 8, subsino_state )
AM_RANGE( 0x09800, 0x09fff ) AM_RAM
AM_RANGE( 0x09000, 0x09000 ) AM_WRITE( subsino_out_a_w )
@@ -921,7 +921,7 @@ static WRITE8_HANDLER( flash_w )
}
}
-static ADDRESS_MAP_START( victor5_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( victor5_map, AS_PROGRAM, 8, subsino_state )
AM_IMPORT_FROM( victor21_map )
AM_RANGE( 0x0900a, 0x0900a ) AM_READWRITE( flash_r, flash_w )
AM_RANGE( 0x0900b, 0x0900b ) AM_READNOP //"flash" status, bit 0
@@ -934,7 +934,7 @@ static READ8_HANDLER( hwcheck_r )
return 0x55;
}
-static ADDRESS_MAP_START( crsbingo_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( crsbingo_map, AS_PROGRAM, 8, subsino_state )
AM_RANGE( 0x09800, 0x09fff ) AM_RAM
AM_RANGE( 0x09000, 0x09000 ) AM_READ_PORT( "SW1" )
@@ -983,7 +983,7 @@ static WRITE8_HANDLER( subsino_out_c_w )
// popmessage("data %02x\n",data);
}
-static ADDRESS_MAP_START( tisub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tisub_map, AS_PROGRAM, 8, subsino_state )
AM_RANGE( 0x09800, 0x09fff ) AM_RAM
AM_RANGE( 0x09000, 0x09000 ) AM_READ_PORT( "SW1" )
@@ -1114,7 +1114,7 @@ static READ8_HANDLER( reel_scrollattr_r )
return state->m_reel1_attr[offset];
}
-static ADDRESS_MAP_START( stisub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( stisub_map, AS_PROGRAM, 8, subsino_state )
AM_RANGE( 0x00000, 0x0bfff ) AM_ROM
AM_RANGE( 0x0c000, 0x0cfff ) AM_RAM
@@ -1155,7 +1155,7 @@ ADDRESS_MAP_END
Magic Train (Clear NVRAM ROM?)
***************************************************************************/
-static ADDRESS_MAP_START( mtrainnv_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mtrainnv_map, AS_PROGRAM, 8, subsino_state )
AM_RANGE( 0x00000, 0x0bfff ) AM_ROM
AM_RANGE( 0x0c000, 0x0cfff ) AM_RAM
@@ -1192,7 +1192,7 @@ static ADDRESS_MAP_START( mtrainnv_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( subsino_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( subsino_iomap, AS_IO, 8, subsino_state )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs
ADDRESS_MAP_END
diff --git a/src/mame/drivers/subsino2.c b/src/mame/drivers/subsino2.c
index 141b66ee2a0..722cb8e0afa 100644
--- a/src/mame/drivers/subsino2.c
+++ b/src/mame/drivers/subsino2.c
@@ -930,7 +930,7 @@ static WRITE16_HANDLER( bishjan_outputs_w )
}
-static ADDRESS_MAP_START( bishjan_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bishjan_map, AS_PROGRAM, 16, subsino2_state )
ADDRESS_MAP_GLOBAL_MASK(0xffffff)
AM_RANGE( 0x000000, 0x07ffff ) AM_ROM AM_REGION("maincpu", 0)
@@ -1111,7 +1111,7 @@ static READ8_HANDLER( mtrain_prot_r )
return "SUBSION"[offset];
}
-static ADDRESS_MAP_START( mtrain_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mtrain_map, AS_PROGRAM, 8, subsino2_state )
AM_RANGE( 0x00000, 0x06fff ) AM_ROM
AM_RANGE( 0x07800, 0x07fff ) AM_RAM AM_SHARE("nvram") // battery
@@ -1144,7 +1144,7 @@ static ADDRESS_MAP_START( mtrain_map, AS_PROGRAM, 8 )
AM_RANGE( 0x0a000, 0x0ffff ) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mtrain_io, AS_IO, 8 )
+static ADDRESS_MAP_START( mtrain_io, AS_IO, 8, subsino2_state )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs
ADDRESS_MAP_END
@@ -1178,7 +1178,7 @@ static WRITE8_HANDLER( saklove_outputs_w )
// popmessage("0: %02x - 1: %02x - 2: %02x - 3: %02x", state->m_outputs[0], state->m_outputs[1], state->m_outputs[2], state->m_outputs[3]);
}
-static ADDRESS_MAP_START( saklove_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( saklove_map, AS_PROGRAM, 8, subsino2_state )
AM_RANGE(0x00000, 0x07fff) AM_RAM AM_SHARE("nvram") // battery
// read lo (L1) (only half tilemap?)
@@ -1203,7 +1203,7 @@ static ADDRESS_MAP_START( saklove_map, AS_PROGRAM, 8 )
AM_RANGE(0xe0000, 0xfffff) AM_ROM AM_REGION("maincpu",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( saklove_io, AS_IO, 8 )
+static ADDRESS_MAP_START( saklove_io, AS_IO, 8, subsino2_state )
AM_RANGE(0x0000, 0x0000) AM_WRITE( ss9601_scrollctrl_w )
AM_RANGE(0x0020, 0x0020) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
@@ -1269,7 +1269,7 @@ static WRITE8_HANDLER( xplan_outputs_w )
// popmessage("0: %02x - 1: %02x - 2: %02x - 3: %02x", state->m_outputs[0], state->m_outputs[1], state->m_outputs[2], state->m_outputs[3]);
}
-static ADDRESS_MAP_START( xplan_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( xplan_map, AS_PROGRAM, 8, subsino2_state )
AM_RANGE(0x00000, 0x07fff) AM_RAM AM_SHARE("nvram") // battery
// write both (L1, byte_lo2)
@@ -1303,7 +1303,7 @@ static ADDRESS_MAP_START( xplan_map, AS_PROGRAM, 8 )
AM_RANGE(0xc0000, 0xfffff) AM_ROM AM_REGION("maincpu",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( xplan_io, AS_IO, 8 )
+static ADDRESS_MAP_START( xplan_io, AS_IO, 8, subsino2_state )
AM_RANGE(0x0000, 0x0000) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
AM_RANGE(0x0020, 0x0020) AM_WRITE( ss9601_byte_lo2_w )
@@ -1373,14 +1373,14 @@ static WRITE8_HANDLER( xtrain_outputs_w )
// popmessage("0: %02x - 1: %02x - 2: %02x - 3: %02x", state->m_outputs[0], state->m_outputs[1], state->m_outputs[2], state->m_outputs[3]);
}
-static ADDRESS_MAP_START( expcard_io, AS_IO, 8 )
+static ADDRESS_MAP_START( expcard_io, AS_IO, 8, subsino2_state )
// 306 = d, 307 = c, 308 = b, 309 = a
AM_RANGE(0x0306, 0x0309) AM_WRITE( expcard_outputs_w ) AM_BASE_MEMBER(subsino2_state, m_outputs )
AM_IMPORT_FROM( xplan_io )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( xtrain_io, AS_IO, 8 )
+static ADDRESS_MAP_START( xtrain_io, AS_IO, 8, subsino2_state )
// 306 = d, 307 = c, 308 = b, 309 = a
AM_RANGE(0x0306, 0x0309) AM_WRITE( xtrain_outputs_w ) AM_BASE_MEMBER(subsino2_state, m_outputs )
diff --git a/src/mame/drivers/summit.c b/src/mame/drivers/summit.c
index c1fc631b0b8..164d131e2ba 100644
--- a/src/mame/drivers/summit.c
+++ b/src/mame/drivers/summit.c
@@ -62,7 +62,7 @@ static WRITE8_HANDLER( out_w )
}
-static ADDRESS_MAP_START( mainmap, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mainmap, AS_PROGRAM, 8, summit_state )
AM_RANGE(0x0000, 0x17ff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM AM_BASE_MEMBER(summit_state, m_attr)
diff --git a/src/mame/drivers/suna16.c b/src/mame/drivers/suna16.c
index 12521a03a67..8c1d83221f9 100644
--- a/src/mame/drivers/suna16.c
+++ b/src/mame/drivers/suna16.c
@@ -88,7 +88,7 @@ static WRITE16_HANDLER( bestbest_coin_w )
Back Street Soccer
***************************************************************************/
-static ADDRESS_MAP_START( bssoccer_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bssoccer_map, AS_PROGRAM, 16, suna16_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x203fff) AM_RAM // RAM
AM_RANGE(0x400000, 0x4001ff) AM_READWRITE(suna16_paletteram16_r, suna16_paletteram16_w) // Banked Palette
@@ -107,7 +107,7 @@ ADDRESS_MAP_END
Ultra Balloon
***************************************************************************/
-static ADDRESS_MAP_START( uballoon_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( uballoon_map, AS_PROGRAM, 16, suna16_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x800000, 0x803fff) AM_RAM // RAM
AM_RANGE(0x200000, 0x2001ff) AM_READWRITE(suna16_paletteram16_r, suna16_paletteram16_w) // Banked Palette
@@ -128,7 +128,7 @@ ADDRESS_MAP_END
Suna Quiz 6000 Academy
***************************************************************************/
-static ADDRESS_MAP_START( sunaq_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sunaq_map, AS_PROGRAM, 16, suna16_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1") AM_WRITE(suna16_soundlatch_w) // To Sound CPU
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("P2") AM_WRITE(suna16_flipscreen_w) // Flip Screen
@@ -169,7 +169,7 @@ static WRITE16_HANDLER( bestbest_prot_w )
}
-static ADDRESS_MAP_START( bestbest_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bestbest_map, AS_PROGRAM, 16, suna16_state )
AM_RANGE( 0x000000, 0x03ffff ) AM_ROM AM_MIRROR(0xc0000) // ROM
AM_RANGE( 0x200000, 0x2fffff ) AM_ROM AM_REGION("user1", 0) // ROM
AM_RANGE( 0x500000, 0x500001 ) AM_READ_PORT("P1") AM_WRITE(suna16_soundlatch_w) // To Sound CPU
@@ -200,7 +200,7 @@ ADDRESS_MAP_END
Back Street Soccer
***************************************************************************/
-static ADDRESS_MAP_START( bssoccer_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bssoccer_sound_map, AS_PROGRAM, 8, suna16_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM // RAM
AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w) // YM2151
@@ -213,7 +213,7 @@ ADDRESS_MAP_END
Ultra Balloon
***************************************************************************/
-static ADDRESS_MAP_START( uballoon_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( uballoon_sound_map, AS_PROGRAM, 8, suna16_state )
AM_RANGE(0x0000, 0xefff) AM_ROM // ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM // RAM
AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w) // YM2151
@@ -224,7 +224,7 @@ ADDRESS_MAP_END
Suna Quiz 6000 Academy
***************************************************************************/
-static ADDRESS_MAP_START( sunaq_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sunaq_sound_map, AS_PROGRAM, 8, suna16_state )
AM_RANGE(0x0000, 0xe82f) AM_ROM // ROM
AM_RANGE(0xe830, 0xf7ff) AM_RAM // RAM (writes to efxx, could be a program bug tho)
AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w) // YM2151
@@ -235,7 +235,7 @@ ADDRESS_MAP_END
Best Of Best
***************************************************************************/
-static ADDRESS_MAP_START( bestbest_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bestbest_sound_map, AS_PROGRAM, 8, suna16_state )
AM_RANGE( 0x0000, 0xbfff ) AM_ROM // ROM
AM_RANGE( 0xc000, 0xc001 ) AM_DEVWRITE( "ymsnd", ym3526_w ) //
AM_RANGE( 0xc002, 0xc003 ) AM_DEVWRITE( "aysnd", ay8910_address_data_w ) // AY8910
@@ -280,12 +280,12 @@ static WRITE8_HANDLER( bssoccer_pcm_2_bankswitch_w )
/* Memory maps: Yes, *no* RAM */
-static ADDRESS_MAP_START( bssoccer_pcm_1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bssoccer_pcm_1_map, AS_PROGRAM, 8, suna16_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM // ROM
AM_RANGE(0x1000, 0xffff) AM_ROMBANK("bank1") // Banked ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bssoccer_pcm_2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bssoccer_pcm_2_map, AS_PROGRAM, 8, suna16_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM // ROM
AM_RANGE(0x1000, 0xffff) AM_ROMBANK("bank2") // Banked ROM
ADDRESS_MAP_END
@@ -299,7 +299,7 @@ static WRITE8_DEVICE_HANDLER( bssoccer_DAC_w )
dac_data_w( device, (data & 0xf) * 0x11 );
}
-static ADDRESS_MAP_START( bssoccer_pcm_1_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( bssoccer_pcm_1_io_map, AS_IO, 8, suna16_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch2_r) // From The Sound Z80
AM_RANGE(0x00, 0x00) AM_DEVWRITE("dac1", bssoccer_DAC_w) // 2 x DAC
@@ -307,7 +307,7 @@ static ADDRESS_MAP_START( bssoccer_pcm_1_io_map, AS_IO, 8 )
AM_RANGE(0x03, 0x03) AM_WRITE(bssoccer_pcm_1_bankswitch_w) // Rom Bank
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bssoccer_pcm_2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( bssoccer_pcm_2_io_map, AS_IO, 8, suna16_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch3_r) // From The Sound Z80
AM_RANGE(0x00, 0x00) AM_DEVWRITE("dac3", bssoccer_DAC_w) // 2 x DAC
@@ -332,12 +332,12 @@ static WRITE8_HANDLER( uballoon_pcm_1_bankswitch_w )
/* Memory maps: Yes, *no* RAM */
-static ADDRESS_MAP_START( uballoon_pcm_1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( uballoon_pcm_1_map, AS_PROGRAM, 8, suna16_state )
AM_RANGE(0x0000, 0x03ff) AM_ROM // ROM
AM_RANGE(0x0400, 0xffff) AM_ROMBANK("bank1") // Banked ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( uballoon_pcm_1_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( uballoon_pcm_1_io_map, AS_IO, 8, suna16_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch2_r) // From The Sound Z80
AM_RANGE(0x00, 0x00) AM_DEVWRITE("dac1", bssoccer_DAC_w) // 2 x DAC
@@ -356,11 +356,11 @@ static MACHINE_RESET(uballoon)
Best Of Best
***************************************************************************/
-static ADDRESS_MAP_START( bestbest_pcm_1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bestbest_pcm_1_map, AS_PROGRAM, 8, suna16_state )
AM_RANGE(0x0000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bestbest_pcm_1_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( bestbest_pcm_1_iomap, AS_IO, 8, suna16_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ (soundlatch2_r ) // From The Sound Z80
AM_RANGE(0x00, 0x00) AM_MIRROR(0x02) AM_DEVWRITE("dac1", bssoccer_DAC_w) // 2 x DAC
diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c
index 6e42d2e51e2..7760387a98f 100644
--- a/src/mame/drivers/suna8.c
+++ b/src/mame/drivers/suna8.c
@@ -510,7 +510,7 @@ static WRITE8_HANDLER( hardhead_flipscreen_w )
coin_lockout_w ( space->machine(), 1, data & 0x10);
}
-static ADDRESS_MAP_START( hardhead_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hardhead_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
AM_RANGE(0xc000, 0xd7ff) AM_RAM // RAM
@@ -527,7 +527,7 @@ static ADDRESS_MAP_START( hardhead_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hardhead_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( hardhead_io_map, AS_IO, 8, suna8_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READNOP // ? IRQ Ack
ADDRESS_MAP_END
@@ -578,7 +578,7 @@ static WRITE8_HANDLER( sranger_prot_w )
space->write_byte(0xcd99,0xff);
}
-static ADDRESS_MAP_START( rranger_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rranger_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
AM_RANGE(0xc000, 0xc000) AM_READWRITE(watchdog_reset_r, soundlatch_w) // To Sound CPU
@@ -596,7 +596,7 @@ static ADDRESS_MAP_START( rranger_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rranger_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( rranger_io_map, AS_IO, 8, suna8_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READNOP // ? IRQ Ack
ADDRESS_MAP_END
@@ -662,7 +662,7 @@ static WRITE8_HANDLER( brickzn_rombank_w )
state->m_rombank = data;
}
-static ADDRESS_MAP_START( brickzn_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( brickzn_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
AM_RANGE(0xc040, 0xc040) AM_WRITE(brickzn_rombank_w ) // ROM Bank
@@ -766,7 +766,7 @@ static WRITE8_HANDLER( hardhea2_rambank_1_w )
}
-static ADDRESS_MAP_START( hardhea2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hardhea2_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("P1") // P1 (Inputs)
@@ -826,7 +826,7 @@ static WRITE8_HANDLER( starfigh_spritebank_w )
state->m_spritebank = state->m_spritebank_latch;
}
-static ADDRESS_MAP_START( starfigh_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( starfigh_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("P1") // P1 (Inputs)
@@ -961,7 +961,7 @@ static WRITE8_HANDLER( sparkman_en_trash_w )
}
#endif
-static ADDRESS_MAP_START( sparkman_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sparkman_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("P1") // P1 (Inputs)
@@ -995,7 +995,7 @@ ADDRESS_MAP_END
Hard Head
***************************************************************************/
-static ADDRESS_MAP_START( hardhead_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hardhead_sound_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0xa002, 0xa003) AM_DEVWRITE("aysnd", ay8910_address_data_w )
@@ -1006,7 +1006,7 @@ static ADDRESS_MAP_START( hardhead_sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hardhead_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( hardhead_sound_io_map, AS_IO, 8, suna8_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READNOP // ? IRQ Ack
ADDRESS_MAP_END
@@ -1016,7 +1016,7 @@ ADDRESS_MAP_END
Rough Ranger
***************************************************************************/
-static ADDRESS_MAP_START( rranger_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rranger_sound_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ym1", ym2203_w ) // Samples + Music
AM_RANGE(0xa002, 0xa003) AM_DEVWRITE("ym2", ym2203_w ) // Music + FX
@@ -1030,7 +1030,7 @@ ADDRESS_MAP_END
Brick Zone
***************************************************************************/
-static ADDRESS_MAP_START( brickzn_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( brickzn_sound_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM // ROM
AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ymsnd", ym3812_w )
AM_RANGE(0xc002, 0xc003) AM_DEVWRITE("aysnd", ay8910_address_data_w )
@@ -1042,7 +1042,7 @@ ADDRESS_MAP_END
/* PCM Z80 , 4 DACs (4 bits per sample), NO RAM !! */
-static ADDRESS_MAP_START( brickzn_pcm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( brickzn_pcm_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0xffff) AM_ROM // ROM
ADDRESS_MAP_END
@@ -1054,7 +1054,7 @@ static WRITE8_HANDLER( brickzn_pcm_w )
}
-static ADDRESS_MAP_START( brickzn_pcm_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( brickzn_pcm_io_map, AS_IO, 8, suna8_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch2_r ) // From Sound CPU
AM_RANGE(0x00, 0x03) AM_WRITE(brickzn_pcm_w ) // 4 x DAC
diff --git a/src/mame/drivers/supbtime.c b/src/mame/drivers/supbtime.c
index c551e8abe93..beda7c4e118 100644
--- a/src/mame/drivers/supbtime.c
+++ b/src/mame/drivers/supbtime.c
@@ -59,7 +59,7 @@ static WRITE16_HANDLER( sound_w )
/******************************************************************************/
-static ADDRESS_MAP_START( supbtime_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( supbtime_map, AS_PROGRAM, 16, supbtime_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x104000, 0x11ffff) AM_WRITENOP /* Nothing there */
@@ -76,7 +76,7 @@ static ADDRESS_MAP_START( supbtime_map, AS_PROGRAM, 16 )
AM_RANGE(0x342000, 0x3427ff) AM_RAM AM_BASE_MEMBER(supbtime_state, m_pf2_rowscroll)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( chinatwn_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( chinatwn_map, AS_PROGRAM, 16, supbtime_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_WRITE(sound_w)
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_BASE_SIZE_MEMBER(supbtime_state, m_spriteram, m_spriteram_size)
@@ -94,7 +94,7 @@ ADDRESS_MAP_END
/******************************************************************************/
/* Physical memory map (21 bits) */
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, supbtime_state )
ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_NOP /* YM2203 - this board doesn't have one */
diff --git a/src/mame/drivers/supdrapo.c b/src/mame/drivers/supdrapo.c
index 753392287e8..f8e093b8fa5 100644
--- a/src/mame/drivers/supdrapo.c
+++ b/src/mame/drivers/supdrapo.c
@@ -241,7 +241,7 @@ static MACHINE_RESET( supdrapo )
Memory Map
**********************************************************************/
-static ADDRESS_MAP_START( sdpoker_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sdpoker_mem, AS_PROGRAM, 8, supdrapo_state )
AM_RANGE(0x0000, 0x4fff) AM_ROM
AM_RANGE(0x5000, 0x50ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x57ff, 0x57ff) AM_RAM AM_SHARE("share1")
diff --git a/src/mame/drivers/superchs.c b/src/mame/drivers/superchs.c
index 2f7a0e1d836..f7d2f0b23b2 100644
--- a/src/mame/drivers/superchs.c
+++ b/src/mame/drivers/superchs.c
@@ -226,7 +226,7 @@ static WRITE32_HANDLER( superchs_stick_w )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( superchs_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( superchs_map, AS_PROGRAM, 32, superchs_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_BASE_MEMBER(superchs_state, m_ram)
AM_RANGE(0x140000, 0x141fff) AM_RAM AM_BASE_SIZE_MEMBER(superchs_state, m_spriteram, m_spriteram_size)
@@ -240,7 +240,7 @@ static ADDRESS_MAP_START( superchs_map, AS_PROGRAM, 32 )
AM_RANGE(0x340000, 0x340003) AM_READWRITE(superchs_stick_r, superchs_stick_w) /* stick int request */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( superchs_cpub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( superchs_cpub_map, AS_PROGRAM, 16, superchs_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
AM_RANGE(0x600000, 0x60ffff) AM_DEVWRITE("tc0480scp", tc0480scp_word_w) /* Only written upon errors */
diff --git a/src/mame/drivers/superdq.c b/src/mame/drivers/superdq.c
index 5d3909d8e4d..854d187c230 100644
--- a/src/mame/drivers/superdq.c
+++ b/src/mame/drivers/superdq.c
@@ -199,13 +199,13 @@ static WRITE8_HANDLER( superdq_ld_w )
*
*************************************/
-static ADDRESS_MAP_START( superdq_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( superdq_map, AS_PROGRAM, 8, superdq_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x5c00, 0x5fff) AM_RAM_WRITE(superdq_videoram_w) AM_BASE_MEMBER(superdq_state,m_videoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( superdq_io, AS_IO, 8 )
+static ADDRESS_MAP_START( superdq_io, AS_IO, 8, superdq_state )
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")
diff --git a/src/mame/drivers/superqix.c b/src/mame/drivers/superqix.c
index e507509a14a..007c9771628 100644
--- a/src/mame/drivers/superqix.c
+++ b/src/mame/drivers/superqix.c
@@ -576,7 +576,7 @@ static MACHINE_START( pbillian )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, superqix_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xe000, 0xe0ff) AM_RAM AM_BASE_SIZE_MEMBER(superqix_state, m_spriteram, m_spriteram_size)
@@ -585,7 +585,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pbillian_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( pbillian_port_map, AS_IO, 8, superqix_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM_WRITE(paletteram_BBGGRRII_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x0401, 0x0401) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x0402, 0x0403) AM_DEVWRITE("aysnd", ay8910_data_address_w)
@@ -598,7 +598,7 @@ static ADDRESS_MAP_START( pbillian_port_map, AS_IO, 8 )
AM_RANGE(0x041b, 0x041b) AM_READNOP // input related? but probably not used
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hotsmash_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( hotsmash_port_map, AS_IO, 8, superqix_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM_WRITE(paletteram_BBGGRRII_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x0401, 0x0401) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x0402, 0x0403) AM_DEVWRITE("aysnd", ay8910_data_address_w)
@@ -611,7 +611,7 @@ static ADDRESS_MAP_START( hotsmash_port_map, AS_IO, 8 )
AM_RANGE(0x041b, 0x041b) AM_READNOP // input related? but probably not used
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sqix_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sqix_port_map, AS_IO, 8, superqix_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM_WRITE(paletteram_BBGGRRII_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x0401, 0x0401) AM_DEVREAD("ay1", ay8910_r)
AM_RANGE(0x0402, 0x0403) AM_DEVWRITE("ay1", ay8910_data_address_w)
@@ -624,7 +624,7 @@ static ADDRESS_MAP_START( sqix_port_map, AS_IO, 8 )
AM_RANGE(0x8800, 0xf7ff) AM_RAM_WRITE(superqix_bitmapram2_w) AM_BASE_MEMBER(superqix_state, m_bitmapram2)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bootleg_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( bootleg_port_map, AS_IO, 8, superqix_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM_WRITE(paletteram_BBGGRRII_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x0401, 0x0401) AM_DEVREAD("ay1", ay8910_r)
AM_RANGE(0x0402, 0x0403) AM_DEVWRITE("ay1", ay8910_data_address_w)
@@ -638,7 +638,7 @@ static ADDRESS_MAP_START( bootleg_port_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m68705_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m68705_map, AS_PROGRAM, 8, superqix_state )
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)
@@ -650,12 +650,12 @@ ADDRESS_MAP_END
/* I8751 memory handlers */
-static ADDRESS_MAP_START( bootleg_mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( bootleg_mcu_io_map, AS_IO, 8, superqix_state )
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITE(bootleg_mcu_p1_w)
AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE(bootleg_mcu_p3_r, mcu_p3_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sqixu_mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sqixu_mcu_io_map, AS_IO, 8, superqix_state )
AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P0) AM_READ(sqixu_mcu_p0_r)
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_READ_PORT("DSW1")
AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_WRITE(sqixu_mcu_p2_w)
diff --git a/src/mame/drivers/supertnk.c b/src/mame/drivers/supertnk.c
index 9f4bd40ec18..a277c16cad4 100644
--- a/src/mame/drivers/supertnk.c
+++ b/src/mame/drivers/supertnk.c
@@ -300,7 +300,7 @@ static MACHINE_RESET( supertnk )
*
*************************************/
-static ADDRESS_MAP_START( supertnk_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( supertnk_map, AS_PROGRAM, 8, supertnk_state )
AM_RANGE(0x0000, 0x07ff) AM_ROM
AM_RANGE(0x0800, 0x17ff) AM_ROMBANK("bank1")
AM_RANGE(0x1800, 0x1bff) AM_RAM
@@ -320,7 +320,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( supertnk_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( supertnk_io_map, AS_IO, 8, supertnk_state )
AM_RANGE(0x0000, 0x0000) AM_WRITENOP
AM_RANGE(0x0400, 0x0400) AM_WRITE(supertnk_bitplane_select_0_w)
AM_RANGE(0x0401, 0x0401) AM_WRITE(supertnk_bitplane_select_1_w)
diff --git a/src/mame/drivers/superwng.c b/src/mame/drivers/superwng.c
index f6c44f89ed7..5a6f7e81c5b 100644
--- a/src/mame/drivers/superwng.c
+++ b/src/mame/drivers/superwng.c
@@ -284,7 +284,7 @@ static WRITE8_HANDLER(superwng_cointcnt2_w)
coin_counter_w(space->machine(), 1, data);
}
-static ADDRESS_MAP_START( superwng_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( superwng_map, AS_PROGRAM, 8, superwng_state )
AM_RANGE(0x0000, 0x6fff) AM_ROM
AM_RANGE(0x7000, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(superwng_bg_vram_w) AM_BASE_MEMBER(superwng_state, m_videoram_bg)
@@ -308,7 +308,7 @@ static ADDRESS_MAP_START( superwng_map, AS_PROGRAM, 8 )
AM_RANGE(0xa187, 0xa187) AM_WRITENOP //unknown , always(?) 0
ADDRESS_MAP_END
-static ADDRESS_MAP_START( superwng_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( superwng_sound_map, AS_PROGRAM, 8, superwng_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x3000, 0x3000) AM_WRITE(superwng_sound_nmi_clear_w)
diff --git a/src/mame/drivers/suprgolf.c b/src/mame/drivers/suprgolf.c
index 8551733c715..7e3edd1a94a 100644
--- a/src/mame/drivers/suprgolf.c
+++ b/src/mame/drivers/suprgolf.c
@@ -299,7 +299,7 @@ static READ8_DEVICE_HANDLER( p2_r )
return (input_port_read(device->machine(), "P2") & 0xf0) | ((input_port_read(device->machine(), "P2_ANALOG") & 0xf));
}
-static ADDRESS_MAP_START( suprgolf_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( suprgolf_map, AS_PROGRAM, 8, suprgolf_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0x4000) AM_WRITE( rom2_bank_select_w )
@@ -310,7 +310,7 @@ static ADDRESS_MAP_START( suprgolf_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, suprgolf_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_MODERN("ppi8255_0", i8255_device, read, write)
AM_RANGE(0x04, 0x07) AM_DEVREADWRITE_MODERN("ppi8255_1", i8255_device, read, write)
diff --git a/src/mame/drivers/suprloco.c b/src/mame/drivers/suprloco.c
index 5dd1c8ef060..9a08f344092 100644
--- a/src/mame/drivers/suprloco.c
+++ b/src/mame/drivers/suprloco.c
@@ -25,7 +25,7 @@ static WRITE8_HANDLER( suprloco_soundport_w )
device_spin_until_time(&space->device(), attotime::from_usec(50));
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, suprloco_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc1ff) AM_RAM AM_BASE_SIZE_MEMBER(suprloco_state, m_spriteram, m_spriteram_size)
@@ -42,7 +42,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, suprloco_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa003) AM_DEVWRITE("sn1", sn76496_w)
diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c
index 60361e9ec1b..2a0129d34b2 100644
--- a/src/mame/drivers/suprnova.c
+++ b/src/mame/drivers/suprnova.c
@@ -684,7 +684,7 @@ static WRITE32_HANDLER( skns_v3t_w )
btiles[offset*4+3] = (data & 0x000000ff) >> 0;
}
-static ADDRESS_MAP_START( skns_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( skns_map, AS_PROGRAM, 32, skns_state )
AM_RANGE(0x00000000, 0x0007ffff) AM_ROM /* BIOS ROM */
AM_RANGE(0x00400000, 0x0040000f) AM_WRITE(skns_io_w) /* I/O Write */
AM_RANGE(0x00400000, 0x00400003) AM_READ_PORT("400000")
diff --git a/src/mame/drivers/suprridr.c b/src/mame/drivers/suprridr.c
index e52e920e8c3..85576a8d0d4 100644
--- a/src/mame/drivers/suprridr.c
+++ b/src/mame/drivers/suprridr.c
@@ -163,7 +163,7 @@ static WRITE8_HANDLER( coin_lock_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, suprridr_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(suprridr_bgram_w) AM_BASE_MEMBER(suprridr_state, m_bgram)
@@ -185,7 +185,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, AS_IO, 8, suprridr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(watchdog_reset_r)
ADDRESS_MAP_END
@@ -198,13 +198,13 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, suprridr_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x3800, 0x3bff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, suprridr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(sound_irq_ack_w)
AM_RANGE(0x8c, 0x8d) AM_DEVWRITE("ay1", ay8910_address_data_w)
diff --git a/src/mame/drivers/suprslam.c b/src/mame/drivers/suprslam.c
index 99faeb2b966..e1b5c50f2ab 100644
--- a/src/mame/drivers/suprslam.c
+++ b/src/mame/drivers/suprslam.c
@@ -126,7 +126,7 @@ static WRITE8_HANDLER( suprslam_sh_bankswitch_w )
/*** MEMORY MAPS *************************************************************/
-static ADDRESS_MAP_START( suprslam_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( suprslam_map, AS_PROGRAM, 16, suprslam_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0xfb0000, 0xfb1fff) AM_RAM AM_BASE_MEMBER(suprslam_state, m_spriteram)
AM_RANGE(0xfc0000, 0xfcffff) AM_RAM AM_BASE_MEMBER(suprslam_state, m_sp_videoram)
@@ -148,13 +148,13 @@ static ADDRESS_MAP_START( suprslam_map, AS_PROGRAM, 16 )
AM_RANGE(0xfff00c, 0xfff00d) AM_WRITEONLY AM_BASE_MEMBER(suprslam_state, m_spr_ctrl)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, suprslam_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, suprslam_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(suprslam_sh_bankswitch_w)
AM_RANGE(0x04, 0x04) AM_READWRITE(soundlatch_r, pending_command_clear_w)
diff --git a/src/mame/drivers/surpratk.c b/src/mame/drivers/surpratk.c
index c62d7dbd466..20c2edc3fbb 100644
--- a/src/mame/drivers/surpratk.c
+++ b/src/mame/drivers/surpratk.c
@@ -90,7 +90,7 @@ static WRITE8_HANDLER( surpratk_5fc0_w )
/********************************************/
-static ADDRESS_MAP_START( surpratk_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( surpratk_map, AS_PROGRAM, 8, surpratk_state )
AM_RANGE(0x0000, 0x07ff) AM_READWRITE(bankedram_r, bankedram_w) AM_BASE_MEMBER(surpratk_state, m_ram)
AM_RANGE(0x0800, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") /* banked ROM */
diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c
index f899bb5b9fb..55749a7239e 100644
--- a/src/mame/drivers/system1.c
+++ b/src/mame/drivers/system1.c
@@ -726,7 +726,7 @@ static WRITE8_HANDLER( nobb_outport24_w )
*************************************/
/* main memory map */
-static ADDRESS_MAP_START( system1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( system1_map, AS_PROGRAM, 8, system1_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_BASE_MEMBER(system1_state, m_ram)
@@ -740,7 +740,7 @@ static ADDRESS_MAP_START( system1_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* same as normal System 1 except address map is shuffled (RAM/collision are swapped) */
-static ADDRESS_MAP_START( nobo_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nobo_map, AS_PROGRAM, 8, system1_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc3ff) AM_READWRITE(system1_mixer_collision_r, system1_mixer_collision_w)
@@ -754,7 +754,7 @@ static ADDRESS_MAP_START( nobo_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* I/O map for systems with an 8255 PPI */
-static ADDRESS_MAP_START( system1_ppi_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( system1_ppi_io_map, AS_IO, 8, system1_state )
ADDRESS_MAP_GLOBAL_MASK(0x1f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x03) AM_READ_PORT("P1")
AM_RANGE(0x04, 0x04) AM_MIRROR(0x03) AM_READ_PORT("P2")
@@ -766,7 +766,7 @@ static ADDRESS_MAP_START( system1_ppi_io_map, AS_IO, 8 )
ADDRESS_MAP_END
/* I/O map for systems with a Z80 PIO chip */
-static ADDRESS_MAP_START( system1_pio_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( system1_pio_io_map, AS_IO, 8, system1_state )
ADDRESS_MAP_GLOBAL_MASK(0x1f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x03) AM_READ_PORT("P1")
AM_RANGE(0x04, 0x04) AM_MIRROR(0x03) AM_READ_PORT("P2")
@@ -785,7 +785,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, system1_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x1800) AM_RAM
AM_RANGE(0xa000, 0xa003) AM_MIRROR(0x1fff) AM_DEVWRITE("sn1", sn76496_w)
@@ -801,14 +801,14 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, system1_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xffff) AM_READWRITE(mcu_io_r, mcu_io_w)
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITE(mcu_control_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nob_mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( nob_mcu_io_map, AS_IO, 8, system1_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P0) AM_RAM AM_BASE_MEMBER(system1_state, m_nob_mcu_latch)
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITEONLY AM_BASE_MEMBER(system1_state, m_nob_mcu_status)
diff --git a/src/mame/drivers/system16.c b/src/mame/drivers/system16.c
index 95f77917a78..c591b2845c5 100644
--- a/src/mame/drivers/system16.c
+++ b/src/mame/drivers/system16.c
@@ -120,7 +120,7 @@ static WRITE16_HANDLER( sound_command_nmi_w )
}
-static ADDRESS_MAP_START( shinobib_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( shinobib_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM // tilemap ram on the original, used as a buffer on the bootlegs
AM_RANGE(0x410000, 0x410fff) AM_RAM AM_BASE_MEMBER(segas1x_bootleg_state, m_textram)
@@ -176,7 +176,7 @@ static WRITE16_HANDLER( sys16_coinctrl_w )
}
}
-static ADDRESS_MAP_START( passshtb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( passshtb_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x400000, 0x407fff) AM_RAM // tilemap ram on original, buffer on bootleg
@@ -260,7 +260,7 @@ static READ16_HANDLER( passht4b_io3_r )
return state->m_passht4b_io3_val;
}
-static ADDRESS_MAP_START( passht4b_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( passht4b_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x400000, 0x407fff) AM_RAM // tilemap ram on original, buffer on bootleg
AM_RANGE(0x409000, 0x40afff) AM_RAM AM_BASE_MEMBER(segas1x_bootleg_state, m_bg0_tileram)
@@ -309,7 +309,7 @@ static WRITE16_HANDLER( sys16_tilebank_w )
}
}
-static ADDRESS_MAP_START( wb3bbl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( wb3bbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE(sys16_tilebank_w)
AM_RANGE(0x400000, 0x407fff) AM_RAM // tilemap ram on the original, used as a buffer on the bootlegs
@@ -429,7 +429,7 @@ static WRITE8_HANDLER( tturfbl_soundbank_w )
}
}
-static ADDRESS_MAP_START(tturfbl_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START(tturfbl_sound_map, AS_PROGRAM, 8, segas1x_bootleg_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_READ(tturfbl_soundbank_r)
AM_RANGE(0xe000, 0xe000) AM_WRITE(tturfbl_soundbank_w)
@@ -438,7 +438,7 @@ static ADDRESS_MAP_START(tturfbl_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tturfbl_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( tturfbl_sound_io_map, AS_IO, 8, segas1x_bootleg_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x40, 0x40) AM_WRITENOP
@@ -447,13 +447,13 @@ ADDRESS_MAP_END
/*******************************************************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, segas1x_bootleg_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_r)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, segas1x_bootleg_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r)
@@ -461,7 +461,7 @@ ADDRESS_MAP_END
// 7759
-static ADDRESS_MAP_START( sound_7759_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_7759_map, AS_PROGRAM, 8, segas1x_bootleg_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xdfff) AM_ROMBANK("bank1")
AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_r)
@@ -479,7 +479,7 @@ static WRITE8_DEVICE_HANDLER( upd7759_bank_w ) //*
}
-static ADDRESS_MAP_START( sound_7759_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_7759_io_map, AS_IO, 8, segas1x_bootleg_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x40, 0x40) AM_DEVWRITE("7759", upd7759_bank_w)
@@ -516,7 +516,7 @@ static void set_bg_page( running_machine &machine, int data )
}
#ifdef UNUSED_CODE
-static ADDRESS_MAP_START( bayroute_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bayroute_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x100000, 0x100003) AM_WRITENOP // tilebank control?
AM_RANGE(0x500000, 0x503fff) AM_RAM // work ram
@@ -541,7 +541,7 @@ ADDRESS_MAP_END
Flash Point (Datsu bootlegs = fpointbl, fpointbj)
Has sound latch at $E000 instead of I/O ports $C0-FF
*/
-static ADDRESS_MAP_START( fpointbl_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fpointbl_sound_map, AS_PROGRAM, 8, segas1x_bootleg_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
AM_RANGE(0xf800, 0xffff) AM_RAM
@@ -611,7 +611,7 @@ static WRITE16_HANDLER( s16bl_bgscrolly_w )
}
-static ADDRESS_MAP_START( goldnaxeb1_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( goldnaxeb1_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM_WRITE(sys16_tileram_w) AM_BASE_MEMBER(segas1x_bootleg_state, m_tileram)
AM_RANGE(0x110000, 0x110fff) AM_RAM_WRITE(sys16_textram_w) AM_BASE_MEMBER(segas1x_bootleg_state, m_textram)
@@ -636,7 +636,7 @@ static ADDRESS_MAP_START( goldnaxeb1_map, AS_PROGRAM, 16 )
AM_RANGE(0xffc000, 0xffffff) AM_RAM // work ram
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bayrouteb1_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bayrouteb1_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x500000, 0x503fff) AM_RAM // work ram
AM_RANGE(0x600000, 0x600fff) AM_RAM AM_BASE(&segaic16_spriteram_0)
@@ -709,7 +709,7 @@ static WRITE16_HANDLER( datsu_page3_w )
datsu_set_pages(space->machine());
}
-static ADDRESS_MAP_START( bayrouteb2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bayrouteb2_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x500000, 0x503fff) AM_RAM // work ram
AM_RANGE(0x600000, 0x600fff) AM_RAM AM_BASE(&segaic16_spriteram_0)
@@ -733,7 +733,7 @@ static ADDRESS_MAP_START( bayrouteb2_map, AS_PROGRAM, 16 )
AM_RANGE(0x901006, 0x901007) AM_READ_PORT("P2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dduxbl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dduxbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE(sys16_tilebank_w)
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(sys16_tileram_w) AM_BASE_MEMBER(segas1x_bootleg_state, m_tileram)
@@ -832,7 +832,7 @@ static WRITE16_HANDLER( goldnaxeb2_bgpage_w )
set_bg_page(space->machine(), page ^ 0xffff);
}
-static ADDRESS_MAP_START( goldnaxeb2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( goldnaxeb2_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM_WRITE(sys16_tileram_w) AM_BASE_MEMBER(segas1x_bootleg_state, m_tileram)
AM_RANGE(0x110000, 0x110fff) AM_RAM_WRITE(sys16_textram_w) AM_BASE_MEMBER(segas1x_bootleg_state, m_textram)
@@ -860,7 +860,7 @@ ADDRESS_MAP_END
/***************************************************************************/
-static ADDRESS_MAP_START( fpointbl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( fpointbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(sys16_tileram_w) AM_BASE_MEMBER(segas1x_bootleg_state, m_tileram)
@@ -901,7 +901,7 @@ static WRITE16_HANDLER( eswat_tilebank0_w )
}
}
-static ADDRESS_MAP_START( eswatbl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( eswatbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x3e2000, 0x3e2001) AM_WRITE(eswat_tilebank0_w) // external tile bank ( > 0x4000 tiles )
@@ -930,7 +930,7 @@ ADDRESS_MAP_END
/***************************************************************************/
-static ADDRESS_MAP_START( tetrisbl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tetrisbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(sys16_tileram_w) AM_BASE_MEMBER(segas1x_bootleg_state, m_tileram)
AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE(sys16_textram_w) AM_BASE_MEMBER(segas1x_bootleg_state, m_textram)
@@ -966,7 +966,7 @@ static READ16_HANDLER( beautyb_unkx_r )
return state->m_beautyb_unkx;
}
-static ADDRESS_MAP_START( beautyb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( beautyb_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM AM_WRITENOP
AM_RANGE(0x010000, 0x03ffff) AM_WRITENOP
@@ -997,7 +997,7 @@ ADDRESS_MAP_END
/***************************************************************************/
-static ADDRESS_MAP_START( tturfbl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tturfbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x200000, 0x203fff) AM_RAM // work ram
AM_RANGE(0x300000, 0x300fff) AM_RAM AM_BASE(&segaic16_spriteram_0)
@@ -1058,7 +1058,7 @@ static READ8_HANDLER( system18_bank_r )
return 0xff;
}
-static ADDRESS_MAP_START( sound_18_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_18_map, AS_PROGRAM, 8, segas1x_bootleg_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xbfff) AM_READ(system18_bank_r)
/**** D/A register ****/
@@ -1083,7 +1083,7 @@ static WRITE8_HANDLER( sys18_soundbank_w )
state->m_sound_bank = NULL;
}
-static ADDRESS_MAP_START( sound_18_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_18_io_map, AS_IO, 8, segas1x_bootleg_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x83) AM_DEVREADWRITE("3438.0", ym3438_r, ym3438_w)
AM_RANGE(0x90, 0x93) AM_DEVREADWRITE("3438.1", ym3438_r, ym3438_w)
@@ -1145,7 +1145,7 @@ static WRITE16_HANDLER( sound_command_irq_w )
}
}
-static ADDRESS_MAP_START( shdancbl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( shdancbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(sys16_tileram_w) AM_BASE_MEMBER(segas1x_bootleg_state, m_tileram)
AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE(sys16_textram_w) AM_BASE_MEMBER(segas1x_bootleg_state, m_textram)
@@ -1262,7 +1262,7 @@ static WRITE8_HANDLER( shdancbl_bankctrl_w )
}
}
-static ADDRESS_MAP_START(shdancbl_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START(shdancbl_sound_map, AS_PROGRAM, 8, segas1x_bootleg_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_READ(shdancbl_soundbank_r)
AM_RANGE(0xc000, 0xc00f) AM_WRITENOP
@@ -1276,7 +1276,7 @@ static ADDRESS_MAP_START(shdancbl_sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shdancbl_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( shdancbl_sound_io_map, AS_IO, 8, segas1x_bootleg_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xa0, 0xbf) AM_WRITENOP
AM_RANGE(0xc0, 0xdf) AM_READNOP
@@ -1289,7 +1289,7 @@ ADDRESS_MAP_END
***************************************************************************/
-static ADDRESS_MAP_START( mwalkbl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mwalkbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(sys16_tileram_w) AM_BASE_MEMBER(segas1x_bootleg_state, m_tileram)
AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE(sys16_textram_w) AM_BASE_MEMBER(segas1x_bootleg_state, m_textram)
@@ -1331,7 +1331,7 @@ ADDRESS_MAP_END
***************************************************************************/
/* bootleg doesn't have real vdp or i/o */
-static ADDRESS_MAP_START( astormbl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( astormbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM_WRITE(sys16_tileram_w) AM_BASE_MEMBER(segas1x_bootleg_state, m_tileram)
AM_RANGE(0x110000, 0x110fff) AM_RAM_WRITE(sys16_textram_w) AM_BASE_MEMBER(segas1x_bootleg_state, m_textram)
diff --git a/src/mame/drivers/tagteam.c b/src/mame/drivers/tagteam.c
index 8fd2fe572c3..9010d1e8467 100644
--- a/src/mame/drivers/tagteam.c
+++ b/src/mame/drivers/tagteam.c
@@ -41,7 +41,7 @@ static WRITE8_HANDLER( irq_clear_w )
cputag_set_input_line(space->machine(), "maincpu", M6502_IRQ_LINE, CLEAR_LINE);
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tagteam_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x2000, 0x2000) AM_READ_PORT("P2") AM_WRITE(tagteam_flipscreen_w)
AM_RANGE(0x2001, 0x2001) AM_READ_PORT("P1") AM_WRITE(tagteam_control_w)
@@ -63,7 +63,7 @@ static WRITE8_HANDLER( sound_nmi_mask_w )
}
/* Same as Syusse Oozumou */
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, tagteam_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("ay1", ay8910_data_address_w)
AM_RANGE(0x2002, 0x2003) AM_DEVWRITE("ay2", ay8910_data_address_w)
diff --git a/src/mame/drivers/tail2nos.c b/src/mame/drivers/tail2nos.c
index baa2b31c89a..396e0148871 100644
--- a/src/mame/drivers/tail2nos.c
+++ b/src/mame/drivers/tail2nos.c
@@ -33,7 +33,7 @@ static WRITE8_DEVICE_HANDLER( sound_bankswitch_w )
memory_set_bank(device->machine(), "bank3", data & 0x01);
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tail2nos_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x200000, 0x27ffff) AM_ROMBANK("bank1") /* extra ROM */
AM_RANGE(0x2c0000, 0x2dffff) AM_ROMBANK("bank2")
@@ -50,13 +50,13 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, tail2nos_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank3")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_port_map, AS_IO, 8, tail2nos_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x07, 0x07) AM_READ(soundlatch_r) AM_WRITENOP /* the write is a clear pending command */
AM_RANGE(0x08, 0x0b) AM_DEVWRITE("ymsnd", ym2608_w)
diff --git a/src/mame/drivers/taito_b.c b/src/mame/drivers/taito_b.c
index e45298686f4..5a6d02c3e3c 100644
--- a/src/mame/drivers/taito_b.c
+++ b/src/mame/drivers/taito_b.c
@@ -520,7 +520,7 @@ static WRITE16_HANDLER( realpunc_output_w )
AM_RANGE(ADDR+0x40000, ADDR+0x7ffff) AM_READWRITE(tc0180vcu_framebuffer_word_r, tc0180vcu_framebuffer_word_w)
-static ADDRESS_MAP_START( rastsag2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rastsag2_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x600000, 0x607fff) AM_RAM /* Main RAM */ /*ashura up to 603fff only*/
@@ -531,7 +531,7 @@ static ADDRESS_MAP_START( rastsag2_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( crimec_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( crimec_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0xff00)
TC0180VCU_MEMRW( 0x400000 )
@@ -542,7 +542,7 @@ static ADDRESS_MAP_START( crimec_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tetrist_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tetrist_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x200001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -552,7 +552,7 @@ static ADDRESS_MAP_START( tetrist_map, AS_PROGRAM, 16 )
AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tetrista_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tetrista_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
TC0180VCU_MEMRW( 0x400000 )
@@ -564,7 +564,7 @@ static ADDRESS_MAP_START( tetrista_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hitice_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hitice_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
TC0180VCU_MEMRW( 0x400000 )
AM_RANGE(0x600000, 0x60000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0xff00)
@@ -580,7 +580,7 @@ static ADDRESS_MAP_START( hitice_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rambo3_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rambo3_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x200001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -599,7 +599,7 @@ static ADDRESS_MAP_START( rambo3_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pbobble_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pbobble_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
TC0180VCU_MEMRW( 0x400000 )
AM_RANGE(0x500000, 0x50000f) AM_READ(pbobble_input_bypass_r) AM_DEVWRITE("tc0640fio", tc0640fio_halfword_byteswap_w)
@@ -615,7 +615,7 @@ static ADDRESS_MAP_START( pbobble_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
/* identical to pbobble, above??? */
-static ADDRESS_MAP_START( spacedx_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( spacedx_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
TC0180VCU_MEMRW( 0x400000 )
AM_RANGE(0x500000, 0x50000f) AM_READ(pbobble_input_bypass_r) AM_DEVWRITE("tc0640fio", tc0640fio_halfword_byteswap_w)
@@ -630,7 +630,7 @@ static ADDRESS_MAP_START( spacedx_map, AS_PROGRAM, 16 )
AM_RANGE(0x900000, 0x90ffff) AM_RAM /* Main RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spacedxo_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( spacedxo_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x100002, 0x100003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -645,7 +645,7 @@ static ADDRESS_MAP_START( spacedxo_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( qzshowby_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( qzshowby_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x20000f) AM_READ(pbobble_input_bypass_r) AM_DEVWRITE("tc0640fio", tc0640fio_halfword_byteswap_w)
AM_RANGE(0x200024, 0x200025) AM_READ_PORT("P3_P4_A") /* player 3,4 start */
@@ -661,7 +661,7 @@ static ADDRESS_MAP_START( qzshowby_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( viofight_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( viofight_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x200001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -672,7 +672,7 @@ static ADDRESS_MAP_START( viofight_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( masterw_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( masterw_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x203fff) AM_RAM /* Main RAM */
TC0180VCU_MEMRW( 0x400000 )
@@ -684,7 +684,7 @@ static ADDRESS_MAP_START( masterw_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( silentd_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( silentd_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x100002, 0x100003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -702,7 +702,7 @@ static ADDRESS_MAP_START( silentd_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( selfeena_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( selfeena_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM /* Main RAM */
TC0180VCU_MEMRW( 0x200000 )
@@ -714,7 +714,7 @@ static ADDRESS_MAP_START( selfeena_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sbm_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sbm_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* Main RAM */
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
@@ -724,7 +724,7 @@ static ADDRESS_MAP_START( sbm_map, AS_PROGRAM, 16 )
TC0180VCU_MEMRW( 0x900000 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( realpunc_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( realpunc_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x110000, 0x12ffff) AM_RAM
@@ -742,7 +742,7 @@ static ADDRESS_MAP_START( realpunc_map, AS_PROGRAM, 16 )
AM_RANGE(0x320002, 0x320003) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_comm_r, 0xff00)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( masterw_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( masterw_sound_map, AS_PROGRAM, 8, taitob_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x8fff) AM_RAM
@@ -751,7 +751,7 @@ static ADDRESS_MAP_START( masterw_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xa001, 0xa001) AM_DEVREADWRITE("tc0140syt", tc0140syt_slave_comm_r, tc0140syt_slave_comm_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taitob_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_RAM
@@ -766,7 +766,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf200, 0xf200) AM_WRITE(bankswitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( viofight_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( viofight_sound_map, AS_PROGRAM, 8, taitob_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x8fff) AM_RAM
diff --git a/src/mame/drivers/taito_f2.c b/src/mame/drivers/taito_f2.c
index b253a5d2f46..5ead70e03b9 100644
--- a/src/mame/drivers/taito_f2.c
+++ b/src/mame/drivers/taito_f2.c
@@ -693,7 +693,7 @@ static READ16_HANDLER( cchip2_word_r )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( finalb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( finalb_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x200007) AM_DEVREADWRITE("tc0110pcr", tc0110pcr_word_r, tc0110pcr_word_w) /* palette */
@@ -707,7 +707,7 @@ static ADDRESS_MAP_START( finalb_map, AS_PROGRAM, 16 )
AM_RANGE(0xb00002, 0xb00003) AM_WRITENOP /* ?? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dondokod_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dondokod_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
@@ -722,7 +722,7 @@ static ADDRESS_MAP_START( dondokod_map, AS_PROGRAM, 16 )
AM_RANGE(0xb00000, 0xb0001f) AM_DEVWRITE8("tc0360pri", tc0360pri_w, 0x00ff) /* ?? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( megab_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( megab_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_DEVWRITE8("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x100002, 0x100003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -737,7 +737,7 @@ static ADDRESS_MAP_START( megab_map, AS_PROGRAM, 16 )
AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_BASE_SIZE_MEMBER(taitof2_state, m_spriteram, m_spriteram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( thundfox_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( thundfox_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0x00ff)
@@ -752,7 +752,7 @@ static ADDRESS_MAP_START( thundfox_map, AS_PROGRAM, 16 )
AM_RANGE(0x800000, 0x80001f) AM_DEVWRITE8("tc0360pri", tc0360pri_w, 0xff00)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cameltry_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cameltry_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
@@ -768,7 +768,7 @@ static ADDRESS_MAP_START( cameltry_map, AS_PROGRAM, 16 )
AM_RANGE(0xd00000, 0xd0001f) AM_DEVWRITE8("tc0360pri", tc0360pri_w, 0x00ff) /* ?? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( qtorimon_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( qtorimon_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x200007) AM_DEVREADWRITE("tc0110pcr", tc0110pcr_word_r, tc0110pcr_word_w) /* palette */
@@ -781,7 +781,7 @@ static ADDRESS_MAP_START( qtorimon_map, AS_PROGRAM, 16 )
AM_RANGE(0x910000, 0x9120ff) AM_WRITENOP /* error in init code ? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( liquidk_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( liquidk_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
@@ -794,7 +794,7 @@ static ADDRESS_MAP_START( liquidk_map, AS_PROGRAM, 16 )
AM_RANGE(0xb00000, 0xb0001f) AM_DEVWRITE8("tc0360pri", tc0360pri_w, 0x00ff) /* ?? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( quizhq_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( quizhq_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x200007) AM_DEVREADWRITE("tc0110pcr", tc0110pcr_word_r, tc0110pcr_word_w) /* palette */
@@ -815,7 +815,7 @@ static ADDRESS_MAP_START( quizhq_map, AS_PROGRAM, 16 )
AM_RANGE(0x900000, 0x90ffff) AM_RAM AM_BASE_SIZE_MEMBER(taitof2_state, m_spriteram, m_spriteram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ssi_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ssi_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_halfword_r, tc0510nio_halfword_w)
AM_RANGE(0x200000, 0x20ffff) AM_RAM
@@ -828,7 +828,7 @@ static ADDRESS_MAP_START( ssi_map, AS_PROGRAM, 16 )
AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_BASE_SIZE_MEMBER(taitof2_state, m_spriteram, m_spriteram_size) /* sprite ram */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gunfront_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gunfront_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
@@ -842,7 +842,7 @@ static ADDRESS_MAP_START( gunfront_map, AS_PROGRAM, 16 )
AM_RANGE(0xb00000, 0xb0001f) AM_DEVWRITE8("tc0360pri", tc0360pri_w, 0x00ff) /* ?? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( growl_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( growl_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
@@ -865,7 +865,7 @@ static ADDRESS_MAP_START( growl_map, AS_PROGRAM, 16 )
AM_RANGE(0xb00000, 0xb0001f) AM_DEVWRITE8("tc0360pri", tc0360pri_w, 0x00ff) /* ?? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjnquest_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mjnquest_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x110000, 0x11ffff) AM_RAM /* "sram" */
AM_RANGE(0x120000, 0x12ffff) AM_RAM
@@ -883,7 +883,7 @@ static ADDRESS_MAP_START( mjnquest_map, AS_PROGRAM, 16 )
AM_RANGE(0x500000, 0x50ffff) AM_RAM AM_BASE_SIZE_MEMBER(taitof2_state, m_spriteram, m_spriteram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( footchmp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( footchmp_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_SIZE_MEMBER(taitof2_state, m_spriteram, m_spriteram_size)
@@ -905,7 +905,7 @@ static ADDRESS_MAP_START( footchmp_map, AS_PROGRAM, 16 )
AM_RANGE(0xa00002, 0xa00003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( koshien_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( koshien_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
@@ -919,7 +919,7 @@ static ADDRESS_MAP_START( koshien_map, AS_PROGRAM, 16 )
AM_RANGE(0xb00000, 0xb0001f) AM_DEVWRITE8("tc0360pri", tc0360pri_w, 0xff00)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( yuyugogo_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( yuyugogo_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_halfword_r, tc0510nio_halfword_w)
AM_RANGE(0x400000, 0x400001) AM_DEVWRITE8("tc0140syt", tc0140syt_port_w, 0xff00)
@@ -933,7 +933,7 @@ static ADDRESS_MAP_START( yuyugogo_map, AS_PROGRAM, 16 )
AM_RANGE(0xd00000, 0xdfffff) AM_ROM AM_REGION("extra", 0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ninjak_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ninjak_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
@@ -949,7 +949,7 @@ static ADDRESS_MAP_START( ninjak_map, AS_PROGRAM, 16 )
AM_RANGE(0xb00000, 0xb0001f) AM_DEVWRITE8("tc0360pri", tc0360pri_w, 0x00ff) /* b00002 written like a watchdog?! */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( solfigtr_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( solfigtr_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
@@ -970,7 +970,7 @@ static ADDRESS_MAP_START( solfigtr_map, AS_PROGRAM, 16 )
AM_RANGE(0xb00000, 0xb0001f) AM_DEVWRITE8("tc0360pri", tc0360pri_w, 0x00ff) /* ?? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( qzquest_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( qzquest_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x17ffff) AM_ROM
AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_halfword_r, tc0510nio_halfword_w)
AM_RANGE(0x300000, 0x300001) AM_DEVWRITE8("tc0140syt", tc0140syt_port_w, 0x00ff)
@@ -982,7 +982,7 @@ static ADDRESS_MAP_START( qzquest_map, AS_PROGRAM, 16 )
AM_RANGE(0x720000, 0x72000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pulirula_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pulirula_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x200000, 0x200001) AM_DEVWRITE8("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -999,7 +999,7 @@ static ADDRESS_MAP_START( pulirula_map, AS_PROGRAM, 16 )
AM_RANGE(0xb00000, 0xb0000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_halfword_r, tc0510nio_halfword_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( metalb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( metalb_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x300000, 0x30ffff) AM_RAM AM_BASE_SIZE_MEMBER(taitof2_state, m_spriteram, m_spriteram_size)
@@ -1014,7 +1014,7 @@ static ADDRESS_MAP_START( metalb_map, AS_PROGRAM, 16 )
// AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP /* ??? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( qzchikyu_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( qzchikyu_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x17ffff) AM_ROM
AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_halfword_r, tc0510nio_halfword_w)
AM_RANGE(0x300000, 0x300001) AM_DEVWRITE8("tc0140syt", tc0140syt_port_w, 0x00ff)
@@ -1026,7 +1026,7 @@ static ADDRESS_MAP_START( qzchikyu_map, AS_PROGRAM, 16 )
AM_RANGE(0x720000, 0x72000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( yesnoj_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( yesnoj_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_BASE_SIZE_MEMBER(taitof2_state, m_spriteram, m_spriteram_size)
@@ -1045,7 +1045,7 @@ static ADDRESS_MAP_START( yesnoj_map, AS_PROGRAM, 16 )
AM_RANGE(0xd00000, 0xd00001) AM_WRITENOP /* lots of similar writes */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( deadconx_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( deadconx_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_SIZE_MEMBER(taitof2_state, m_spriteram, m_spriteram_size)
@@ -1066,7 +1066,7 @@ static ADDRESS_MAP_START( deadconx_map, AS_PROGRAM, 16 )
AM_RANGE(0xa00002, 0xa00003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dinorex_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dinorex_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x2fffff) AM_ROM
AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_halfword_r, tc0510nio_halfword_w)
AM_RANGE(0x400000, 0x400fff) AM_WRITE(taitof2_sprite_extension_w) AM_BASE_SIZE_MEMBER(taitof2_state, m_sprite_extension, m_spriteext_size)
@@ -1081,7 +1081,7 @@ static ADDRESS_MAP_START( dinorex_map, AS_PROGRAM, 16 )
AM_RANGE(0xb00000, 0xb00001) AM_WRITENOP /* watchdog? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( qjinsei_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( qjinsei_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x200001) AM_DEVWRITE8("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -1096,7 +1096,7 @@ static ADDRESS_MAP_START( qjinsei_map, AS_PROGRAM, 16 )
AM_RANGE(0xb00000, 0xb0000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_halfword_r, tc0510nio_halfword_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( qcrayon_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( qcrayon_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
// AM_RANGE(0x200000, 0x200001) AM_WRITENOP /* unknown */
@@ -1112,7 +1112,7 @@ static ADDRESS_MAP_START( qcrayon_map, AS_PROGRAM, 16 )
AM_RANGE(0xb00000, 0xb0001f) AM_DEVWRITE8("tc0360pri", tc0360pri_w, 0x00ff) /* ?? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( qcrayon2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( qcrayon2_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
@@ -1127,7 +1127,7 @@ static ADDRESS_MAP_START( qcrayon2_map, AS_PROGRAM, 16 )
AM_RANGE(0xb00000, 0xb017ff) AM_WRITE(taitof2_sprite_extension_w) AM_BASE_SIZE_MEMBER(taitof2_state, m_sprite_extension, m_spriteext_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( driftout_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( driftout_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x200001) AM_DEVWRITE8("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -1145,7 +1145,7 @@ static ADDRESS_MAP_START( driftout_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
/* same as driftout, except for sound address 0x200000 */
-static ADDRESS_MAP_START( driveout_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( driveout_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x200003) AM_READNOP AM_WRITE(driveout_sound_command_w)
AM_RANGE(0x300000, 0x30ffff) AM_RAM
@@ -1164,7 +1164,7 @@ ADDRESS_MAP_END
/***************************************************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taitof2_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank2")
AM_RANGE(0xc000, 0xdfff) AM_RAM
@@ -1181,7 +1181,7 @@ ADDRESS_MAP_END
/* Alt version of Cameltry, YM2203 + M6925 sound */
-static ADDRESS_MAP_START( cameltrya_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cameltrya_sound_map, AS_PROGRAM, 8, taitof2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // I can't see a bank control, but there ARE some bytes past 0x8000
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
@@ -1192,7 +1192,7 @@ static ADDRESS_MAP_START( cameltrya_sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( driveout_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( driveout_sound_map, AS_PROGRAM, 8, taitof2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_WRITE(oki_bank_w)
diff --git a/src/mame/drivers/taito_f3.c b/src/mame/drivers/taito_f3.c
index b8042414281..a223d517a26 100644
--- a/src/mame/drivers/taito_f3.c
+++ b/src/mame/drivers/taito_f3.c
@@ -189,7 +189,7 @@ static WRITE16_HANDLER( f3_unk_w )
/******************************************************************************/
-static ADDRESS_MAP_START( f3_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( f3_map, AS_PROGRAM, 32, taito_f3_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x300000, 0x30007f) AM_WRITE(f3_sound_bankswitch_w)
AM_RANGE(0x400000, 0x41ffff) AM_MIRROR(0x20000) AM_RAM AM_BASE_MEMBER(taito_f3_state, m_f3_ram)
diff --git a/src/mame/drivers/taito_h.c b/src/mame/drivers/taito_h.c
index ad72a518b59..286d404ce27 100644
--- a/src/mame/drivers/taito_h.c
+++ b/src/mame/drivers/taito_h.c
@@ -249,7 +249,7 @@ static WRITE8_HANDLER( sound_bankswitch_w )
***************************************************************************/
-static ADDRESS_MAP_START( syvalion_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( syvalion_map, AS_PROGRAM, 16, taitoh_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_MIRROR(0x010000) AM_RAM AM_BASE_MEMBER(taitoh_state, m_m68000_mainram)
AM_RANGE(0x200000, 0x200001) AM_READ8(syvalion_input_bypass_r, 0x00ff) AM_DEVWRITE8("tc0220ioc", tc0220ioc_portreg_w, 0x00ff)
@@ -260,7 +260,7 @@ static ADDRESS_MAP_START( syvalion_map, AS_PROGRAM, 16 )
AM_RANGE(0x500800, 0x500fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( recordbr_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( recordbr_map, AS_PROGRAM, 16, taitoh_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_MIRROR(0x010000) AM_RAM AM_BASE_MEMBER(taitoh_state, m_m68000_mainram)
AM_RANGE(0x200000, 0x200001) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_portreg_r, tc0220ioc_portreg_w, 0x00ff)
@@ -271,7 +271,7 @@ static ADDRESS_MAP_START( recordbr_map, AS_PROGRAM, 16 )
AM_RANGE(0x500800, 0x500fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dleague_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dleague_map, AS_PROGRAM, 16, taitoh_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_MIRROR(0x010000) AM_RAM AM_BASE_MEMBER(taitoh_state, m_m68000_mainram)
AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0x00ff)
@@ -283,7 +283,7 @@ static ADDRESS_MAP_START( dleague_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taitoh_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_RAM
diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c
index 022fb47506c..b07cc6588e4 100644
--- a/src/mame/drivers/taito_l.c
+++ b/src/mame/drivers/taito_l.c
@@ -712,13 +712,13 @@ static READ8_HANDLER( horshoes_trackx_hi_r )
-static ADDRESS_MAP_START( fhawk_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fhawk_map, AS_PROGRAM, 8, taitol_state )
COMMON_BANKS_MAP
AM_RANGE(0x8000, 0x9fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xa000, 0xbfff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fhawk_2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fhawk_2_map, AS_PROGRAM, 8, taitol_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank6")
AM_RANGE(0xc000, 0xc000) AM_WRITE(rombank2switch_w)
@@ -734,7 +734,7 @@ static ADDRESS_MAP_START( fhawk_2_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fhawk_3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fhawk_3_map, AS_PROGRAM, 8, taitol_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank7")
AM_RANGE(0x8000, 0x9fff) AM_RAM
@@ -744,7 +744,7 @@ static ADDRESS_MAP_START( fhawk_3_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( raimais_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( raimais_map, AS_PROGRAM, 8, taitol_state )
COMMON_BANKS_MAP
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x8800, 0x8800) AM_READWRITE(mux_r, mux_w)
@@ -754,7 +754,7 @@ static ADDRESS_MAP_START( raimais_map, AS_PROGRAM, 8 )
AM_RANGE(0xa000, 0xbfff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( raimais_2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( raimais_2_map, AS_PROGRAM, 8, taitol_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("share1")
@@ -769,7 +769,7 @@ static WRITE8_HANDLER( sound_bankswitch_w )
memory_set_bankptr (space->machine(), "bank7", &RAM [0x10000 + (banknum * 0x4000)]);
}
-static ADDRESS_MAP_START( raimais_3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( raimais_3_map, AS_PROGRAM, 8, taitol_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank7")
AM_RANGE(0xc000, 0xdfff) AM_RAM
@@ -784,13 +784,13 @@ static ADDRESS_MAP_START( raimais_3_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( champwr_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( champwr_map, AS_PROGRAM, 8, taitol_state )
COMMON_BANKS_MAP
AM_RANGE(0x8000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xbfff) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( champwr_2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( champwr_2_map, AS_PROGRAM, 8, taitol_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank6")
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_SHARE("share1")
@@ -806,7 +806,7 @@ static ADDRESS_MAP_START( champwr_2_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf000) AM_READWRITE(rombank2switch_r, rombank2switch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( champwr_3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( champwr_3_map, AS_PROGRAM, 8, taitol_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank7")
AM_RANGE(0x8000, 0x8fff) AM_RAM
@@ -821,7 +821,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( kurikint_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kurikint_map, AS_PROGRAM, 8, taitol_state )
COMMON_BANKS_MAP
AM_RANGE(0x8000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("share1")
@@ -829,7 +829,7 @@ static ADDRESS_MAP_START( kurikint_map, AS_PROGRAM, 8 )
AM_RANGE(0xa801, 0xa801) AM_WRITE(mux_ctrl_w) AM_READNOP // Watchdog or interrupt ack (value ignored)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kurikint_2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kurikint_2_map, AS_PROGRAM, 8, taitol_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("share1")
@@ -846,7 +846,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( puzznic_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( puzznic_map, AS_PROGRAM, 8, taitol_state )
COMMON_BANKS_MAP
COMMON_SINGLE_MAP
AM_RANGE(0xa800, 0xa800) AM_READNOP // Watchdog
@@ -857,7 +857,7 @@ static ADDRESS_MAP_START( puzznic_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* bootleg, doesn't have the MCU */
-static ADDRESS_MAP_START( puzznici_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( puzznici_map, AS_PROGRAM, 8, taitol_state )
COMMON_BANKS_MAP
COMMON_SINGLE_MAP
AM_RANGE(0xa800, 0xa800) AM_READNOP // Watchdog
@@ -869,7 +869,7 @@ static ADDRESS_MAP_START( puzznici_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( plotting_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( plotting_map, AS_PROGRAM, 8, taitol_state )
COMMON_BANKS_MAP
COMMON_SINGLE_MAP
AM_RANGE(0xa800, 0xa800) AM_WRITENOP // Watchdog or interrupt ack
@@ -877,7 +877,7 @@ static ADDRESS_MAP_START( plotting_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( palamed_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( palamed_map, AS_PROGRAM, 8, taitol_state )
COMMON_BANKS_MAP
COMMON_SINGLE_MAP
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN0")
@@ -889,7 +889,7 @@ static ADDRESS_MAP_START( palamed_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cachat_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cachat_map, AS_PROGRAM, 8, taitol_state )
COMMON_BANKS_MAP
COMMON_SINGLE_MAP
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN0")
@@ -902,7 +902,7 @@ static ADDRESS_MAP_START( cachat_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( horshoes_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( horshoes_map, AS_PROGRAM, 8, taitol_state )
COMMON_BANKS_MAP
COMMON_SINGLE_MAP
AM_RANGE(0xa800, 0xa800) AM_READ(horshoes_tracky_lo_r)
@@ -916,7 +916,7 @@ static ADDRESS_MAP_START( horshoes_map, AS_PROGRAM, 8 )
AM_RANGE(0xbc00, 0xbc00) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( evilston_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( evilston_map, AS_PROGRAM, 8, taitol_state )
COMMON_BANKS_MAP
AM_RANGE(0x8000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("share1")
@@ -928,7 +928,7 @@ static ADDRESS_MAP_START( evilston_map, AS_PROGRAM, 8 )
AM_RANGE(0xa807, 0xa807) AM_READ_PORT("IN2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( evilston_2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( evilston_2_map, AS_PROGRAM, 8, taitol_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("share1")
diff --git a/src/mame/drivers/taito_o.c b/src/mame/drivers/taito_o.c
index c974189914e..ba486de94f5 100644
--- a/src/mame/drivers/taito_o.c
+++ b/src/mame/drivers/taito_o.c
@@ -60,7 +60,7 @@ static READ16_HANDLER(io_r)
return retval;
}
-static ADDRESS_MAP_START( parentj_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( parentj_map, AS_PROGRAM, 16, taitoo_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_MIRROR(0x010000) AM_RAM
AM_RANGE(0x200000, 0x20000f) AM_READWRITE(io_r, io_w) /* TC0220IOC ? */
diff --git a/src/mame/drivers/taito_x.c b/src/mame/drivers/taito_x.c
index 22ce2b2ce09..b209bd62e30 100644
--- a/src/mame/drivers/taito_x.c
+++ b/src/mame/drivers/taito_x.c
@@ -421,7 +421,7 @@ static WRITE8_HANDLER( sound_bankswitch_w )
/**************************************************************************/
-static ADDRESS_MAP_START( superman_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( superman_map, AS_PROGRAM, 16, taitox_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x300000, 0x300001) AM_WRITENOP /* written each frame at $3a9c, mostly 0x10 */
AM_RANGE(0x400000, 0x400001) AM_WRITENOP /* written each frame at $3aa2, mostly 0x10 */
@@ -439,7 +439,7 @@ static ADDRESS_MAP_START( superman_map, AS_PROGRAM, 16 )
AM_RANGE(0xf00000, 0xf03fff) AM_RAM /* Main RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( daisenpu_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( daisenpu_map, AS_PROGRAM, 16, taitox_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
// AM_RANGE(0x400000, 0x400001) AM_WRITENOP /* written each frame at $2ac, values change */
AM_RANGE(0x500000, 0x50000f) AM_READ(superman_dsw_input_r)
@@ -454,7 +454,7 @@ static ADDRESS_MAP_START( daisenpu_map, AS_PROGRAM, 16 )
AM_RANGE(0xf00000, 0xf03fff) AM_RAM /* Main RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gigandes_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( gigandes_map, AS_PROGRAM, 16, taitox_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x400000, 0x400001) AM_WRITENOP /* 0x1 written each frame at $d42, watchdog? */
AM_RANGE(0x500000, 0x500007) AM_READ(superman_dsw_input_r)
@@ -469,7 +469,7 @@ static ADDRESS_MAP_START( gigandes_map, AS_PROGRAM, 16 )
AM_RANGE(0xf00000, 0xf03fff) AM_RAM /* Main RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ballbros_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ballbros_map, AS_PROGRAM, 16, taitox_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x400000, 0x400001) AM_WRITENOP /* 0x1 written each frame at $c56, watchdog? */
AM_RANGE(0x500000, 0x50000f) AM_READ(superman_dsw_input_r)
@@ -487,7 +487,7 @@ ADDRESS_MAP_END
/**************************************************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taitox_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank2")
AM_RANGE(0xc000, 0xdfff) AM_RAM
@@ -501,7 +501,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) /* bankswitch ? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( daisenpu_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( daisenpu_sound_map, AS_PROGRAM, 8, taitox_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank2")
AM_RANGE(0xc000, 0xdfff) AM_RAM
diff --git a/src/mame/drivers/taito_z.c b/src/mame/drivers/taito_z.c
index 73e8f1fef63..e0feb506787 100644
--- a/src/mame/drivers/taito_z.c
+++ b/src/mame/drivers/taito_z.c
@@ -1523,7 +1523,7 @@ static WRITE16_HANDLER( spacegun_pancontrol )
***********************************************************/
-static ADDRESS_MAP_START( contcirc_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( contcirc_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM
AM_RANGE(0x084000, 0x087fff) AM_RAM AM_SHARE("share1")
@@ -1535,7 +1535,7 @@ static ADDRESS_MAP_START( contcirc_map, AS_PROGRAM, 16 )
AM_RANGE(0x400000, 0x4006ff) AM_RAM AM_BASE_SIZE_MEMBER(taitoz_state, m_spriteram, m_spriteram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( contcirc_cpub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( contcirc_cpub_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM
AM_RANGE(0x084000, 0x087fff) AM_RAM AM_SHARE("share1")
@@ -1545,7 +1545,7 @@ static ADDRESS_MAP_START( contcirc_cpub_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( chasehq_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( chasehq_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x107fff) AM_RAM
AM_RANGE(0x108000, 0x10bfff) AM_RAM AM_SHARE("share1")
@@ -1561,7 +1561,7 @@ static ADDRESS_MAP_START( chasehq_map, AS_PROGRAM, 16 )
AM_RANGE(0xe00000, 0xe003ff) AM_READWRITE(chasehq_motor_r, chasehq_motor_w) /* motor cpu */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( chq_cpub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( chq_cpub_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x108000, 0x10bfff) AM_RAM AM_SHARE("share1")
@@ -1569,7 +1569,7 @@ static ADDRESS_MAP_START( chq_cpub_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( enforce_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( enforce_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE("share1")
@@ -1581,7 +1581,7 @@ static ADDRESS_MAP_START( enforce_map, AS_PROGRAM, 16 )
AM_RANGE(0x620000, 0x62000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( enforce_cpub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( enforce_cpub_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE("share1")
@@ -1591,7 +1591,7 @@ static ADDRESS_MAP_START( enforce_cpub_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bshark_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bshark_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE("share1")
@@ -1604,7 +1604,7 @@ static ADDRESS_MAP_START( bshark_map, AS_PROGRAM, 16 )
AM_RANGE(0xd20000, 0xd2000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bsharkjjs_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bsharkjjs_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE("share1")
@@ -1617,7 +1617,7 @@ static ADDRESS_MAP_START( bsharkjjs_map, AS_PROGRAM, 16 )
AM_RANGE(0xd20000, 0xd2000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bshark_cpub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bshark_cpub_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x108000, 0x10bfff) AM_RAM
AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE("share1")
@@ -1630,7 +1630,7 @@ static ADDRESS_MAP_START( bshark_cpub_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sci_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sci_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x107fff) AM_RAM
AM_RANGE(0x108000, 0x10bfff) AM_RAM AM_SHARE("share1")
@@ -1646,7 +1646,7 @@ static ADDRESS_MAP_START( sci_map, AS_PROGRAM, 16 )
AM_RANGE(0xc08000, 0xc08001) AM_READWRITE(sci_spriteframe_r, sci_spriteframe_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sci_cpub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sci_cpub_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x200000, 0x203fff) AM_RAM
AM_RANGE(0x208000, 0x20bfff) AM_RAM AM_SHARE("share1")
@@ -1654,7 +1654,7 @@ static ADDRESS_MAP_START( sci_cpub_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nightstr_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( nightstr_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE("share1")
@@ -1669,7 +1669,7 @@ static ADDRESS_MAP_START( nightstr_map, AS_PROGRAM, 16 )
AM_RANGE(0xe40000, 0xe40007) AM_READWRITE(nightstr_stick_r, bshark_stick_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nightstr_cpub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( nightstr_cpub_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE("share1")
@@ -1677,7 +1677,7 @@ static ADDRESS_MAP_START( nightstr_cpub_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aquajack_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( aquajack_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE("share1")
@@ -1689,7 +1689,7 @@ static ADDRESS_MAP_START( aquajack_map, AS_PROGRAM, 16 )
AM_RANGE(0xc40000, 0xc403ff) AM_RAM AM_BASE_SIZE_MEMBER(taitoz_state, m_spriteram, m_spriteram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aquajack_cpub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( aquajack_cpub_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE("share1")
@@ -1701,7 +1701,7 @@ static ADDRESS_MAP_START( aquajack_cpub_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spacegun_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( spacegun_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x30c000, 0x30ffff) AM_RAM
AM_RANGE(0x310000, 0x31ffff) AM_RAM AM_SHARE("share1")
@@ -1711,7 +1711,7 @@ static ADDRESS_MAP_START( spacegun_map, AS_PROGRAM, 16 )
AM_RANGE(0xb00000, 0xb00007) AM_DEVREADWRITE("tc0110pcr", tc0110pcr_word_r, tc0110pcr_step1_rbswap_word_w) /* palette */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spacegun_cpub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( spacegun_cpub_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x20c000, 0x20ffff) AM_RAM
AM_RANGE(0x210000, 0x21ffff) AM_RAM AM_SHARE("share1")
@@ -1725,7 +1725,7 @@ static ADDRESS_MAP_START( spacegun_cpub_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dblaxle_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dblaxle_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x203fff) AM_RAM
AM_RANGE(0x210000, 0x21ffff) AM_RAM AM_SHARE("share1")
@@ -1741,7 +1741,7 @@ static ADDRESS_MAP_START( dblaxle_map, AS_PROGRAM, 16 )
AM_RANGE(0xc08000, 0xc08001) AM_READWRITE(sci_spriteframe_r, sci_spriteframe_w) /* set in int6, seems to stay zero */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dblaxle_cpub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dblaxle_cpub_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x110000, 0x11ffff) AM_RAM AM_SHARE("share1")
@@ -1750,7 +1750,7 @@ static ADDRESS_MAP_START( dblaxle_cpub_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( racingb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( racingb_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x110000, 0x11ffff) AM_RAM AM_SHARE("share1")
@@ -1765,7 +1765,7 @@ static ADDRESS_MAP_START( racingb_map, AS_PROGRAM, 16 )
AM_RANGE(0xb08000, 0xb08001) AM_READWRITE(sci_spriteframe_r, sci_spriteframe_w) /* alternates 0/0x100 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( racingb_cpub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( racingb_cpub_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x400000, 0x403fff) AM_RAM
AM_RANGE(0x410000, 0x41ffff) AM_RAM AM_SHARE("share1")
@@ -1776,7 +1776,7 @@ ADDRESS_MAP_END
/***************************************************************************/
-static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8, taitoz_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10")
AM_RANGE(0xc000, 0xdfff) AM_RAM
diff --git a/src/mame/drivers/taitoair.c b/src/mame/drivers/taitoair.c
index c16196c8d17..0191497878d 100644
--- a/src/mame/drivers/taitoair.c
+++ b/src/mame/drivers/taitoair.c
@@ -402,7 +402,7 @@ static WRITE8_HANDLER( sound_bankswitch_w )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( airsys_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( airsys_map, AS_PROGRAM, 16, taitoair_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x0c0000, 0x0cffff) AM_RAM AM_BASE_MEMBER(taitoair_state, m_m68000_mainram)
AM_RANGE(0x140000, 0x140001) AM_WRITE(system_control_w) /* Pause the TMS32025 */
@@ -423,7 +423,7 @@ ADDRESS_MAP_END
/************************** Z80 ****************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taitoair_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_RAM
@@ -467,11 +467,11 @@ read to 0x3407, puts to line RAM (x) with offset + 0x5d
*/
-static ADDRESS_MAP_START( DSP_map_program, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( DSP_map_program, AS_PROGRAM, 16, taitoair_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( DSP_map_data, AS_DATA, 16 )
+static ADDRESS_MAP_START( DSP_map_data, AS_DATA, 16, taitoair_state )
AM_RANGE(0x2003, 0x2003) AM_READNOP //bit 0 DMA status flag or vblank
AM_RANGE(0x3000, 0x3002) AM_WRITE(dsp_flags_w)
AM_RANGE(0x3404, 0x3404) AM_WRITE(dsp_frustum_left_w)
@@ -490,7 +490,7 @@ static ADDRESS_MAP_START( DSP_map_data, AS_DATA, 16 )
AM_RANGE(0x8000, 0xffff) AM_READWRITE(dspram_r, dspram_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( DSP_map_io, AS_IO, 16 )
+static ADDRESS_MAP_START( DSP_map_io, AS_IO, 16, taitoair_state )
AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READ(dsp_HOLD_signal_r)
AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITE(dsp_HOLDA_signal_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/taitogn.c b/src/mame/drivers/taitogn.c
index a74a42fff73..1619d46a3ad 100644
--- a/src/mame/drivers/taitogn.c
+++ b/src/mame/drivers/taitogn.c
@@ -917,7 +917,7 @@ static MACHINE_RESET( coh3002t )
cputag_set_input_line(machine, "mn10200",INPUT_LINE_RESET,ASSERT_LINE); /* MCU */
}
-static ADDRESS_MAP_START( taitogn_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( taitogn_map, AS_PROGRAM, 32, taitogn_state )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE("share1") /* ram */
AM_RANGE(0x00400000, 0x007fffff) AM_RAM AM_SHARE("share1") /* ram mirror */
AM_RANGE(0x1f000000, 0x1f1fffff) AM_READWRITE(flash_s1_r, flash_s1_w)
diff --git a/src/mame/drivers/taitojc.c b/src/mame/drivers/taitojc.c
index 10da40ce708..c827a98f9b2 100644
--- a/src/mame/drivers/taitojc.c
+++ b/src/mame/drivers/taitojc.c
@@ -850,7 +850,7 @@ static READ32_HANDLER( jc_lan_r )
return 0xffffffff;
}
-static ADDRESS_MAP_START( taitojc_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( taitojc_map, AS_PROGRAM, 32, taitojc_state )
AM_RANGE(0x00000000, 0x001fffff) AM_ROM AM_MIRROR(0x200000)
AM_RANGE(0x00400000, 0x01bfffff) AM_ROM AM_REGION("gfx1", 0)
AM_RANGE(0x04000000, 0x040f7fff) AM_RAM AM_BASE_MEMBER(taitojc_state,m_vram)
@@ -914,12 +914,12 @@ static READ8_HANDLER(hc11_analog_r)
}
-static ADDRESS_MAP_START( hc11_pgm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hc11_pgm_map, AS_PROGRAM, 8, taitojc_state )
AM_RANGE(0x4000, 0x5fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION("user1", 0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hc11_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( hc11_io_map, AS_IO, 8, taitojc_state )
AM_RANGE(MC68HC11_IO_PORTA, MC68HC11_IO_PORTA ) AM_NOP
AM_RANGE(MC68HC11_IO_PORTG, MC68HC11_IO_PORTG ) AM_READWRITE(hc11_comm_r, hc11_comm_w)
AM_RANGE(MC68HC11_IO_PORTH, MC68HC11_IO_PORTH ) AM_NOP
@@ -1120,12 +1120,12 @@ static WRITE16_HANDLER( dsp_to_main_w )
COMBINE_DATA(&state->m_dsp_shared_ram[0x7fe]);
}
-static ADDRESS_MAP_START( tms_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tms_program_map, AS_PROGRAM, 16, taitojc_state )
// AM_RANGE(0x0000, 0x1fff) AM_READ(dsp_internal_rom_r) // TODO: Dangerous Curves tries to access 0x207?
AM_RANGE(0x4000, 0x7fff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tms_data_map, AS_DATA, 16 )
+static ADDRESS_MAP_START( tms_data_map, AS_DATA, 16, taitojc_state )
AM_RANGE(0x6a01, 0x6a02) AM_WRITE(dsp_unk2_w)
AM_RANGE(0x6a11, 0x6a12) AM_NOP // same as 0x6a01..02 for the second renderer chip?
AM_RANGE(0x6b20, 0x6b20) AM_WRITE(dsp_polygon_fifo_w)
diff --git a/src/mame/drivers/taitopjc.c b/src/mame/drivers/taitopjc.c
index 238bc9650e2..75ae5290eb5 100644
--- a/src/mame/drivers/taitopjc.c
+++ b/src/mame/drivers/taitopjc.c
@@ -65,6 +65,13 @@ static UINT32 jc_screen_ram[0x10000];
static UINT8 common_ram[0x2000];
+class taitopjc_state : public driver_device
+{
+public:
+ taitopjc_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ { }
+};
static VIDEO_START( taitopjc )
{
@@ -302,7 +309,7 @@ static WRITE64_HANDLER(dsp_w)
// DBAT2 U: 0xc0000003 L: 0xc0000022 (0xc0000000...0xc001ffff)
// DBAT3 U: 0xfe0003ff L: 0xfe000022 (0xfe000000...0xffffffff)
-static ADDRESS_MAP_START( ppc603e_mem, AS_PROGRAM, 64)
+static ADDRESS_MAP_START( ppc603e_mem, AS_PROGRAM, 64, taitopjc_state )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM // Work RAM
AM_RANGE(0x40000000, 0x4000000f) AM_READWRITE(video_r, video_w)
AM_RANGE(0x80000000, 0x80003fff) AM_READWRITE(dsp_r, dsp_w)
@@ -358,7 +365,7 @@ static WRITE8_HANDLER(tlcs_sound_w)
// 0xfc0fb5: INTRX1
// 0xfc0f41: INTTX1
-static ADDRESS_MAP_START( tlcs900h_mem, AS_PROGRAM, 8)
+static ADDRESS_MAP_START( tlcs900h_mem, AS_PROGRAM, 8, taitopjc_state )
AM_RANGE(0x010000, 0x02ffff) AM_RAM // Work RAM
AM_RANGE(0x040000, 0x0400ff) AM_READWRITE(tlcs_sound_r, tlcs_sound_w)
AM_RANGE(0x060000, 0x061fff) AM_READWRITE(tlcs_common_r, tlcs_common_w)
@@ -391,7 +398,7 @@ static const tlcs900_interface taitopjc_tlcs900_interface =
DEVCB_HANDLER( taitopjc_tlcs900_to3 )
};
-static MACHINE_CONFIG_START( taitopjc, driver_device )
+static MACHINE_CONFIG_START( taitopjc, taitopjc_state )
MCFG_CPU_ADD("maincpu", PPC603E, 100000000)
MCFG_CPU_CONFIG(ppc603e_config)
MCFG_CPU_PROGRAM_MAP(ppc603e_mem)
diff --git a/src/mame/drivers/taitosj.c b/src/mame/drivers/taitosj.c
index ae8a11faf85..a07ee93f311 100644
--- a/src/mame/drivers/taitosj.c
+++ b/src/mame/drivers/taitosj.c
@@ -198,7 +198,7 @@ static CUSTOM_INPUT( input_port_4_f0_r )
}
-static ADDRESS_MAP_START( taitosj_main_nomcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( taitosj_main_nomcu_map, AS_PROGRAM, 8, taitosj_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x87ff) AM_RAM
@@ -238,7 +238,7 @@ ADDRESS_MAP_END
/* only difference is taitosj_fake_ replaced with taitosj_mcu_ */
-static ADDRESS_MAP_START( taitosj_main_mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( taitosj_main_mcu_map, AS_PROGRAM, 8, taitosj_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x87ff) AM_RAM
@@ -301,7 +301,7 @@ static CUSTOM_INPUT( kikstart_gear_r )
}
-static ADDRESS_MAP_START( kikstart_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kikstart_main_map, AS_PROGRAM, 8, taitosj_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x87ff) AM_RAM
@@ -340,7 +340,7 @@ static ADDRESS_MAP_START( kikstart_main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( taitosj_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( taitosj_audio_map, AS_PROGRAM, 8, taitosj_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x4800, 0x4801) AM_DEVWRITE("ay2", ay8910_address_data_w)
@@ -354,7 +354,7 @@ static ADDRESS_MAP_START( taitosj_audio_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( taitosj_mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( taitosj_mcu_map, AS_PROGRAM, 8, taitosj_state )
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)
diff --git a/src/mame/drivers/taitotz.c b/src/mame/drivers/taitotz.c
index 9b3ac858329..dbff7847312 100644
--- a/src/mame/drivers/taitotz.c
+++ b/src/mame/drivers/taitotz.c
@@ -325,7 +325,7 @@ static WRITE64_HANDLER(ppc_common_w)
// 0x40000000...0x400fffff: BIOS Work RAM
// 0x40100000...0x40ffffff: User Work RAM
-static ADDRESS_MAP_START( ppc603e_mem, AS_PROGRAM, 64)
+static ADDRESS_MAP_START( ppc603e_mem, AS_PROGRAM, 64, taitotz_state )
//AM_RANGE(0x00000000, 0x00000007) AM_RAM // Register/RAM access port? - Written 128k+256k times on boot
//AM_RANGE(0x00000008, 0x0000000f) AM_RAM // Register/RAM address port?
AM_RANGE(0x00000000, 0x0000000f) AM_WRITE(video_chip_w)
@@ -354,7 +354,7 @@ ADDRESS_MAP_END
// 0xfc0d55: INTRX1
// 0xfc0ce1: INTTX1
-static ADDRESS_MAP_START( tlcs900h_mem, AS_PROGRAM, 8)
+static ADDRESS_MAP_START( tlcs900h_mem, AS_PROGRAM, 8, taitotz_state )
AM_RANGE(0x010000, 0x02ffff) AM_RAM // Work RAM
AM_RANGE(0xfc0000, 0xffffff) AM_ROM AM_REGION("io_cpu", 0)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/taitowlf.c b/src/mame/drivers/taitowlf.c
index 525cdf30346..8d09d48c7d1 100644
--- a/src/mame/drivers/taitowlf.c
+++ b/src/mame/drivers/taitowlf.c
@@ -457,7 +457,7 @@ static WRITE32_HANDLER(at_page32_w)
/*****************************************************************************/
-static ADDRESS_MAP_START( taitowlf_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( taitowlf_map, AS_PROGRAM, 32, taitowlf_state )
AM_RANGE(0x00000000, 0x0009ffff) AM_RAM
AM_RANGE(0x000a0000, 0x000bffff) AM_RAM
#if ENABLE_VGA
@@ -472,7 +472,7 @@ static ADDRESS_MAP_START( taitowlf_map, AS_PROGRAM, 32 )
AM_RANGE(0xfffc0000, 0xffffffff) AM_ROM AM_REGION("user1", 0) /* System BIOS */
ADDRESS_MAP_END
-static ADDRESS_MAP_START(taitowlf_io, AS_IO, 32)
+static ADDRESS_MAP_START(taitowlf_io, AS_IO, 32, taitowlf_state )
AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_r, i8237_w, 0xffffffff)
AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8("pit8254", pit8253_r, pit8253_w, 0xffffffff)
diff --git a/src/mame/drivers/tank8.c b/src/mame/drivers/tank8.c
index 0c18341bf4f..8ac2d77f7f2 100644
--- a/src/mame/drivers/tank8.c
+++ b/src/mame/drivers/tank8.c
@@ -96,7 +96,7 @@ static WRITE8_DEVICE_HANDLER( tank8_motor_w )
discrete_sound_w(device, NODE_RELATIVE(TANK8_MOTOR1_EN, offset), data);
}
-static ADDRESS_MAP_START( tank8_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tank8_cpu_map, AS_PROGRAM, 8, tank8_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM
AM_RANGE(0x0400, 0x17ff) AM_ROM
AM_RANGE(0xf800, 0xffff) AM_ROM
diff --git a/src/mame/drivers/tankbatt.c b/src/mame/drivers/tankbatt.c
index e9608a18163..173d4661cd5 100644
--- a/src/mame/drivers/tankbatt.c
+++ b/src/mame/drivers/tankbatt.c
@@ -159,7 +159,7 @@ static WRITE8_HANDLER( tankbatt_coin_lockout_w )
coin_lockout_w(space->machine(), 1,data & 1);
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tankbatt_state )
AM_RANGE(0x0000, 0x000f) AM_RAM AM_BASE_MEMBER(tankbatt_state, m_bulletsram) AM_SIZE_MEMBER(tankbatt_state, m_bulletsram_size)
AM_RANGE(0x0010, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x07ff) AM_RAM
diff --git a/src/mame/drivers/tankbust.c b/src/mame/drivers/tankbust.c
index 7caf9a099d6..695980775dd 100644
--- a/src/mame/drivers/tankbust.c
+++ b/src/mame/drivers/tankbust.c
@@ -177,7 +177,7 @@ static READ8_HANDLER( some_changing_input )
return state->m_variable_data;
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tankbust_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank2")
@@ -196,7 +196,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
//AM_RANGE(0xf800, 0xffff) AM_READ(read_from_unmapped_memory) /* a bug in game code ? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( port_map_cpu2, AS_IO, 8 )
+static ADDRESS_MAP_START( port_map_cpu2, AS_IO, 8, tankbust_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_DEVWRITE("ay2", ay8910_data_w)
AM_RANGE(0x30, 0x30) AM_DEVREADWRITE("ay2", ay8910_r, ay8910_address_w)
@@ -205,7 +205,7 @@ static ADDRESS_MAP_START( port_map_cpu2, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( map_cpu2, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( map_cpu2, AS_PROGRAM, 8, tankbust_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_WRITENOP /* garbage, written in initialization loop */
//0x4000 and 0x4040-0x4045 seem to be used (referenced in the code)
diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c
index 94162e76d37..270791e70ac 100644
--- a/src/mame/drivers/taotaido.c
+++ b/src/mame/drivers/taotaido.c
@@ -89,7 +89,7 @@ static WRITE16_HANDLER( sound_command_w )
cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, taotaido_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(taotaido_bgvideoram_w) AM_BASE_MEMBER(taotaido_state, m_bgram) // bg ram?
AM_RANGE(0xa00000, 0xa01fff) AM_RAM AM_BASE_MEMBER(taotaido_state, m_spriteram) // sprite ram
@@ -131,13 +131,13 @@ static WRITE8_HANDLER( taotaido_sh_bankswitch_w )
memory_set_bankptr(space->machine(), "bank1",rom + (data & 0x03) * 0x8000);
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taotaido_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_port_map, AS_IO, 8, taotaido_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
AM_RANGE(0x04, 0x04) AM_WRITE(taotaido_sh_bankswitch_w)
diff --git a/src/mame/drivers/tapatune.c b/src/mame/drivers/tapatune.c
index 41e307ceb83..ee5b1ced1a7 100644
--- a/src/mame/drivers/tapatune.c
+++ b/src/mame/drivers/tapatune.c
@@ -114,7 +114,7 @@ static READ16_HANDLER(irq_ack_r)
return 0;
}
-static ADDRESS_MAP_START( tapatune_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tapatune_map, AS_PROGRAM, 16, tapatune_state )
AM_RANGE(0x000000, 0x2fffff) AM_ROM // program rom and graphics roms
AM_RANGE(0x300000, 0x31ffff) AM_RAM AM_BASE_MEMBER(tapatune_state, m_videoram) // hardware video buffer
AM_RANGE(0x320000, 0x327fff) AM_RAM // workram
@@ -209,13 +209,13 @@ static WRITE8_HANDLER(bsmt_reg_w)
bsmt->write_data(state->m_bsmt_data);
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, tapatune_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM AM_WRITENOP
AM_RANGE(0xe000, 0xefff) AM_RAM
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START ( sound_io_map, AS_IO, 8)
+static ADDRESS_MAP_START ( sound_io_map, AS_IO, 8, tapatune_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(bsmt_data_lo_w)
AM_RANGE(0x08, 0x08) AM_WRITE(bsmt_data_hi_w)
diff --git a/src/mame/drivers/targeth.c b/src/mame/drivers/targeth.c
index 74e1d211a34..9547c3c143a 100644
--- a/src/mame/drivers/targeth.c
+++ b/src/mame/drivers/targeth.c
@@ -63,7 +63,7 @@ static WRITE16_HANDLER( targeth_coin_counter_w )
coin_counter_w( space->machine(), (offset >> 3) & 0x01, data & 0x01);
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, targeth_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(targeth_vram_w) AM_BASE_MEMBER(targeth_state, m_videoram) /* Video RAM */
AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_BASE_MEMBER(targeth_state, m_vregs) /* Video Registers */
diff --git a/src/mame/drivers/tatsumi.c b/src/mame/drivers/tatsumi.c
index 56e9e6a6d04..33ab69f3fcf 100644
--- a/src/mame/drivers/tatsumi.c
+++ b/src/mame/drivers/tatsumi.c
@@ -211,7 +211,7 @@ static WRITE16_HANDLER(cyclwarr_sound_w)
/***************************************************************************/
-static ADDRESS_MAP_START( apache3_v30_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( apache3_v30_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x00000, 0x03fff) AM_RAM
AM_RANGE(0x04000, 0x07fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x08000, 0x08fff) AM_RAM_WRITE(apache3_palette_w) AM_BASE_GENERIC(paletteram)
@@ -225,7 +225,7 @@ static ADDRESS_MAP_START( apache3_v30_map, AS_PROGRAM, 16 )
AM_RANGE(0xa0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( apache3_68000_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( apache3_68000_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0x80000, 0x83fff) AM_RAM AM_BASE_MEMBER(tatsumi_state, m_68k_ram)
AM_RANGE(0x90000, 0x93fff) AM_RAM AM_BASE_MEMBER(tatsumi_state, m_spriteram)
@@ -237,7 +237,7 @@ static ADDRESS_MAP_START( apache3_68000_map, AS_PROGRAM, 16 )
AM_RANGE(0xe0000, 0xe7fff) AM_READWRITE(apache3_z80_r, apache3_z80_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( apache3_v20_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( apache3_v20_map, AS_PROGRAM, 8, tatsumi_state )
AM_RANGE(0x00000, 0x01fff) AM_RAM
AM_RANGE(0x04000, 0x04003) AM_NOP // piu select .. ?
AM_RANGE(0x06000, 0x06001) AM_READ_PORT("IN0") // esw
@@ -247,14 +247,14 @@ static ADDRESS_MAP_START( apache3_v20_map, AS_PROGRAM, 8 )
AM_RANGE(0xf0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( apache3_z80_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( apache3_z80_map, AS_PROGRAM, 8, tatsumi_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_MEMBER(tatsumi_state, m_apache3_z80_ram)
AM_RANGE(0x8000, 0xffff) AM_WRITE(apache3_road_x_w)
ADDRESS_MAP_END
/*****************************************************************/
-static ADDRESS_MAP_START( roundup5_v30_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( roundup5_v30_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x00000, 0x07fff) AM_RAM
AM_RANGE(0x08000, 0x0bfff) AM_RAM_WRITE(roundup5_text_w) AM_BASE_MEMBER(tatsumi_state, m_videoram)
AM_RANGE(0x0c000, 0x0c003) AM_WRITE(roundup5_crt_w)
@@ -270,7 +270,7 @@ static ADDRESS_MAP_START( roundup5_v30_map, AS_PROGRAM, 16 )
AM_RANGE(0x80000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( roundup5_68000_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( roundup5_68000_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0x80000, 0x83fff) AM_RAM AM_BASE_MEMBER(tatsumi_state, m_68k_ram)
AM_RANGE(0x90000, 0x93fff) AM_RAM AM_BASE_MEMBER(tatsumi_state, m_spriteram)
@@ -282,7 +282,7 @@ static ADDRESS_MAP_START( roundup5_68000_map, AS_PROGRAM, 16 )
AM_RANGE(0xe0000, 0xe0001) AM_WRITE(roundup5_e0000_w) AM_BASE_MEMBER(tatsumi_state, m_roundup5_e0000_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( roundup5_z80_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( roundup5_z80_map, AS_PROGRAM, 8, tatsumi_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xffef) AM_RAM
AM_RANGE(0xfff0, 0xfff1) AM_DEVREADWRITE("ymsnd", tatsumi_hack_ym2151_r, ym2151_w)
@@ -296,7 +296,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( cyclwarr_68000a_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cyclwarr_68000a_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_BASE_MEMBER(tatsumi_state, m_cyclwarr_cpua_ram)
AM_RANGE(0x03e000, 0x03efff) AM_RAM
AM_RANGE(0x040000, 0x043fff) AM_READWRITE(cyclwarr_cpu_bb_r, cyclwarr_cpu_bb_w)
@@ -318,7 +318,7 @@ static ADDRESS_MAP_START( cyclwarr_68000a_map, AS_PROGRAM, 16 )
AM_RANGE(0x2c0000, 0x33ffff) AM_ROMBANK("bank1") /* CPU A ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cyclwarr_68000b_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cyclwarr_68000b_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_BASE_MEMBER(tatsumi_state, m_cyclwarr_cpub_ram)
AM_RANGE(0x080000, 0x08ffff) AM_READWRITE(cyclwarr_videoram1_r, cyclwarr_videoram1_w)
@@ -339,7 +339,7 @@ static ADDRESS_MAP_START( cyclwarr_68000b_map, AS_PROGRAM, 16 )
AM_RANGE(0x2c0000, 0x33ffff) AM_ROMBANK("bank1") /* CPU A ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cyclwarr_z80_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cyclwarr_z80_map, AS_PROGRAM, 8, tatsumi_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xffef) AM_RAM
AM_RANGE(0xfff0, 0xfff1) AM_DEVREADWRITE("ymsnd", tatsumi_hack_ym2151_r, ym2151_w)
@@ -350,7 +350,7 @@ ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( bigfight_68000a_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bigfight_68000a_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_BASE_MEMBER(tatsumi_state, m_cyclwarr_cpua_ram)
AM_RANGE(0x03e000, 0x03efff) AM_RAM
@@ -374,7 +374,7 @@ static ADDRESS_MAP_START( bigfight_68000a_map, AS_PROGRAM, 16 )
AM_RANGE(0x200000, 0x27ffff) AM_ROMBANK("bank1") /* CPU B ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bigfight_68000b_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bigfight_68000b_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_BASE_MEMBER(tatsumi_state, m_cyclwarr_cpub_ram)
AM_RANGE(0x080000, 0x08ffff) AM_READWRITE(cyclwarr_videoram1_r, cyclwarr_videoram1_w)
AM_RANGE(0x090000, 0x09ffff) AM_READWRITE(cyclwarr_videoram0_r, cyclwarr_videoram0_w)
diff --git a/src/mame/drivers/tattack.c b/src/mame/drivers/tattack.c
index 10e3c8384a1..4e3daccc2b1 100644
--- a/src/mame/drivers/tattack.c
+++ b/src/mame/drivers/tattack.c
@@ -67,7 +67,7 @@ static VIDEO_START( tattack )
state->m_tmap = tilemap_create( machine, get_tile_info,tilemap_scan_rows,8,8,32,32 );
}
-static ADDRESS_MAP_START( mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mem, AS_PROGRAM, 8, tattack_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
// AM_RANGE(0x4000, 0x4000) AM_READNOP $315
AM_RANGE(0x5000, 0x53ff) AM_RAM AM_BASE_MEMBER(tattack_state, m_videoram)
diff --git a/src/mame/drivers/taxidriv.c b/src/mame/drivers/taxidriv.c
index 65315d8c625..37e34076dd8 100644
--- a/src/mame/drivers/taxidriv.c
+++ b/src/mame/drivers/taxidriv.c
@@ -151,7 +151,7 @@ static const ppi8255_interface ppi8255_intf[5] =
};
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, taxidriv_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM /* ??? */
AM_RANGE(0x9000, 0x9fff) AM_RAM /* ??? */
@@ -175,7 +175,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, taxidriv_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x6000, 0x67ff) AM_RAM
AM_RANGE(0x8000, 0x87ff) AM_RAM
@@ -187,13 +187,13 @@ static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8 )
AM_RANGE(0xe004, 0xe004) AM_READ_PORT("P2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu3_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu3_map, AS_PROGRAM, 8, taxidriv_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x2000) AM_READNOP /* irq ack? */
AM_RANGE(0xfc00, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu3_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( cpu3_port_map, AS_IO, 8, taxidriv_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x01, 0x01) AM_DEVREAD("ay1", ay8910_r)
diff --git a/src/mame/drivers/tbowl.c b/src/mame/drivers/tbowl.c
index 54f1a59198d..b60da2e3007 100644
--- a/src/mame/drivers/tbowl.c
+++ b/src/mame/drivers/tbowl.c
@@ -87,7 +87,7 @@ static WRITE8_HANDLER( tbowl_sound_command_w )
/* Board B */
-static ADDRESS_MAP_START( 6206B_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( 6206B_map, AS_PROGRAM, 8, tbowl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xbfff) AM_RAM_WRITE(tbowl_bg2videoram_w) AM_BASE_MEMBER(tbowl_state, m_bg2videoram)
@@ -128,7 +128,7 @@ static WRITE8_HANDLER ( tbowl_trigger_nmi )
cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_NMI, PULSE_LINE);
}
-static ADDRESS_MAP_START( 6206C_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( 6206C_map, AS_PROGRAM, 8, tbowl_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_READONLY
AM_RANGE(0xc000, 0xd7ff) AM_WRITEONLY
@@ -186,7 +186,7 @@ static void tbowl_adpcm_int(device_t *device)
}
}
-static ADDRESS_MAP_START( 6206A_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( 6206A_map, AS_PROGRAM, 8, tbowl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd001) AM_DEVWRITE("ym1", ym3812_w)
diff --git a/src/mame/drivers/tceptor.c b/src/mame/drivers/tceptor.c
index cfa5c6587ff..5f28f93f3d0 100644
--- a/src/mame/drivers/tceptor.c
+++ b/src/mame/drivers/tceptor.c
@@ -163,7 +163,7 @@ static READ8_HANDLER( readFF )
/*******************************************************************/
-static ADDRESS_MAP_START( m6809_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m6809_map, AS_PROGRAM, 8, tceptor_state )
AM_RANGE(0x0000, 0x17ff) AM_RAM
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(tceptor_tile_ram_w) AM_BASE_MEMBER(tceptor_state, m_tile_ram)
AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(tceptor_tile_attr_w) AM_BASE_MEMBER(tceptor_state, m_tile_attr)
@@ -183,7 +183,7 @@ static ADDRESS_MAP_START( m6809_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m6502_a_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m6502_a_map, AS_PROGRAM, 8, tceptor_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_SHARE("share2")
AM_RANGE(0x0100, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x02ff) AM_RAM
@@ -195,7 +195,7 @@ static ADDRESS_MAP_START( m6502_a_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m6502_b_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m6502_b_map, AS_PROGRAM, 8, tceptor_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_SHARE("share2")
AM_RANGE(0x0100, 0x01ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_DEVWRITE("dac", voice_w) // voice data
@@ -204,7 +204,7 @@ static ADDRESS_MAP_START( m6502_b_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m68k_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( m68k_map, AS_PROGRAM, 16, tceptor_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM // M68K ERROR 1
AM_RANGE(0x100000, 0x10ffff) AM_ROM // not sure
AM_RANGE(0x200000, 0x203fff) AM_RAM // M68K ERROR 0
@@ -216,7 +216,7 @@ static ADDRESS_MAP_START( m68k_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, tceptor_state )
AM_RANGE(0x0000, 0x001f) AM_READWRITE(m6801_io_r, m6801_io_w)
AM_RANGE(0x0080, 0x00ff) AM_RAM
AM_RANGE(0x1000, 0x13ff) AM_DEVREADWRITE("namco", namcos1_cus30_r, namcos1_cus30_w)
@@ -236,7 +236,7 @@ static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, tceptor_state )
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ(readFF) AM_WRITENOP
AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ(readFF) AM_WRITENOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tcl.c b/src/mame/drivers/tcl.c
index 6b35c78a5f5..33d61e94ed4 100644
--- a/src/mame/drivers/tcl.c
+++ b/src/mame/drivers/tcl.c
@@ -63,7 +63,7 @@ static SCREEN_UPDATE_IND16( tcl )
return 0;
}
-static ADDRESS_MAP_START( tcl_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tcl_map, AS_PROGRAM, 8, tcl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* bfff ? */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tecmo.c b/src/mame/drivers/tecmo.c
index b75e10ec79f..2782333ed66 100644
--- a/src/mame/drivers/tecmo.c
+++ b/src/mame/drivers/tecmo.c
@@ -133,7 +133,7 @@ static READ8_HANDLER( tecmo_dswb_h_r )
}
-static ADDRESS_MAP_START( rygar_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rygar_map, AS_PROGRAM, 8, tecmo_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(tecmo_txvideoram_w) AM_BASE_MEMBER(tecmo_state, m_txvideoram)
@@ -161,7 +161,7 @@ static ADDRESS_MAP_START( rygar_map, AS_PROGRAM, 8 )
AM_RANGE(0xf80b, 0xf80b) AM_WRITE(watchdog_reset_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gemini_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( gemini_map, AS_PROGRAM, 8, tecmo_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(tecmo_txvideoram_w) AM_BASE_MEMBER(tecmo_state, m_txvideoram)
@@ -189,7 +189,7 @@ static ADDRESS_MAP_START( gemini_map, AS_PROGRAM, 8 )
AM_RANGE(0xf80b, 0xf80b) AM_WRITE(watchdog_reset_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( silkworm_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( silkworm_map, AS_PROGRAM, 8, tecmo_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(tecmo_bgvideoram_w) AM_BASE_MEMBER(tecmo_state, m_bgvideoram)
AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE(tecmo_fgvideoram_w) AM_BASE_MEMBER(tecmo_state, m_fgvideoram)
@@ -218,7 +218,7 @@ static ADDRESS_MAP_START( silkworm_map, AS_PROGRAM, 8 )
AM_RANGE(0xf80b, 0xf80b) AM_WRITENOP /* ? if mapped to watchdog like in the others, causes reset */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rygar_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rygar_sound_map, AS_PROGRAM, 8, tecmo_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("ymsnd", ym3812_w)
@@ -228,7 +228,7 @@ static ADDRESS_MAP_START( rygar_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* NMI acknowledge */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tecmo_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tecmo_sound_map, AS_PROGRAM, 8, tecmo_state )
AM_RANGE(0x2000, 0x207f) AM_RAM /* Silkworm set #2 has a custom CPU which */
/* writes code to this area */
AM_RANGE(0x0000, 0x7fff) AM_ROM
diff --git a/src/mame/drivers/tecmo16.c b/src/mame/drivers/tecmo16.c
index fba104929f4..42e08455dc7 100644
--- a/src/mame/drivers/tecmo16.c
+++ b/src/mame/drivers/tecmo16.c
@@ -43,7 +43,7 @@ static WRITE16_HANDLER( tecmo16_sound_command_w )
/******************************************************************************/
-static ADDRESS_MAP_START( fstarfrc_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( fstarfrc_map, AS_PROGRAM, 16, tecmo16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM /* Main RAM */
AM_RANGE(0x110000, 0x110fff) AM_RAM_WRITE(tecmo16_charram_w) AM_BASE_MEMBER(tecmo16_state, m_charram)
@@ -66,7 +66,7 @@ static ADDRESS_MAP_START( fstarfrc_map, AS_PROGRAM, 16 )
AM_RANGE(0x16001e, 0x16001f) AM_WRITE(tecmo16_scroll2_y_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ginkun_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ginkun_map, AS_PROGRAM, 16, tecmo16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM /* Main RAM */
AM_RANGE(0x110000, 0x110fff) AM_RAM_WRITE(tecmo16_charram_w) AM_BASE_MEMBER(tecmo16_state, m_charram)
@@ -91,7 +91,7 @@ static ADDRESS_MAP_START( ginkun_map, AS_PROGRAM, 16 )
AM_RANGE(0x16001e, 0x16001f) AM_WRITE(tecmo16_scroll2_y_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, tecmo16_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xfbff) AM_RAM /* Sound RAM */
AM_RANGE(0xfc00, 0xfc00) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c
index 779dd9d9c0c..35e17862174 100644
--- a/src/mame/drivers/tecmosys.c
+++ b/src/mame/drivers/tecmosys.c
@@ -286,7 +286,7 @@ static WRITE16_DEVICE_HANDLER( eeprom_w )
}
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tecmosys_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // work ram
AM_RANGE(0x210000, 0x210001) AM_READNOP // single byte overflow on stack defined as 0x210000
@@ -341,13 +341,13 @@ static WRITE8_HANDLER( tecmosys_oki_bank_w )
memcpy( region+0x20000, region+0x80000 + upperbank * 0x20000, 0x20000 );
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, tecmosys_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xe000, 0xf7ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, tecmosys_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymf", ymf262_r, ymf262_w)
AM_RANGE(0x10, 0x10) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
diff --git a/src/mame/drivers/tehkanwc.c b/src/mame/drivers/tehkanwc.c
index 2dd0ef29ca0..59829fe13b4 100644
--- a/src/mame/drivers/tehkanwc.c
+++ b/src/mame/drivers/tehkanwc.c
@@ -217,7 +217,7 @@ static void tehkanwc_adpcm_int(device_t *device)
-static ADDRESS_MAP_START( main_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_mem, AS_PROGRAM, 8, tehkanwc_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1")
@@ -243,7 +243,7 @@ static ADDRESS_MAP_START( main_mem, AS_PROGRAM, 8 )
AM_RANGE(0xf870, 0xf870) AM_READ_PORT("DSW3") AM_WRITE(tehkanwc_flipscreen_y_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sub_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sub_mem, AS_PROGRAM, 8, tehkanwc_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1")
@@ -258,7 +258,7 @@ static ADDRESS_MAP_START( sub_mem, AS_PROGRAM, 8 )
AM_RANGE(0xf860, 0xf860) AM_READ(watchdog_reset_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_mem, AS_PROGRAM, 8, tehkanwc_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x8001, 0x8001) AM_DEVWRITE("msm", msm_reset_w)/* MSM51xx reset */
@@ -267,7 +267,7 @@ static ADDRESS_MAP_START( sound_mem, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xc000) AM_READWRITE(soundlatch_r, sound_answer_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_port, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_port, AS_IO, 8, tehkanwc_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREAD("ay1", ay8910_r)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_data_address_w)
diff --git a/src/mame/drivers/tempest.c b/src/mame/drivers/tempest.c
index e4e273c2dc7..3bf731df19b 100644
--- a/src/mame/drivers/tempest.c
+++ b/src/mame/drivers/tempest.c
@@ -394,7 +394,7 @@ static WRITE8_HANDLER( tempest_coin_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tempest_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x080f) AM_WRITEONLY AM_BASE(&avgdvg_colorram)
AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("IN0")
diff --git a/src/mame/drivers/terracre.c b/src/mame/drivers/terracre.c
index f9ab3fee700..83c0ea3c57a 100644
--- a/src/mame/drivers/terracre.c
+++ b/src/mame/drivers/terracre.c
@@ -196,7 +196,7 @@ static MACHINE_START( amazon )
state_save_register_global_array(machine, state->m_mAmazonProtReg);
}
-static ADDRESS_MAP_START( terracre_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( terracre_map, AS_PROGRAM, 16, terracre_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x020000, 0x0201ff) AM_RAM AM_BASE_MEMBER(terracre_state, m_spriteram)
AM_RANGE(0x020200, 0x021fff) AM_RAM
@@ -213,7 +213,7 @@ static ADDRESS_MAP_START( terracre_map, AS_PROGRAM, 16 )
AM_RANGE(0x028000, 0x0287ff) AM_WRITE(amazon_foreground_w) AM_BASE_MEMBER(terracre_state, m_videoram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( amazon_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( amazon_map, AS_PROGRAM, 16, terracre_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x040000, 0x0401ff) AM_RAM AM_BASE_MEMBER(terracre_state, m_spriteram)
AM_RANGE(0x040200, 0x040fff) AM_RAM
@@ -230,12 +230,12 @@ static ADDRESS_MAP_START( amazon_map, AS_PROGRAM, 16 )
AM_RANGE(0x070000, 0x070003) AM_READWRITE(amazon_protection_r, amazon_protection_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, terracre_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_3526_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_3526_io_map, AS_IO, 8, terracre_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ymsnd", ym3526_w)
AM_RANGE(0x02, 0x02) AM_DEVWRITE("dac1", dac_signed_w)
@@ -244,7 +244,7 @@ static ADDRESS_MAP_START( sound_3526_io_map, AS_IO, 8 )
AM_RANGE(0x06, 0x06) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_2203_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_2203_io_map, AS_IO, 8, terracre_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0x02, 0x02) AM_DEVWRITE("dac1", dac_signed_w)
diff --git a/src/mame/drivers/tetrisp2.c b/src/mame/drivers/tetrisp2.c
index 7cfb469b971..4e6c8536a32 100644
--- a/src/mame/drivers/tetrisp2.c
+++ b/src/mame/drivers/tetrisp2.c
@@ -294,7 +294,7 @@ static WRITE16_HANDLER( tetrisp2_coincounter_w )
***************************************************************************/
-static ADDRESS_MAP_START( tetrisp2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tetrisp2_map, AS_PROGRAM, 16, tetrisp2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("spriteram") // Object RAM
AM_RANGE(0x104000, 0x107fff) AM_RAM // Spare Object RAM
@@ -351,7 +351,7 @@ static WRITE16_HANDLER( nndmseal_b20000_w )
// popmessage("%04x",data);
}
-static ADDRESS_MAP_START( nndmseal_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( nndmseal_map, AS_PROGRAM, 16, tetrisp2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("spriteram") // Object RAM
AM_RANGE(0x104000, 0x107fff) AM_RAM // Spare Object RAM
@@ -397,7 +397,7 @@ static ADDRESS_MAP_START( nndmseal_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rockn1_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rockn1_map, AS_PROGRAM, 16, tetrisp2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("spriteram") // Object RAM
AM_RANGE(0x104000, 0x107fff) AM_RAM // Spare Object RAM
@@ -431,7 +431,7 @@ static ADDRESS_MAP_START( rockn1_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rockn2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rockn2_map, AS_PROGRAM, 16, tetrisp2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("spriteram") // Object RAM
AM_RANGE(0x104000, 0x107fff) AM_RAM // Spare Object RAM
@@ -465,7 +465,7 @@ static ADDRESS_MAP_START( rockn2_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rocknms_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rocknms_main_map, AS_PROGRAM, 16, tetrisp2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("spriteram") // Object RAM
AM_RANGE(0x104000, 0x107fff) AM_RAM // Spare Object RAM
@@ -500,7 +500,7 @@ static ADDRESS_MAP_START( rocknms_main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rocknms_sub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rocknms_sub_map, AS_PROGRAM, 16, tetrisp2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("spriteram2") // Object RAM
AM_RANGE(0x104000, 0x107fff) AM_RAM // Spare Object RAM
diff --git a/src/mame/drivers/tgtpanic.c b/src/mame/drivers/tgtpanic.c
index cf97d641bbc..dc5f2e8928e 100644
--- a/src/mame/drivers/tgtpanic.c
+++ b/src/mame/drivers/tgtpanic.c
@@ -80,12 +80,12 @@ static WRITE8_HANDLER( color_w )
*
*************************************/
-static ADDRESS_MAP_START( prg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( prg_map, AS_PROGRAM, 8, tgtpanic_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_RAM AM_BASE_MEMBER(tgtpanic_state, m_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, tgtpanic_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(color_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/thayers.c b/src/mame/drivers/thayers.c
index ee6d351c128..140bde73501 100644
--- a/src/mame/drivers/thayers.c
+++ b/src/mame/drivers/thayers.c
@@ -580,13 +580,13 @@ static READ8_HANDLER( ssi263_register_r )
/* Memory Maps */
-static ADDRESS_MAP_START( thayers_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( thayers_map, AS_PROGRAM, 8, thayers_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_RAM
AM_RANGE(0xc000, 0xdfff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( thayers_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( thayers_io_map, AS_IO, 8, thayers_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x07) AM_READWRITE(ssi263_register_r, ssi263_register_w)
AM_RANGE(0x20, 0x20) AM_WRITE(control_w)
@@ -604,7 +604,7 @@ static ADDRESS_MAP_START( thayers_io_map, AS_IO, 8 )
AM_RANGE(0xf7, 0xf7) AM_WRITE(den2_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( thayers_cop_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( thayers_cop_io_map, AS_IO, 8, thayers_state )
AM_RANGE(COP400_PORT_L, COP400_PORT_L) AM_READWRITE(cop_l_r, cop_l_w)
AM_RANGE(COP400_PORT_G, COP400_PORT_G) AM_READWRITE(cop_g_r, cop_g_w)
AM_RANGE(COP400_PORT_D, COP400_PORT_D) AM_WRITE(cop_d_w)
diff --git a/src/mame/drivers/thedeep.c b/src/mame/drivers/thedeep.c
index 29d76ed5368..5ccf2b99db1 100644
--- a/src/mame/drivers/thedeep.c
+++ b/src/mame/drivers/thedeep.c
@@ -150,7 +150,7 @@ static WRITE8_HANDLER( thedeep_e100_w )
logerror("pc %04x: e100 = %02x\n", cpu_get_pc(&space->device()),data);
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, thedeep_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // ROM (banked)
AM_RANGE(0xc000, 0xcfff) AM_RAM
@@ -178,7 +178,7 @@ ADDRESS_MAP_END
***************************************************************************/
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, thedeep_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ymsnd", ym2203_w) //
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_r) // From Main CPU
@@ -260,7 +260,7 @@ static READ8_HANDLER( thedeep_p0_r )
return (input_port_read(space->machine(),"COINS") & 0xfe) | (coin_mux & 1);
}
-static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, thedeep_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(MCS51_PORT_P0,MCS51_PORT_P0) AM_READ(thedeep_p0_r)
AM_RANGE(MCS51_PORT_P1,MCS51_PORT_P1) AM_WRITE(thedeep_p1_w)
diff --git a/src/mame/drivers/thepit.c b/src/mame/drivers/thepit.c
index 007e4217269..3accaf76be0 100644
--- a/src/mame/drivers/thepit.c
+++ b/src/mame/drivers/thepit.c
@@ -154,7 +154,7 @@ static WRITE8_HANDLER( nmi_mask_w )
}
-static ADDRESS_MAP_START( thepit_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( thepit_main_map, AS_PROGRAM, 8, thepit_state )
AM_RANGE(0x0000, 0x4fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8bff) AM_MIRROR(0x0400) AM_RAM_WRITE(thepit_colorram_w) AM_BASE_MEMBER(thepit_state, m_colorram)
@@ -174,7 +174,7 @@ static ADDRESS_MAP_START( thepit_main_map, AS_PROGRAM, 8 )
AM_RANGE(0xb800, 0xb800) AM_READWRITE(watchdog_reset_r, soundlatch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( intrepid_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( intrepid_main_map, AS_PROGRAM, 8, thepit_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8c00, 0x8fff) AM_READWRITE(thepit_colorram_r, thepit_colorram_w) /* mirror for intrepi2 */
@@ -197,13 +197,13 @@ static ADDRESS_MAP_START( intrepid_main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, thepit_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x3800, 0x3bff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( audio_io_map, AS_IO, 8, thepit_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(soundlatch_clear_w)
AM_RANGE(0x8c, 0x8d) AM_DEVWRITE("ay2", ay8910_address_data_w)
diff --git a/src/mame/drivers/thief.c b/src/mame/drivers/thief.c
index ab40042acc5..5414c02abe5 100644
--- a/src/mame/drivers/thief.c
+++ b/src/mame/drivers/thief.c
@@ -151,13 +151,13 @@ static READ8_HANDLER( thief_io_r )
return 0x00;
}
-static ADDRESS_MAP_START( sharkatt_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sharkatt_main_map, AS_PROGRAM, 8, thief_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM /* 2114 */
AM_RANGE(0xc000, 0xdfff) AM_READWRITE(thief_videoram_r, thief_videoram_w) /* 4116 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( thief_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( thief_main_map, AS_PROGRAM, 8, thief_state )
AM_RANGE(0x0000, 0x0000) AM_WRITE(thief_blit_w)
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM /* 2114 */
@@ -170,7 +170,7 @@ static ADDRESS_MAP_START( thief_main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, thief_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP /* watchdog */
AM_RANGE(0x10, 0x10) AM_WRITE(thief_video_control_w)
diff --git a/src/mame/drivers/thoop2.c b/src/mame/drivers/thoop2.c
index c07871ab506..86ba2bb25ce 100644
--- a/src/mame/drivers/thoop2.c
+++ b/src/mame/drivers/thoop2.c
@@ -84,7 +84,7 @@ static READ16_HANDLER( DS5002FP_R )
return 0x55aa;
}
-static ADDRESS_MAP_START( thoop2_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( thoop2_map, AS_PROGRAM, 16, thoop2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(thoop2_vram_w) AM_BASE_MEMBER(thoop2_state, m_videoram) /* Video RAM */
AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_BASE_MEMBER(thoop2_state, m_vregs) /* Video Registers */
diff --git a/src/mame/drivers/thunderj.c b/src/mame/drivers/thunderj.c
index edb2b78c611..10b388da335 100644
--- a/src/mame/drivers/thunderj.c
+++ b/src/mame/drivers/thunderj.c
@@ -151,7 +151,7 @@ static WRITE16_HANDLER( thunderj_atarivc_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, thunderj_state )
AM_RANGE(0x000000, 0x09ffff) AM_ROM
AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
@@ -184,7 +184,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( extra_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( extra_map, AS_PROGRAM, 16, thunderj_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x060000, 0x07ffff) AM_ROM
AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
diff --git a/src/mame/drivers/thunderx.c b/src/mame/drivers/thunderx.c
index 655d42b0bd4..a382203a3f0 100644
--- a/src/mame/drivers/thunderx.c
+++ b/src/mame/drivers/thunderx.c
@@ -406,7 +406,7 @@ static WRITE8_HANDLER( k052109_051960_w )
/***************************************************************************/
-static ADDRESS_MAP_START( scontra_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( scontra_map, AS_PROGRAM, 8, thunderx_state )
AM_RANGE(0x1f80, 0x1f80) AM_WRITE(scontra_bankswitch_w) /* bankswitch control + coin counters */
AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w)
AM_RANGE(0x1f88, 0x1f88) AM_WRITE(thunderx_sh_irqtrigger_w) /* cause interrupt on audio CPU */
@@ -426,7 +426,7 @@ static ADDRESS_MAP_START( scontra_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( thunderx_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( thunderx_map, AS_PROGRAM, 8, thunderx_state )
AM_RANGE(0x1f80, 0x1f80) AM_WRITE(thunderx_videobank_w)
AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w)
AM_RANGE(0x1f88, 0x1f88) AM_WRITE(thunderx_sh_irqtrigger_w) /* cause interrupt on audio CPU */
@@ -446,7 +446,7 @@ static ADDRESS_MAP_START( thunderx_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( scontra_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( scontra_sound_map, AS_PROGRAM, 8, thunderx_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) /* soundlatch_r */
@@ -455,7 +455,7 @@ static ADDRESS_MAP_START( scontra_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf000) AM_DEVWRITE("k007232", scontra_snd_bankswitch_w) /* 007232 bank select */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( thunderx_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( thunderx_sound_map, AS_PROGRAM, 8, thunderx_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/tiamc1.c b/src/mame/drivers/tiamc1.c
index 4f3576048c0..ee4d2f5e17e 100644
--- a/src/mame/drivers/tiamc1.c
+++ b/src/mame/drivers/tiamc1.c
@@ -131,13 +131,13 @@ static WRITE8_HANDLER( tiamc1_control_w )
}
-static ADDRESS_MAP_START( tiamc1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tiamc1_map, AS_PROGRAM, 8, tiamc1_state )
AM_RANGE(0xb000, 0xb7ff) AM_WRITE(tiamc1_videoram_w)
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tiamc1_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( tiamc1_io_map, AS_IO, 8, tiamc1_state )
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 */
diff --git a/src/mame/drivers/tickee.c b/src/mame/drivers/tickee.c
index 03827d5d962..f1b7648f671 100644
--- a/src/mame/drivers/tickee.c
+++ b/src/mame/drivers/tickee.c
@@ -377,7 +377,7 @@ static WRITE16_DEVICE_HANDLER( sound_bank_w )
*
*************************************/
-static ADDRESS_MAP_START( tickee_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tickee_map, AS_PROGRAM, 16, tickee_state )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_BASE_MEMBER(tickee_state, m_vram)
AM_RANGE(0x02000000, 0x02ffffff) AM_ROM AM_REGION("user1", 0)
AM_RANGE(0x04000000, 0x04003fff) AM_RAM AM_SHARE("nvram")
@@ -395,7 +395,7 @@ ADDRESS_MAP_END
/* addreses in the 04x range shifted slightly...*/
-static ADDRESS_MAP_START( ghoshunt_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ghoshunt_map, AS_PROGRAM, 16, tickee_state )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_BASE_MEMBER(tickee_state, m_vram)
AM_RANGE(0x02000000, 0x02ffffff) AM_ROM AM_REGION("user1", 0)
AM_RANGE(0x04100000, 0x04103fff) AM_RAM AM_SHARE("nvram")
@@ -411,7 +411,7 @@ static ADDRESS_MAP_START( ghoshunt_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mouseatk_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mouseatk_map, AS_PROGRAM, 16, tickee_state )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_BASE_MEMBER(tickee_state, m_vram)
AM_RANGE(0x02000000, 0x02ffffff) AM_ROM AM_REGION("user1", 0)
AM_RANGE(0x04000000, 0x04003fff) AM_RAM AM_SHARE("nvram")
@@ -428,7 +428,7 @@ ADDRESS_MAP_END
/* newer hardware */
-static ADDRESS_MAP_START( rapidfir_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rapidfir_map, AS_PROGRAM, 16, tickee_state )
AM_RANGE(0x00000000, 0x007fffff) AM_RAM AM_BASE_MEMBER(tickee_state, m_vram)
AM_RANGE(0x02000000, 0x027fffff) AM_READWRITE(rapidfir_transparent_r, rapidfir_transparent_w)
AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, tms34010_io_register_w)
diff --git a/src/mame/drivers/tigeroad.c b/src/mame/drivers/tigeroad.c
index 87891e89241..96e9cc53647 100644
--- a/src/mame/drivers/tigeroad.c
+++ b/src/mame/drivers/tigeroad.c
@@ -167,7 +167,7 @@ static WRITE8_DEVICE_HANDLER( msm5205_w )
/***************************************************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tigeroad_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0xfe0800, 0xfe0cff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xfe0d00, 0xfe1807) AM_RAM /* still part of OBJ RAM */
@@ -183,7 +183,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, tigeroad_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8001) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ym2", ym2203_r, ym2203_w)
@@ -191,16 +191,16 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_port_map, AS_IO, 8, tigeroad_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x7f, 0x7f) AM_WRITE(soundlatch2_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sample_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sample_map, AS_PROGRAM, 8, tigeroad_state )
AM_RANGE(0x0000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sample_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sample_port_map, AS_IO, 8, tigeroad_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch2_r)
AM_RANGE(0x01, 0x01) AM_DEVWRITE("msm", msm5205_w)
diff --git a/src/mame/drivers/timelimt.c b/src/mame/drivers/timelimt.c
index 68f276c3b06..41cd46d69f1 100644
--- a/src/mame/drivers/timelimt.c
+++ b/src/mame/drivers/timelimt.c
@@ -44,7 +44,7 @@ static WRITE8_HANDLER( sound_reset_w )
/***************************************************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, timelimt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* rom */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* ram */
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(timelimt_videoram_w) AM_BASE_MEMBER(timelimt_state, m_videoram) /* video ram */
@@ -64,17 +64,17 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xc804, 0xc804) AM_WRITENOP /* ???? not used */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( main_io_map, AS_IO, 8, timelimt_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(watchdog_reset_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, timelimt_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x3800, 0x3bff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, timelimt_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(soundlatch_clear_w)
AM_RANGE(0x8c, 0x8d) AM_DEVREADWRITE("ay1", ay8910_r, ay8910_address_data_w)
diff --git a/src/mame/drivers/timeplt.c b/src/mame/drivers/timeplt.c
index 83f99eee9a1..cddce1df859 100644
--- a/src/mame/drivers/timeplt.c
+++ b/src/mame/drivers/timeplt.c
@@ -113,7 +113,7 @@ static READ8_HANDLER( psurge_protection_r )
*
*************************************/
-static ADDRESS_MAP_START( timeplt_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( timeplt_main_map, AS_PROGRAM, 8, timeplt_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE(timeplt_colorram_w) AM_BASE_MEMBER(timeplt_state, m_colorram)
@@ -136,7 +136,7 @@ static ADDRESS_MAP_START( timeplt_main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( psurge_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( psurge_main_map, AS_PROGRAM, 8, timeplt_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6004, 0x6004) AM_READ(psurge_protection_r)
@@ -158,7 +158,7 @@ static ADDRESS_MAP_START( psurge_main_map, AS_PROGRAM, 8 )
AM_RANGE(0xc360, 0xc360) AM_MIRROR(0x0c9f) AM_READ_PORT("DSW0")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( chkun_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( chkun_main_map, AS_PROGRAM, 8, timeplt_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x67ff) AM_RAM
diff --git a/src/mame/drivers/timetrv.c b/src/mame/drivers/timetrv.c
index 9954e05a6ae..30a386db8df 100644
--- a/src/mame/drivers/timetrv.c
+++ b/src/mame/drivers/timetrv.c
@@ -73,13 +73,13 @@ static READ8_HANDLER( ld_r )
return space->machine().rand();
}
-static ADDRESS_MAP_START( timetrv_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( timetrv_map, AS_PROGRAM, 8, timetrv_state )
AM_RANGE(0x00000, 0x0ffff) AM_RAM //irq vectors + work ram
AM_RANGE(0x10000, 0x107ff) AM_RAM
AM_RANGE(0xc0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( timetrv_io, AS_IO, 8 )
+static ADDRESS_MAP_START( timetrv_io, AS_IO, 8, timetrv_state )
AM_RANGE(0x0122, 0x0123) AM_WRITENOP //eeprom write bits
AM_RANGE(0x1000, 0x1000) AM_READ(test1_r) //inputs
AM_RANGE(0x1001, 0x1001) AM_READ(test2_r) //eeprom read bit + inputs
diff --git a/src/mame/drivers/tmaster.c b/src/mame/drivers/tmaster.c
index 30ccc788662..b9a8ddb22d5 100644
--- a/src/mame/drivers/tmaster.c
+++ b/src/mame/drivers/tmaster.c
@@ -505,7 +505,7 @@ static READ16_HANDLER( tmaster_coins_r )
return input_port_read(space->machine(), "COIN")|(space->machine().rand()&0x0800);
}
-static ADDRESS_MAP_START( tmaster_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tmaster_map, AS_PROGRAM, 16, tmaster_state )
AM_RANGE( 0x000000, 0x1fffff ) AM_ROM
AM_RANGE( 0x200000, 0x27ffff ) AM_RAM
AM_RANGE( 0x280000, 0x28ffef ) AM_RAM AM_SHARE("nvram")
@@ -729,7 +729,7 @@ static READ16_HANDLER( dummy_read_01 )
return 0x3; // Pass the check at PC = 0xfae & a later one
}
-static ADDRESS_MAP_START( galgames_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( galgames_map, AS_PROGRAM, 16, tmaster_state )
AM_RANGE( 0x000000, 0x03ffff ) AM_READ_BANK(GALGAMES_BANK_000000_R) AM_WRITE_BANK(GALGAMES_BANK_000000_W) AM_BASE_MEMBER(tmaster_state, m_galgames_ram )
AM_RANGE( 0x040000, 0x1fffff ) AM_ROM AM_REGION( "maincpu", 0x40000 )
diff --git a/src/mame/drivers/tmmjprd.c b/src/mame/drivers/tmmjprd.c
index 6f11c42a2f5..eb6b9a926c5 100644
--- a/src/mame/drivers/tmmjprd.c
+++ b/src/mame/drivers/tmmjprd.c
@@ -662,7 +662,7 @@ static WRITE32_HANDLER( tmmjprd_brt_2_w )
}
}
-static ADDRESS_MAP_START( tmmjprd_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( tmmjprd_map, AS_PROGRAM, 32, tmmjprd_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200010, 0x200013) AM_READ(randomtmmjprds) // gfx chip status?
AM_RANGE(0x200980, 0x200983) AM_READ(randomtmmjprds) // sound chip status?
diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c
index 85d6f252e76..3240aa061c9 100644
--- a/src/mame/drivers/tmnt.c
+++ b/src/mame/drivers/tmnt.c
@@ -575,7 +575,7 @@ static WRITE16_HANDLER( cuebrick_nvbank_w )
state->m_cuebrick_nvram_bank = data >> 8;
}
-static ADDRESS_MAP_START( cuebrick_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cuebrick_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_RAM /* main RAM */
AM_RANGE(0x060000, 0x063fff) AM_RAM /* main RAM */
@@ -596,7 +596,7 @@ static ADDRESS_MAP_START( cuebrick_main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mia_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mia_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_RAM /* main RAM */
AM_RANGE(0x060000, 0x063fff) AM_RAM /* main RAM */
@@ -618,7 +618,7 @@ static ADDRESS_MAP_START( mia_main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tmnt_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tmnt_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x063fff) AM_RAM /* main RAM */
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(tmnt_paletteram_word_w) AM_BASE_GENERIC(paletteram)
@@ -639,7 +639,7 @@ static ADDRESS_MAP_START( tmnt_main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( punkshot_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( punkshot_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM /* main RAM */
AM_RANGE(0x090000, 0x090fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
@@ -659,7 +659,7 @@ static ADDRESS_MAP_START( punkshot_main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lgtnfght_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( lgtnfght_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x090000, 0x093fff) AM_RAM /*main RAM */
@@ -688,7 +688,7 @@ static WRITE16_HANDLER( ssriders_soundkludge_w )
device_set_input_line_and_vector(state->m_audiocpu, 0, HOLD_LINE, 0xff);
}
-static ADDRESS_MAP_START( blswhstl_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( blswhstl_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x180000, 0x183fff) AM_DEVREADWRITE("k052109", k052109_word_r, k052109_word_w)
AM_RANGE(0x204000, 0x207fff) AM_RAM /* main RAM */
@@ -732,7 +732,7 @@ static WRITE16_HANDLER( k053251_glfgreat_w )
}
}
-static ADDRESS_MAP_START( glfgreat_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( glfgreat_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */
AM_RANGE(0x104000, 0x107fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE_MEMBER(tmnt_state, m_spriteram)
@@ -756,7 +756,7 @@ static ADDRESS_MAP_START( glfgreat_main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( prmrsocr_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( prmrsocr_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */
AM_RANGE(0x104000, 0x107fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE_MEMBER(tmnt_state, m_spriteram)
@@ -1021,7 +1021,7 @@ logerror("copy command %04x sprite %08x data %08x: %04x%04x %04x%04x modifiers
}
#endif
-static ADDRESS_MAP_START( tmnt2_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tmnt2_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_BASE_MEMBER(tmnt_state, m_tmnt2_rom)
AM_RANGE(0x104000, 0x107fff) AM_RAM AM_BASE_MEMBER(tmnt_state, m_sunset_104000) /* main RAM */
AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
@@ -1047,7 +1047,7 @@ static ADDRESS_MAP_START( tmnt2_main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ssriders_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ssriders_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x104000, 0x107fff) AM_RAM /* main RAM */
AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
@@ -1073,7 +1073,7 @@ static ADDRESS_MAP_START( ssriders_main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sunsetbl_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sunsetbl_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x104000, 0x107fff) AM_RAM /* main RAM */
AM_RANGE(0x14c000, 0x14cfff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
@@ -1099,7 +1099,7 @@ static ADDRESS_MAP_START( sunsetbl_main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( thndrx2_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( thndrx2_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */
AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
@@ -1118,7 +1118,7 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( mia_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mia_audio_map, AS_PROGRAM, 8, tmnt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
@@ -1127,7 +1127,7 @@ static ADDRESS_MAP_START( mia_audio_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tmnt_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tmnt_audio_map, AS_PROGRAM, 8, tmnt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_READWRITE(tmnt_sres_r, tmnt_sres_w) /* title music & UPD7759C reset */
@@ -1140,7 +1140,7 @@ static ADDRESS_MAP_START( tmnt_audio_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( punkshot_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( punkshot_audio_map, AS_PROGRAM, 8, tmnt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -1149,7 +1149,7 @@ static ADDRESS_MAP_START( punkshot_audio_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lgtnfght_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( lgtnfght_audio_map, AS_PROGRAM, 8, tmnt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -1157,7 +1157,7 @@ static ADDRESS_MAP_START( lgtnfght_audio_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( glfgreat_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( glfgreat_audio_map, AS_PROGRAM, 8, tmnt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf82f) AM_DEVREADWRITE("k053260", k053260_r, k053260_w)
@@ -1165,7 +1165,7 @@ static ADDRESS_MAP_START( glfgreat_audio_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ssriders_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ssriders_audio_map, AS_PROGRAM, 8, tmnt_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -1174,7 +1174,7 @@ static ADDRESS_MAP_START( ssriders_audio_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( thndrx2_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( thndrx2_audio_map, AS_PROGRAM, 8, tmnt_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf801) AM_MIRROR(0x0010) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -1193,7 +1193,7 @@ static WRITE8_HANDLER( k054539_ctrl_w )
space->machine().device<k054539_device>("k054539")->write(*space, 0x200 + offset, data, 0xff);
}
-static ADDRESS_MAP_START( prmrsocr_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( prmrsocr_audio_map, AS_PROGRAM, 8, tmnt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_RAM
diff --git a/src/mame/drivers/tmspoker.c b/src/mame/drivers/tmspoker.c
index f4073002b71..1ae1354eb02 100644
--- a/src/mame/drivers/tmspoker.c
+++ b/src/mame/drivers/tmspoker.c
@@ -309,7 +309,7 @@ static MACHINE_RESET( tmspoker )
* Memory Map Information *
*************************/
//59a
-static ADDRESS_MAP_START( tmspoker_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tmspoker_map, AS_PROGRAM, 8, tmspoker_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x0fff) AM_ROMBANK("bank1")
AM_RANGE(0x2800, 0x2800) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
@@ -326,7 +326,7 @@ static READ8_HANDLER(unk_r)
return 0;//0xff;//mame_rand(space->machine);
}
-static ADDRESS_MAP_START( tmspoker_cru_map, AS_IO, 8 )
+static ADDRESS_MAP_START( tmspoker_cru_map, AS_IO, 8, tmspoker_state )
AM_RANGE(0x0000, 0xffff) AM_READ(unk_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c
index 1149355bec7..9c8b511a1d8 100644
--- a/src/mame/drivers/tnzs.c
+++ b/src/mame/drivers/tnzs.c
@@ -748,7 +748,7 @@ static WRITE8_DEVICE_HANDLER( kabukiz_sample_w )
dac_data_w(device, data);
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_RAMBANK("bank1") /* ROM + RAM */
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_DEVREADWRITE("spritegen", spritecodelow_r8, spritecodelow_w8)
@@ -764,7 +764,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xfbff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu0_type2, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu0_type2, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_RAMBANK("bank1") /* ROM + RAM */
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_DEVREADWRITE("spritegen", spritecodelow_r8, spritecodelow_w8)
@@ -778,7 +778,7 @@ static ADDRESS_MAP_START( cpu0_type2, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xfbff) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2")
AM_RANGE(0xa000, 0xa000) AM_WRITE(tnzs_bankswitch1_w)
@@ -791,7 +791,7 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8 )
/* all by insectx. */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kageki_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kageki_sub_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2")
AM_RANGE(0xa000, 0xa000) AM_WRITE(tnzs_bankswitch1_w)
@@ -812,7 +812,7 @@ static WRITE8_HANDLER( tnzsb_sound_command_w )
device_set_input_line_and_vector(state->m_audiocpu, 0, HOLD_LINE, 0xff);
}
-static ADDRESS_MAP_START( tnzsb_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tnzsb_cpu1_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2")
AM_RANGE(0xa000, 0xa000) AM_WRITE(tnzs_bankswitch1_w)
@@ -828,7 +828,7 @@ static ADDRESS_MAP_START( tnzsb_cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf3ff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kabukiz_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kabukiz_cpu1_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2")
AM_RANGE(0xa000, 0xa000) AM_WRITE(tnzs_bankswitch1_w)
@@ -843,24 +843,24 @@ static ADDRESS_MAP_START( kabukiz_cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0xf800, 0xfbff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tnzsb_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tnzsb_cpu2_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kabukiz_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kabukiz_cpu2_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank3")
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tnzsb_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( tnzsb_io_map, AS_IO, 8, tnzs_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0x02, 0x02) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( i8742_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( i8742_io_map, AS_IO, 8, tnzs_state )
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READ(tnzs_port1_r)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(tnzs_port2_r, tnzs_port2_w)
AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ_PORT("COIN1")
@@ -888,7 +888,7 @@ static WRITE8_HANDLER( jpopnics_palette_w )
-static ADDRESS_MAP_START( jpopnics_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jpopnics_main_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_DEVREADWRITE("spritegen", spritecodelow_r8, spritecodelow_w8)
@@ -907,7 +907,7 @@ static WRITE8_HANDLER( jpopnics_subbankswitch_w )
memory_set_bank(space->machine(), "bank2", data & 0x03);
}
-static ADDRESS_MAP_START( jpopnics_sub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jpopnics_sub_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2")
diff --git a/src/mame/drivers/toaplan1.c b/src/mame/drivers/toaplan1.c
index f80465dca00..40f300de938 100644
--- a/src/mame/drivers/toaplan1.c
+++ b/src/mame/drivers/toaplan1.c
@@ -369,7 +369,7 @@ Vimana 55.14 ?
/***************************** 68000 Memory Map *****************************/
-static ADDRESS_MAP_START( rallybik_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( rallybik_main_map, AS_PROGRAM, 16, toaplan1_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x040000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM
@@ -389,7 +389,7 @@ static ADDRESS_MAP_START( rallybik_main_map, AS_PROGRAM, 16 )
AM_RANGE(0x1c8000, 0x1c8001) AM_WRITE(toaplan1_reset_sound)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( truxton_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( truxton_main_map, AS_PROGRAM, 16, toaplan1_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM
AM_RANGE(0x0c0000, 0x0c0001) AM_READ(toaplan1_frame_done_r)
@@ -412,7 +412,7 @@ static ADDRESS_MAP_START( truxton_main_map, AS_PROGRAM, 16 )
AM_RANGE(0x1d0000, 0x1d0001) AM_WRITE(toaplan1_reset_sound)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hellfire_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hellfire_main_map, AS_PROGRAM, 16, toaplan1_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x047fff) AM_RAM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("VBLANK")
@@ -435,7 +435,7 @@ static ADDRESS_MAP_START( hellfire_main_map, AS_PROGRAM, 16 )
AM_RANGE(0x180008, 0x180009) AM_WRITE(toaplan1_reset_sound)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( zerowing_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( zerowing_main_map, AS_PROGRAM, 16, toaplan1_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x040000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x087fff) AM_RAM
@@ -458,7 +458,7 @@ static ADDRESS_MAP_START( zerowing_main_map, AS_PROGRAM, 16 )
AM_RANGE(0x4c0006, 0x4c0007) AM_READWRITE(toaplan1_spritesizeram16_r, toaplan1_spritesizeram16_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( demonwld_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( demonwld_main_map, AS_PROGRAM, 16, toaplan1_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x400000, 0x400001) AM_READ_PORT("VBLANK")
// AM_RANGE(0x400000, 0x400001) AM_WRITE(?? video frame related ??)
@@ -482,7 +482,7 @@ static ADDRESS_MAP_START( demonwld_main_map, AS_PROGRAM, 16 )
AM_RANGE(0xe0000a, 0xe0000b) AM_WRITE(demonwld_dsp_ctrl_w) /* DSP Comms control */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( samesame_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( samesame_main_map, AS_PROGRAM, 16, toaplan1_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x040000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080003) AM_WRITE(toaplan1_tile_offsets_w)
@@ -513,7 +513,7 @@ static ADDRESS_MAP_START( samesame_main_map, AS_PROGRAM, 16 )
AM_RANGE(0x1c0006, 0x1c0007) AM_READWRITE(toaplan1_spritesizeram16_r, toaplan1_spritesizeram16_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( outzone_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( outzone_main_map, AS_PROGRAM, 16, toaplan1_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_READ(toaplan1_frame_done_r)
AM_RANGE(0x100002, 0x100003) AM_READWRITE(toaplan1_spriteram_offs_r, toaplan1_spriteram_offs_w)
@@ -535,7 +535,7 @@ static ADDRESS_MAP_START( outzone_main_map, AS_PROGRAM, 16 )
AM_RANGE(0x340006, 0x340007) AM_WRITE(toaplan1_fcu_flipscreen_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( vimana_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( vimana_main_map, AS_PROGRAM, 16, toaplan1_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x080003) AM_WRITE(toaplan1_tile_offsets_w)
AM_RANGE(0x080006, 0x080007) AM_WRITE(toaplan1_fcu_flipscreen_w)
@@ -566,12 +566,12 @@ ADDRESS_MAP_END
/***************************** Z80 Memory Map *******************************/
-static ADDRESS_MAP_START( toaplan1_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( toaplan1_sound_map, AS_PROGRAM, 8, toaplan1_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xffff) AM_RAM AM_BASE_MEMBER(toaplan1_state, m_sharedram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rallybik_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( rallybik_sound_io_map, AS_IO, 8, toaplan1_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
AM_RANGE(0x10, 0x10) AM_READ_PORT("P2")
@@ -582,7 +582,7 @@ static ADDRESS_MAP_START( rallybik_sound_io_map, AS_IO, 8 )
AM_RANGE(0x60, 0x61) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( truxton_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( truxton_sound_io_map, AS_IO, 8, toaplan1_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
AM_RANGE(0x10, 0x10) AM_READ_PORT("P2")
@@ -594,7 +594,7 @@ static ADDRESS_MAP_START( truxton_sound_io_map, AS_IO, 8 )
AM_RANGE(0x70, 0x70) AM_READ_PORT("TJUMP")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hellfire_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( hellfire_sound_io_map, AS_IO, 8, toaplan1_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSWA")
AM_RANGE(0x10, 0x10) AM_READ_PORT("DSWB")
@@ -606,7 +606,7 @@ static ADDRESS_MAP_START( hellfire_sound_io_map, AS_IO, 8 )
AM_RANGE(0x70, 0x71) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( zerowing_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( zerowing_sound_io_map, AS_IO, 8, toaplan1_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
AM_RANGE(0x08, 0x08) AM_READ_PORT("P2")
@@ -618,7 +618,7 @@ static ADDRESS_MAP_START( zerowing_sound_io_map, AS_IO, 8 )
AM_RANGE(0xa8, 0xa9) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( demonwld_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( demonwld_sound_io_map, AS_IO, 8, toaplan1_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x20, 0x20) AM_READ_PORT("TJUMP")
@@ -630,7 +630,7 @@ static ADDRESS_MAP_START( demonwld_sound_io_map, AS_IO, 8 )
AM_RANGE(0xe0, 0xe0) AM_READ_PORT("DSWA")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( outzone_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( outzone_sound_io_map, AS_IO, 8, toaplan1_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x04, 0x04) AM_WRITE(toaplan1_coin_w) /* Coin counter/lockout */
@@ -645,13 +645,13 @@ ADDRESS_MAP_END
/***************************** TMS32010 Memory Map **************************/
-static ADDRESS_MAP_START( DSP_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( DSP_program_map, AS_PROGRAM, 16, toaplan1_state )
AM_RANGE(0x000, 0x7ff) AM_ROM
ADDRESS_MAP_END
/* $000 - 08F TMS32010 Internal Data RAM in Data Address Space */
-static ADDRESS_MAP_START( DSP_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( DSP_io_map, AS_IO, 16, toaplan1_state )
AM_RANGE(0, 0) AM_WRITE(demonwld_dsp_addrsel_w)
AM_RANGE(1, 1) AM_READWRITE(demonwld_dsp_r, demonwld_dsp_w)
AM_RANGE(3, 3) AM_WRITE(demonwld_dsp_bio_w)
@@ -661,7 +661,7 @@ ADDRESS_MAP_END
/***************************** HD647180 Memory Map **************************/
-static ADDRESS_MAP_START( hd647180_mem_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hd647180_mem_map, AS_PROGRAM, 8, toaplan1_state )
AM_RANGE(0x00000, 0x03fff) AM_ROM /* Internal 16k byte ROM */
AM_RANGE(0x0fe00, 0x0ffff) AM_RAM /* Internal 512 byte RAM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c
index b2a33d739e6..9037a64d88c 100644
--- a/src/mame/drivers/toaplan2.c
+++ b/src/mame/drivers/toaplan2.c
@@ -1045,7 +1045,7 @@ static INTERRUPT_GEN( bbakraid_snd_interrupt )
-static ADDRESS_MAP_START( tekipaki_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tekipaki_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x020000, 0x03ffff) AM_ROM // extra for Whoopee
AM_RANGE(0x080000, 0x082fff) AM_RAM
@@ -1062,7 +1062,7 @@ static ADDRESS_MAP_START( tekipaki_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ghox_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ghox_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x040001) AM_READ(ghox_p2_h_analog_r)
AM_RANGE(0x080000, 0x083fff) AM_RAM
@@ -1081,7 +1081,7 @@ static ADDRESS_MAP_START( ghox_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dogyuun_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dogyuun_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x200010, 0x200011) AM_READ_PORT("IN1")
@@ -1096,7 +1096,7 @@ static ADDRESS_MAP_START( dogyuun_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kbash_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( kbash_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x200000, 0x200fff) AM_READWRITE( shared_ram_r, shared_ram_w )
@@ -1110,7 +1110,7 @@ static ADDRESS_MAP_START( kbash_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kbash2_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( kbash2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x104000, 0x10401f) AM_RAM // Sound related?
@@ -1131,7 +1131,7 @@ static ADDRESS_MAP_START( kbash2_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( truxton2_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( truxton2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x20000d) AM_DEVREADWRITE("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
@@ -1155,7 +1155,7 @@ static ADDRESS_MAP_START( truxton2_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pipibibs_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pipibibs_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x082fff) AM_RAM
AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
@@ -1171,7 +1171,7 @@ static ADDRESS_MAP_START( pipibibs_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
// odd scroll registers
-static ADDRESS_MAP_START( pipibibi_bootleg_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pipibibi_bootleg_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x082fff) AM_RAM
AM_RANGE(0x083000, 0x0837ff) AM_DEVREADWRITE("gp9001vdp0", pipibibi_bootleg_spriteram16_r, pipibibi_bootleg_spriteram16_w) // SpriteRAM
@@ -1193,7 +1193,7 @@ static ADDRESS_MAP_START( pipibibi_bootleg_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fixeight_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( fixeight_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x200000, 0x200001) AM_READ_PORT("IN1")
@@ -1213,7 +1213,7 @@ static ADDRESS_MAP_START( fixeight_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fixeightbl_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( fixeightbl_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // 0-7ffff ?
AM_RANGE(0x100000, 0x10ffff) AM_RAM // 100000-107fff 105000-105xxx 106000-106xxx 108000 - related to sound ?
AM_RANGE(0x200000, 0x200001) AM_READ_PORT("IN1")
@@ -1234,7 +1234,7 @@ static ADDRESS_MAP_START( fixeightbl_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( vfive_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( vfive_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
// AM_RANGE(0x200000, 0x20ffff) AM_NOP // Read at startup by broken ROM checksum code - see notes
@@ -1249,7 +1249,7 @@ static ADDRESS_MAP_START( vfive_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( batsugun_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( batsugun_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200010, 0x200011) AM_READ_PORT("IN1")
@@ -1264,7 +1264,7 @@ static ADDRESS_MAP_START( batsugun_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( snowbro2_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( snowbro2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
@@ -1284,7 +1284,7 @@ static ADDRESS_MAP_START( snowbro2_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mahoudai_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( mahoudai_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x218000, 0x21bfff) AM_READWRITE(shared_ram_r, shared_ram_w)
@@ -1307,7 +1307,7 @@ static ADDRESS_MAP_START( mahoudai_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( shippumd_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( shippumd_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x218000, 0x21bfff) AM_READWRITE(shared_ram_r, shared_ram_w)
@@ -1331,7 +1331,7 @@ static ADDRESS_MAP_START( shippumd_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bgaregga_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bgaregga_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x218000, 0x21bfff) AM_READWRITE(shared_ram_r, shared_ram_w)
@@ -1354,7 +1354,7 @@ static ADDRESS_MAP_START( bgaregga_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( batrider_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( batrider_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
// actually 200000 - 20ffff is probably all main RAM, and the text and palette RAM are written via DMA
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_BASE_SIZE_MEMBER(toaplan2_state, m_txvideoram16, m_tx_vram_size)
@@ -1384,7 +1384,7 @@ static ADDRESS_MAP_START( batrider_68k_mem, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bbakraid_68k_mem, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( bbakraid_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
// actually 200000 - 20ffff is probably all main RAM, and the text and palette RAM are written via DMA
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_BASE_SIZE_MEMBER(toaplan2_state, m_txvideoram16, m_tx_vram_size)
@@ -1415,14 +1415,14 @@ ADDRESS_MAP_END
-static ADDRESS_MAP_START( pipibibs_sound_z80_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( pipibibs_sound_z80_mem, AS_PROGRAM, 8, toaplan2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_MEMBER(toaplan2_state, m_shared_ram)
AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( raizing_sound_z80_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( raizing_sound_z80_mem, AS_PROGRAM, 8, toaplan2_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE_MEMBER(toaplan2_state, m_shared_ram)
AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -1431,7 +1431,7 @@ static ADDRESS_MAP_START( raizing_sound_z80_mem, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bgaregga_sound_z80_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bgaregga_sound_z80_mem, AS_PROGRAM, 8, toaplan2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE_MEMBER(toaplan2_state, m_shared_ram)
@@ -1445,14 +1445,14 @@ static ADDRESS_MAP_START( bgaregga_sound_z80_mem, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( batrider_sound_z80_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( batrider_sound_z80_mem, AS_PROGRAM, 8, toaplan2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( batrider_sound_z80_port, AS_IO, 8 )
+static ADDRESS_MAP_START( batrider_sound_z80_port, AS_IO, 8, toaplan2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_WRITE(soundlatch3_w)
AM_RANGE(0x42, 0x42) AM_WRITE(soundlatch4_w)
@@ -1468,13 +1468,13 @@ static ADDRESS_MAP_START( batrider_sound_z80_port, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bbakraid_sound_z80_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bbakraid_sound_z80_mem, AS_PROGRAM, 8, toaplan2_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM // No banking? ROM only contains code and data up to 0x28DC
AM_RANGE(0xc000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bbakraid_sound_z80_port, AS_IO, 8 )
+static ADDRESS_MAP_START( bbakraid_sound_z80_port, AS_IO, 8, toaplan2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_WRITE(soundlatch3_w)
AM_RANGE(0x42, 0x42) AM_WRITE(soundlatch4_w)
@@ -1487,21 +1487,21 @@ ADDRESS_MAP_END
#ifdef USE_HD64x180
-static ADDRESS_MAP_START( hd647180_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hd647180_mem, AS_PROGRAM, 8, toaplan2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xfe00, 0xffff) AM_RAM // Internal 512 bytes of RAM
ADDRESS_MAP_END
#endif
-static ADDRESS_MAP_START( v25_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( v25_mem, AS_PROGRAM, 8, toaplan2_state )
AM_RANGE(0x00000, 0x00001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x00004, 0x00004) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
AM_RANGE(0x80000, 0x87fff) AM_MIRROR(0x78000) AM_RAM AM_BASE_MEMBER(toaplan2_state, m_shared_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kbash_v25_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kbash_v25_mem, AS_PROGRAM, 8, toaplan2_state )
AM_RANGE(0x00000, 0x007ff) AM_RAM AM_BASE_MEMBER(toaplan2_state, m_shared_ram)
AM_RANGE(0x04000, 0x04001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x04002, 0x04002) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
@@ -1509,7 +1509,7 @@ static ADDRESS_MAP_START( kbash_v25_mem, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fixeight_v25_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fixeight_v25_mem, AS_PROGRAM, 8, toaplan2_state )
AM_RANGE(0x00004, 0x00004) AM_READ(fixeight_region_r)
AM_RANGE(0x0000a, 0x0000b) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x0000c, 0x0000c) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
@@ -1517,13 +1517,13 @@ static ADDRESS_MAP_START( fixeight_v25_mem, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( vfive_v25_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( vfive_v25_mem, AS_PROGRAM, 8, toaplan2_state )
AM_RANGE(0x00000, 0x00001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x80000, 0x87fff) AM_MIRROR(0x78000) AM_RAM AM_BASE_MEMBER(toaplan2_state, m_shared_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( v25_port, AS_IO, 8 )
+static ADDRESS_MAP_START( v25_port, AS_IO, 8, toaplan2_state )
AM_RANGE(V25_PORT_PT, V25_PORT_PT) AM_READ(v25_dswa_r)
AM_RANGE(V25_PORT_P0, V25_PORT_P0) AM_READ(v25_dswb_r)
AM_RANGE(V25_PORT_P1, V25_PORT_P1) AM_READ(v25_jmpr_r)
@@ -1531,7 +1531,7 @@ static ADDRESS_MAP_START( v25_port, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dogyuun_v25_port, AS_IO, 8 )
+static ADDRESS_MAP_START( dogyuun_v25_port, AS_IO, 8, toaplan2_state )
AM_RANGE(V25_PORT_PT, V25_PORT_PT) AM_READ(v25_dswb_r)
AM_RANGE(V25_PORT_P0, V25_PORT_P0) AM_READ(v25_dswa_r)
AM_RANGE(V25_PORT_P1, V25_PORT_P1) AM_READ(v25_jmpr_r)
@@ -1539,12 +1539,12 @@ static ADDRESS_MAP_START( dogyuun_v25_port, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fixeight_v25_port, AS_IO, 8 )
+static ADDRESS_MAP_START( fixeight_v25_port, AS_IO, 8, toaplan2_state )
AM_RANGE(V25_PORT_P0, V25_PORT_P0) AM_READWRITE_PORT("EEPROM")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fixeightbl_oki, AS_0, 8 )
+static ADDRESS_MAP_START( fixeightbl_oki, AS_0, 8, toaplan2_state )
AM_RANGE(0x00000, 0x2ffff) AM_ROM
AM_RANGE(0x30000, 0x3ffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
diff --git a/src/mame/drivers/toki.c b/src/mame/drivers/toki.c
index e588de39b61..36669de69c4 100644
--- a/src/mame/drivers/toki.c
+++ b/src/mame/drivers/toki.c
@@ -90,7 +90,7 @@ static WRITE8_HANDLER( toki_adpcm_data_w )
/*****************************************************************************/
-static ADDRESS_MAP_START( toki_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( toki_map, AS_PROGRAM, 16, toki_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x06d7ff) AM_RAM
AM_RANGE(0x06d800, 0x06dfff) AM_RAM AM_SHARE("spriteram")
@@ -106,7 +106,7 @@ static ADDRESS_MAP_START( toki_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
/* In the bootleg, sound and sprites are remapped to 0x70000 */
-static ADDRESS_MAP_START( tokib_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tokib_map, AS_PROGRAM, 16, toki_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x06dfff) AM_RAM
AM_RANGE(0x06e000, 0x06e7ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
@@ -130,7 +130,7 @@ ADDRESS_MAP_END
/*****************************************************************************/
-static ADDRESS_MAP_START( tokib_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tokib_audio_map, AS_PROGRAM, 8, toki_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("msm", toki_adpcm_control_w) /* MSM5205 + ROM bank */
diff --git a/src/mame/drivers/tomcat.c b/src/mame/drivers/tomcat.c
index dde9ab84322..3c959c0e23f 100644
--- a/src/mame/drivers/tomcat.c
+++ b/src/mame/drivers/tomcat.c
@@ -254,7 +254,7 @@ static WRITE8_HANDLER(tomcat_nvram_w)
state->m_nvram[offset] = data;
}
-static ADDRESS_MAP_START( tomcat_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tomcat_map, AS_PROGRAM, 16, tomcat_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x402000, 0x402001) AM_READ(tomcat_adcread_r) AM_WRITE(tomcat_adcon_w)
AM_RANGE(0x404000, 0x404001) AM_READ(tomcat_inputs_r) AM_WRITE(avgdvg_go_word_w)
@@ -284,11 +284,11 @@ static ADDRESS_MAP_START( tomcat_map, AS_PROGRAM, 16 )
AM_RANGE(0xffd000, 0xffdfff) AM_READWRITE8(tomcat_nvram_r, tomcat_nvram_w, 0x00ff)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dsp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( dsp_map, AS_PROGRAM, 16, tomcat_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_MEMBER(tomcat_state, m_shared_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dsp_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( dsp_io_map, AS_IO, 16, tomcat_state )
AM_RANGE(TMS32010_BIO, TMS32010_BIO) AM_READ(dsp_BIO_r)
ADDRESS_MAP_END
@@ -306,7 +306,7 @@ static WRITE8_HANDLER(soundlatches_w)
}
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, tomcat_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x3000, 0x30df) AM_WRITE(soundlatches_w)
diff --git a/src/mame/drivers/tonton.c b/src/mame/drivers/tonton.c
index db8b56dbdb1..79ee5ba3523 100644
--- a/src/mame/drivers/tonton.c
+++ b/src/mame/drivers/tonton.c
@@ -82,13 +82,13 @@ static WRITE8_HANDLER( tonton_outport_w )
* Memory Map *
*************************************************/
-static ADDRESS_MAP_START( tonton_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tonton_map, AS_PROGRAM, 8, tonton_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe3ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tonton_io, AS_IO, 8 )
+static ADDRESS_MAP_START( tonton_io, AS_IO, 8, tonton_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/toobin.c b/src/mame/drivers/toobin.c
index 553305b7fd8..de4dee20376 100644
--- a/src/mame/drivers/toobin.c
+++ b/src/mame/drivers/toobin.c
@@ -107,7 +107,7 @@ static READ16_HANDLER( special_port1_r )
*************************************/
/* full address map decoded from schematics */
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, toobin_state )
ADDRESS_MAP_GLOBAL_MASK(0xc7ffff)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0xc00000, 0xc07fff) AM_RAM_WRITE(atarigen_playfield_large_w) AM_BASE_MEMBER(toobin_state, m_playfield)
diff --git a/src/mame/drivers/topspeed.c b/src/mame/drivers/topspeed.c
index ea1ea739ef1..f01ad04fb5d 100644
--- a/src/mame/drivers/topspeed.c
+++ b/src/mame/drivers/topspeed.c
@@ -442,7 +442,7 @@ static WRITE8_DEVICE_HANDLER( topspeed_msm5205_stop_w )
***********************************************************/
-static ADDRESS_MAP_START( topspeed_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( topspeed_map, AS_PROGRAM, 16, topspeed_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE_SIZE_MEMBER(topspeed_state, m_sharedram, m_sharedram_size)
AM_RANGE(0x500000, 0x503fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
@@ -463,7 +463,7 @@ static ADDRESS_MAP_START( topspeed_map, AS_PROGRAM, 16 )
AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_BASE_MEMBER(topspeed_state, m_spritemap)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( topspeed_cpub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( topspeed_cpub_map, AS_PROGRAM, 16, topspeed_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x400000, 0X40ffff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE_MEMBER(topspeed_state, m_sharedram)
AM_RANGE(0x880000, 0x880001) AM_READ8(topspeed_input_bypass_r, 0x00ff) AM_DEVWRITE8("tc0220ioc", tc0220ioc_portreg_w, 0x00ff)
@@ -474,7 +474,7 @@ ADDRESS_MAP_END
/***************************************************************************/
-static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8, topspeed_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10")
AM_RANGE(0x8000, 0x8fff) AM_RAM
diff --git a/src/mame/drivers/toratora.c b/src/mame/drivers/toratora.c
index 52db67c1bca..a447555e2cf 100644
--- a/src/mame/drivers/toratora.c
+++ b/src/mame/drivers/toratora.c
@@ -308,7 +308,7 @@ static const pia6821_interface pia_u3_intf =
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, toratora_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x7fff) AM_ROM /* not fully populated */
AM_RANGE(0x8000, 0x9fff) AM_RAM AM_BASE_SIZE_MEMBER(toratora_state, m_videoram, m_videoram_size)
diff --git a/src/mame/drivers/tourtabl.c b/src/mame/drivers/tourtabl.c
index b8d72ea932c..ba6632803a5 100644
--- a/src/mame/drivers/tourtabl.c
+++ b/src/mame/drivers/tourtabl.c
@@ -49,7 +49,7 @@ static READ8_HANDLER( tourtabl_get_databus_contents )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tourtabl_state )
AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x0100) AM_READWRITE(tia_r, tia_w)
AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x0100) AM_RAM
AM_RANGE(0x0280, 0x029f) AM_DEVREADWRITE("riot1", riot6532_r, riot6532_w)
diff --git a/src/mame/drivers/tourvis.c b/src/mame/drivers/tourvis.c
index 53ef83f9a79..10108d447d2 100644
--- a/src/mame/drivers/tourvis.c
+++ b/src/mame/drivers/tourvis.c
@@ -272,7 +272,7 @@ static INPUT_PORTS_START( tourvision )
PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) // games slot status in bits 3 to 7
INPUT_PORTS_END
-static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8)
+static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8, tourvision_state )
AM_RANGE( 0x000000, 0x0FFFFF) AM_ROM
AM_RANGE( 0x1F0000, 0x1F1FFF) AM_RAM AM_MIRROR(0x6000) AM_BASE( &pce_user_ram )
AM_RANGE( 0x1FE000, 0x1FE3FF) AM_READWRITE( vdc_0_r, vdc_0_w )
@@ -283,7 +283,7 @@ static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8)
AM_RANGE( 0x1FF400, 0x1FF7FF) AM_READWRITE( h6280_irq_status_r, h6280_irq_status_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pce_io , AS_IO, 8)
+static ADDRESS_MAP_START( pce_io , AS_IO, 8, tourvision_state )
AM_RANGE( 0x00, 0x03) AM_READWRITE( vdc_0_r, vdc_0_w )
ADDRESS_MAP_END
@@ -292,7 +292,7 @@ static WRITE8_HANDLER( tourvision_8085_d000_w )
//logerror( "D000 (8085) write %02x\n", data );
}
-static ADDRESS_MAP_START(tourvision_8085_map, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(tourvision_8085_map, AS_PROGRAM, 8, tourvision_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x80ff) AM_DEVREADWRITE_MODERN("i8155", i8155_device, memory_r, memory_w)
AM_RANGE(0x8100, 0x8107) AM_DEVREADWRITE_MODERN("i8155", i8155_device, io_r, io_w)
diff --git a/src/mame/drivers/toypop.c b/src/mame/drivers/toypop.c
index 30c5a0b2dbc..4457cfaa41e 100644
--- a/src/mame/drivers/toypop.c
+++ b/src/mame/drivers/toypop.c
@@ -195,7 +195,7 @@ static WRITE16_HANDLER( toypop_m68000_interrupt_disable_w )
*
*************************************/
-static ADDRESS_MAP_START( liblrabl_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( liblrabl_map, AS_PROGRAM, 8, toypop_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(toypop_videoram_w) AM_BASE_MEMBER(toypop_state,m_videoram) /* video RAM */
AM_RANGE(0x0800, 0x1fff) AM_RAM AM_BASE_MEMBER(toypop_state,m_spriteram) /* general RAM, area 1 */
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE_MEMBER(toypop_state,m_m68000_sharedram) /* shared RAM with the 68000 CPU */
@@ -213,7 +213,7 @@ static ADDRESS_MAP_START( liblrabl_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM code */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( toypop_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( toypop_map, AS_PROGRAM, 8, toypop_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(toypop_videoram_w) AM_BASE_MEMBER(toypop_state,m_videoram) /* video RAM */
AM_RANGE(0x0800, 0x1fff) AM_RAM AM_BASE_MEMBER(toypop_state,m_spriteram) /* general RAM, area 1 */
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE_MEMBER(toypop_state,m_m68000_sharedram) /* shared RAM with the 68000 CPU */
@@ -237,7 +237,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, toypop_state )
AM_RANGE(0x0000, 0x03ff) AM_DEVREADWRITE("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with the main CPU + sound registers */
AM_RANGE(0x2000, 0x2000) AM_WRITE(toypop_sound_interrupt_disable_w) /* ??? toypop doesn't write here */
AM_RANGE(0x4000, 0x4000) AM_WRITE(toypop_sound_interrupt_enable_acknowledge_w)
@@ -253,7 +253,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( m68k_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( m68k_map, AS_PROGRAM, 16, toypop_state )
AM_RANGE(0x000000, 0x007fff) AM_ROM /* ROM code */
AM_RANGE(0x080000, 0x0bffff) AM_RAM /* RAM */
AM_RANGE(0x100000, 0x100fff) AM_READWRITE(toypop_m68000_sharedram_r, toypop_m68000_sharedram_w) /* shared RAM with the main CPU */
diff --git a/src/mame/drivers/tp84.c b/src/mame/drivers/tp84.c
index e2cebd59ede..bfd9366589c 100644
--- a/src/mame/drivers/tp84.c
+++ b/src/mame/drivers/tp84.c
@@ -126,7 +126,7 @@ static WRITE8_HANDLER( tp84_sh_irqtrigger_w )
-static ADDRESS_MAP_START( tp84_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tp84_cpu1_map, AS_PROGRAM, 8, tp84_state )
AM_RANGE(0x2000, 0x2000) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x2800, 0x2800) AM_READ_PORT("SYSTEM") AM_WRITEONLY AM_BASE_MEMBER(tp84_state, m_palette_bank)
AM_RANGE(0x2820, 0x2820) AM_READ_PORT("P1")
@@ -147,7 +147,7 @@ static ADDRESS_MAP_START( tp84_cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tp84b_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tp84b_cpu1_map, AS_PROGRAM, 8, tp84_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_BASE_MEMBER(tp84_state, m_bg_videoram)
AM_RANGE(0x0400, 0x07ff) AM_RAM AM_BASE_MEMBER(tp84_state, m_fg_videoram)
AM_RANGE(0x0800, 0x0bff) AM_RAM AM_BASE_MEMBER(tp84_state, m_bg_colorram)
@@ -177,7 +177,7 @@ static WRITE8_HANDLER( sub_irq_mask_w )
}
-static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, tp84_state )
// AM_RANGE(0x0000, 0x0000) AM_RAM /* Watch dog ?*/
AM_RANGE(0x2000, 0x2000) AM_READ(tp84_scanline_r) /* beam position */
AM_RANGE(0x4000, 0x4000) AM_WRITE(sub_irq_mask_w)
@@ -188,7 +188,7 @@ static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, tp84_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/trackfld.c b/src/mame/drivers/trackfld.c
index 6411788684b..77c394fbbfa 100644
--- a/src/mame/drivers/trackfld.c
+++ b/src/mame/drivers/trackfld.c
@@ -224,7 +224,7 @@ static WRITE8_HANDLER( irq_mask_w )
state->m_irq_mask = data & 1;
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, trackfld_state )
AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x007f) AM_WRITE(watchdog_reset_w) /* AFE */
AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x0078) AM_WRITE(trackfld_flipscreen_w) /* FLIP */
AM_RANGE(0x1081, 0x1081) AM_MIRROR(0x0078) AM_WRITE(konami_sh_irqtrigger_w) /* 26 */ /* cause interrupt on audio CPU */
@@ -260,7 +260,7 @@ static WRITE8_HANDLER( yieartf_nmi_mask_w )
}
-static ADDRESS_MAP_START( yieartf_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( yieartf_map, AS_PROGRAM, 8, trackfld_state )
AM_RANGE(0x0000, 0x0000) AM_DEVREAD("vlm", yiear_speech_r) AM_WRITE(konami_SN76496_latch_w)
AM_RANGE(0x0001, 0x0001) AM_DEVWRITE("snsnd", konami_SN76496_w)
AM_RANGE(0x0002, 0x0002) AM_DEVWRITE("vlm", yiear_VLM5030_control_w)
@@ -292,7 +292,7 @@ static ADDRESS_MAP_START( yieartf_map, AS_PROGRAM, 8 )
AM_RANGE(0x6000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( reaktor_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( reaktor_map, AS_PROGRAM, 8, trackfld_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
/* all usual addresses +0x8000 */
AM_RANGE(0x9000, 0x9000) AM_WRITE(watchdog_reset_w)
@@ -319,7 +319,7 @@ static ADDRESS_MAP_START( reaktor_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* Reaktor reads / writes some I/O ports, no idea what they're connected to, if anything */
-static ADDRESS_MAP_START( reaktor_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( reaktor_io_map, AS_IO, 8, trackfld_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP
AM_RANGE(0x01, 0x01) AM_NOP
@@ -327,7 +327,7 @@ static ADDRESS_MAP_START( reaktor_io_map, AS_IO, 8 )
AM_RANGE(0x03, 0x03) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mastkin_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mastkin_map, AS_PROGRAM, 8, trackfld_state )
AM_RANGE(0x1000, 0x1000) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x10b0, 0x10b0) AM_WRITE(trackfld_flipscreen_w)
AM_RANGE(0x10b1, 0x10b1) AM_READNOP AM_WRITE(konami_sh_irqtrigger_w)
@@ -353,7 +353,7 @@ static ADDRESS_MAP_START( mastkin_map, AS_PROGRAM, 8 )
AM_RANGE(0x6000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wizzquiz_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wizzquiz_map, AS_PROGRAM, 8, trackfld_state )
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_READWRITE(watchdog_reset_r, watchdog_reset_w)
AM_RANGE(0x1080, 0x1080) AM_WRITE(trackfld_flipscreen_w)
@@ -388,7 +388,7 @@ READ8_DEVICE_HANDLER( trackfld_SN76496_r )
return 0xff; // ?
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, trackfld_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x1c00) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_READ(soundlatch_r)
@@ -402,7 +402,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xe004, 0xe004) AM_MIRROR(0x1ff8) AM_DEVWRITE("vlm", vlm5030_data_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hyprolyb_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hyprolyb_sound_map, AS_PROGRAM, 8, trackfld_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x1c00) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/travrusa.c b/src/mame/drivers/travrusa.c
index 8b6256a0ee8..9d3a233919c 100644
--- a/src/mame/drivers/travrusa.c
+++ b/src/mame/drivers/travrusa.c
@@ -53,7 +53,7 @@ and 2764 eprom (swapped D3/D4 and D5/D6 data lines)
#include "includes/travrusa.h"
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, travrusa_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(travrusa_videoram_w) AM_BASE_MEMBER(travrusa_state, m_videoram)
AM_RANGE(0x9000, 0x9000) AM_WRITE(travrusa_scroll_x_low_w)
diff --git a/src/mame/drivers/triforce.c b/src/mame/drivers/triforce.c
index 839c1d84fda..9e2a7c3f0ea 100644
--- a/src/mame/drivers/triforce.c
+++ b/src/mame/drivers/triforce.c
@@ -408,7 +408,15 @@ Notes:
#include "cpu/powerpc/ppc.h"
#include "machine/naomigd.h"
-static ADDRESS_MAP_START( gc_map, AS_PROGRAM, 32 )
+class triforce_state : public driver_device
+{
+public:
+ triforce_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ { }
+};
+
+static ADDRESS_MAP_START( gc_map, AS_PROGRAM, 32, triforce_state )
AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("maincpu", 0) AM_SHARE("share2") /* Program ROM */
ADDRESS_MAP_END
@@ -426,7 +434,7 @@ static SCREEN_UPDATE_RGB32(triforce)
static INPUT_PORTS_START( triforce )
INPUT_PORTS_END
-static MACHINE_CONFIG_START( triforce_base, driver_device )
+static MACHINE_CONFIG_START( triforce_base, triforce_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", PPC403GA, 64000000) /* Correct CPU is a PowerPC 750 (what Apple called "G3") with paired-single vector instructions added */
diff --git a/src/mame/drivers/triplhnt.c b/src/mame/drivers/triplhnt.c
index f7cb1e17610..1df76d3a189 100644
--- a/src/mame/drivers/triplhnt.c
+++ b/src/mame/drivers/triplhnt.c
@@ -135,7 +135,7 @@ static READ8_HANDLER( triplhnt_da_latch_r )
}
-static ADDRESS_MAP_START( triplhnt_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( triplhnt_map, AS_PROGRAM, 8, triplhnt_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x300)
AM_RANGE(0x0400, 0x04ff) AM_WRITEONLY AM_BASE_MEMBER(triplhnt_state, m_playfield_ram)
diff --git a/src/mame/drivers/truco.c b/src/mame/drivers/truco.c
index 9004e9b633d..84e7b724bcd 100644
--- a/src/mame/drivers/truco.c
+++ b/src/mame/drivers/truco.c
@@ -259,7 +259,7 @@ static WRITE8_DEVICE_HANDLER( pia_irqb_w )
* Memory Map *
*******************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, truco_state )
AM_RANGE(0x0000, 0x17ff) AM_RAM /* General purpose RAM */
AM_RANGE(0x1800, 0x7bff) AM_RAM AM_BASE_MEMBER(truco_state, m_videoram) /* Video RAM */
AM_RANGE(0x7c00, 0x7fff) AM_RAM AM_BASE_MEMBER(truco_state, m_battery_ram) /* Battery backed RAM */
diff --git a/src/mame/drivers/trucocl.c b/src/mame/drivers/trucocl.c
index ec17f410b50..c74d097bf5c 100644
--- a/src/mame/drivers/trucocl.c
+++ b/src/mame/drivers/trucocl.c
@@ -80,7 +80,7 @@ static WRITE8_DEVICE_HANDLER( audio_dac_w )
device->machine().scheduler().timer_set( attotime::from_hz( 16000 ), FUNC(dac_irq ));
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, trucocl_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM_WRITE(trucocl_videoram_w) AM_BASE_MEMBER(trucocl_state, m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_RAM_WRITE(trucocl_colorram_w) AM_BASE_MEMBER(trucocl_state, m_colorram)
diff --git a/src/mame/drivers/trvmadns.c b/src/mame/drivers/trvmadns.c
index d0b9cbd93c7..e5aa5877dad 100644
--- a/src/mame/drivers/trvmadns.c
+++ b/src/mame/drivers/trvmadns.c
@@ -208,7 +208,7 @@ static WRITE8_HANDLER( trvmadns_tileram_w )
}
-static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8, trvmadns_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_ROMBANK("bank1")
AM_RANGE(0x7000, 0x7fff) AM_ROMBANK("bank2")
@@ -220,7 +220,7 @@ static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8 )
AM_RANGE(0xe004, 0xe004) AM_WRITE(w3)//NOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( io_map, AS_IO, 8, trvmadns_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN0")
diff --git a/src/mame/drivers/trvquest.c b/src/mame/drivers/trvquest.c
index a6cba4cae02..a0c7ca5d4f3 100644
--- a/src/mame/drivers/trvquest.c
+++ b/src/mame/drivers/trvquest.c
@@ -58,7 +58,7 @@ static WRITE8_DEVICE_HANDLER( trvquest_misc_w )
// data & 1 -> led on/off ?
}
-static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8, gameplan_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram") // cmos ram
AM_RANGE(0x2000, 0x27ff) AM_RAM // main ram
AM_RANGE(0x3800, 0x380f) AM_DEVREADWRITE_MODERN("via6522_1", via6522_device, read, write)
diff --git a/src/mame/drivers/tryout.c b/src/mame/drivers/tryout.c
index 916a1532b9a..c0ae9f5bb35 100644
--- a/src/mame/drivers/tryout.c
+++ b/src/mame/drivers/tryout.c
@@ -52,7 +52,7 @@ static WRITE8_HANDLER( tryout_bankswitch_w )
memory_set_bankptr(space->machine(), "bank1", &RAM[bankaddress]);
}
-static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8, tryout_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x1000, 0x17ff) AM_RAM_WRITE(tryout_videoram_w) AM_BASE_MEMBER(tryout_state, m_videoram)
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
@@ -73,7 +73,7 @@ static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8 )
AM_RANGE(0xfff0, 0xffff) AM_ROM AM_REGION("maincpu", 0xbff0) /* reset vectors */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8, tryout_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x4000, 0x4001) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/tsamurai.c b/src/mame/drivers/tsamurai.c
index f9d971ed697..ef8c1c3fd78 100644
--- a/src/mame/drivers/tsamurai.c
+++ b/src/mame/drivers/tsamurai.c
@@ -110,7 +110,7 @@ static WRITE8_HANDLER( tsamurai_coin_counter_w )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
@@ -143,7 +143,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xfc03, 0xfc04) AM_WRITE(tsamurai_coin_counter_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m660_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( m660_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
@@ -178,19 +178,19 @@ static ADDRESS_MAP_START( m660_map, AS_PROGRAM, 8 )
AM_RANGE(0xfc07, 0xfc07) AM_WRITE(tsamurai_textbank2_w)/* Mission 660 uses a bit here */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( z80_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( z80_io_map, AS_IO, 8, tsamurai_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( z80_m660_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( z80_m660_io_map, AS_IO, 8, tsamurai_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP /* ? */
AM_RANGE(0x01, 0x01) AM_WRITENOP /* Written continuously. Increments with level. */
AM_RANGE(0x02, 0x02) AM_WRITENOP /* Always follows above with 0x01 data */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( vsgongf_audio_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( vsgongf_audio_io_map, AS_IO, 8, tsamurai_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
ADDRESS_MAP_END
@@ -214,7 +214,7 @@ static READ8_HANDLER( sound_command3_r )
}
/*******************************************************************************/
-static ADDRESS_MAP_START( sound1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound1_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x6000, 0x6000) AM_READ(sound_command1_r)
AM_RANGE(0x6001, 0x6001) AM_WRITENOP /* ? - probably clear IRQ */
@@ -224,7 +224,7 @@ ADDRESS_MAP_END
/*******************************************************************************/
-static ADDRESS_MAP_START( sound2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound2_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x6000, 0x6000) AM_READ(sound_command2_r)
AM_RANGE(0x6001, 0x6001) AM_WRITENOP /* ? - probably clear IRQ */
@@ -234,7 +234,7 @@ ADDRESS_MAP_END
/*******************************************************************************/
-static ADDRESS_MAP_START( sound1_m660_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound1_m660_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ(sound_command1_r)
AM_RANGE(0xc001, 0xc001) AM_WRITENOP /* ? - probably clear IRQ */
@@ -244,7 +244,7 @@ ADDRESS_MAP_END
/*******************************************************************************/
-static ADDRESS_MAP_START( sound2_m660_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound2_m660_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ(sound_command2_r)
AM_RANGE(0xc001, 0xc001) AM_WRITENOP /* ? - probably clear IRQ */
@@ -254,7 +254,7 @@ ADDRESS_MAP_END
/*******************************************************************************/
-static ADDRESS_MAP_START( sound3_m660_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound3_m660_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ(sound_command3_r)
AM_RANGE(0xc001, 0xc001) AM_WRITENOP /* ? - probably clear IRQ */
@@ -262,7 +262,7 @@ static ADDRESS_MAP_START( sound3_m660_map, AS_PROGRAM, 8 )
AM_RANGE(0xfffc, 0xffff) AM_RAM /* CPU writes here - music data */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound3_m660_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound3_m660_io_map, AS_IO, 8, tsamurai_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
ADDRESS_MAP_END
@@ -311,7 +311,7 @@ static WRITE8_HANDLER( vsgongf_sound_command_w )
cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
-static ADDRESS_MAP_START( vsgongf_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( vsgongf_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa003, 0xa003) AM_READONLY
AM_RANGE(0xa006, 0xa006) AM_READ(vsgongf_a006_r) /* protection */
@@ -338,7 +338,7 @@ static ADDRESS_MAP_START( vsgongf_map, AS_PROGRAM, 8 )
AM_RANGE(0xfc04, 0xfc04) AM_RAM_WRITE(tsamurai_textbank1_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_vsgongf_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_vsgongf_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_RAM /* work RAM */
AM_RANGE(0x8000, 0x8000) AM_READWRITE(soundlatch_r, vsgongf_sound_nmi_enable_w) /* NMI enable */
diff --git a/src/mame/drivers/ttchamp.c b/src/mame/drivers/ttchamp.c
index 6fb9261a347..8b150b279eb 100644
--- a/src/mame/drivers/ttchamp.c
+++ b/src/mame/drivers/ttchamp.c
@@ -131,14 +131,14 @@ static READ16_HANDLER( peno_rand2 )
}
#endif
-static ADDRESS_MAP_START( ttchamp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( ttchamp_map, AS_PROGRAM, 16, ttchamp_state )
AM_RANGE(0x00000, 0x0ffff) AM_RAM
AM_RANGE(0x10000, 0x1ffff) AM_RAM AM_BASE_MEMBER(ttchamp_state, m_peno_vram)
AM_RANGE(0x20000, 0x7ffff) AM_ROMBANK("bank1") // ?
AM_RANGE(0x80000, 0xfffff) AM_ROMBANK("bank2") // ?
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ttchamp_io, AS_IO, 16 )
+static ADDRESS_MAP_START( ttchamp_io, AS_IO, 16, ttchamp_state )
AM_RANGE(0x0000, 0x0001) AM_WRITENOP
AM_RANGE(0x0002, 0x0003) AM_READ_PORT("SYSTEM")
diff --git a/src/mame/drivers/tubep.c b/src/mame/drivers/tubep.c
index 72bbc5f81d2..c7ec4618915 100644
--- a/src/mame/drivers/tubep.c
+++ b/src/mame/drivers/tubep.c
@@ -144,7 +144,7 @@ static WRITE8_HANDLER( tubep_LS259_w )
}
-static ADDRESS_MAP_START( tubep_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tubep_main_map, AS_PROGRAM, 8, tubep_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xa7ff) AM_RAM
AM_RANGE(0xc000, 0xc7ff) AM_WRITE(tubep_textram_w) AM_BASE_MEMBER(tubep_state, m_textram) /* RAM on GFX PCB @B13 */
@@ -168,7 +168,7 @@ static WRITE8_HANDLER( tubep_soundlatch_w )
state->m_sound_latch = (data&0x7f) | 0x80;
}
-static ADDRESS_MAP_START( tubep_main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( tubep_main_portmap, AS_IO, 8, tubep_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_READ_PORT("DSW1")
AM_RANGE(0x90, 0x90) AM_READ_PORT("DSW2")
@@ -200,7 +200,7 @@ static WRITE8_HANDLER( second_cpu_irq_line_clear_w )
}
-static ADDRESS_MAP_START( tubep_second_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tubep_second_map, AS_PROGRAM, 8, tubep_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_WRITE(tubep_background_a000_w)
AM_RANGE(0xc000, 0xc000) AM_WRITE(tubep_background_c000_w)
@@ -211,7 +211,7 @@ static ADDRESS_MAP_START( tubep_second_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tubep_second_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( tubep_second_portmap, AS_IO, 8, tubep_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x7f, 0x7f) AM_WRITE(second_cpu_irq_line_clear_w)
ADDRESS_MAP_END
@@ -241,14 +241,14 @@ static WRITE8_HANDLER( tubep_sound_unknown )
}
-static ADDRESS_MAP_START( tubep_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tubep_sound_map, AS_PROGRAM, 8, tubep_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0xd000, 0xd000) AM_READ(tubep_sound_irq_ack)
AM_RANGE(0xe000, 0xe7ff) AM_RAM /* 6116 #3 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tubep_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( tubep_sound_portmap, AS_IO, 8, tubep_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0x02, 0x03) AM_DEVWRITE("ay2", ay8910_address_data_w)
@@ -364,7 +364,7 @@ static MACHINE_RESET( tubep )
*************************************/
/* MS2010-A CPU (equivalent to NSC8105 with one new opcode: 0xec) on graphics PCB */
-static ADDRESS_MAP_START( nsc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nsc_map, AS_PROGRAM, 8, tubep_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE("share3") AM_BASE_MEMBER(tubep_state, m_sprite_colorsharedram)
AM_RANGE(0x0800, 0x0fff) AM_RAM AM_SHARE("share2")
AM_RANGE(0x2000, 0x2009) AM_WRITE(tubep_sprite_control_w)
@@ -405,7 +405,7 @@ static WRITE8_HANDLER( rjammer_soundlatch_w )
}
-static ADDRESS_MAP_START( rjammer_main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rjammer_main_map, AS_PROGRAM, 8, tubep_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa7ff) AM_RAM /* MB8416 SRAM on daughterboard on main PCB (there are two SRAMs, this is the one on the left) */
AM_RANGE(0xc000, 0xc7ff) AM_WRITE(tubep_textram_w) AM_BASE_MEMBER(tubep_state, m_textram)/* RAM on GFX PCB @B13 */
@@ -413,7 +413,7 @@ static ADDRESS_MAP_START( rjammer_main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rjammer_main_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( rjammer_main_portmap, AS_IO, 8, tubep_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW2") /* a bug in game code (during attract mode) */
AM_RANGE(0x80, 0x80) AM_READ_PORT("DSW2")
@@ -428,7 +428,7 @@ static ADDRESS_MAP_START( rjammer_main_portmap, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rjammer_second_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rjammer_second_map, AS_PROGRAM, 8, tubep_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xa7ff) AM_RAM /* M5M5117P @21G */
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("share1") /* MB8416 on daughterboard (the one on the right) */
@@ -437,7 +437,7 @@ static ADDRESS_MAP_START( rjammer_second_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rjammer_second_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( rjammer_second_portmap, AS_IO, 8, tubep_state )
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)
@@ -604,13 +604,13 @@ static WRITE8_HANDLER( rjammer_voice_intensity_control_w )
}
-static ADDRESS_MAP_START( rjammer_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( rjammer_sound_map, AS_PROGRAM, 8, tubep_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM /* M5M5117P (M58125P @2C on schematics) */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rjammer_sound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( rjammer_sound_portmap, AS_IO, 8, tubep_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(rjammer_soundlatch_r)
AM_RANGE(0x10, 0x10) AM_DEVWRITE("msm", rjammer_voice_startstop_w)
diff --git a/src/mame/drivers/tugboat.c b/src/mame/drivers/tugboat.c
index 76b88e29810..fd232844a77 100644
--- a/src/mame/drivers/tugboat.c
+++ b/src/mame/drivers/tugboat.c
@@ -210,7 +210,7 @@ static MACHINE_RESET( tugboat )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tugboat_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM AM_BASE_MEMBER(tugboat_state, m_ram)
AM_RANGE(0x1060, 0x1061) AM_DEVWRITE("aysnd", ay8910_address_data_w)
AM_RANGE(0x10a0, 0x10a1) AM_WRITE(tugboat_hd46505_0_w) /* scrolling is performed changing the start_addr register (0C/0D) */
diff --git a/src/mame/drivers/tumbleb.c b/src/mame/drivers/tumbleb.c
index da0e3ad388c..dcd4e70d522 100644
--- a/src/mame/drivers/tumbleb.c
+++ b/src/mame/drivers/tumbleb.c
@@ -648,7 +648,7 @@ static WRITE16_DEVICE_HANDLER( tumbleb2_soundmcu_w )
/******************************************************************************/
-static ADDRESS_MAP_START( tumblepopb_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tumblepopb_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
#if TUMBLEP_HACK
AM_RANGE(0x000000, 0x07ffff) AM_WRITEONLY /* To write levels modifications */
@@ -670,7 +670,7 @@ static ADDRESS_MAP_START( tumblepopb_main_map, AS_PROGRAM, 16 )
AM_RANGE(0x342400, 0x34247f) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fncywld_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( fncywld_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
#if FNCYWLD_HACK
AM_RANGE(0x000000, 0x0fffff) AM_WRITEONLY /* To write levels modifications */
@@ -699,7 +699,7 @@ static READ16_HANDLER( semibase_unknown_r )
return space->machine().rand();
}
-static ADDRESS_MAP_START( htchctch_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( htchctch_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10000f) AM_READ(semibase_unknown_r)
AM_RANGE(0x100000, 0x100001) AM_WRITE(semicom_soundcmd_w)
@@ -718,7 +718,7 @@ static ADDRESS_MAP_START( htchctch_main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jumppop_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( jumppop_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE_MEMBER(tumbleb_state, m_mainram)
AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
@@ -741,7 +741,7 @@ static WRITE16_HANDLER( jumpkids_sound_w )
device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
}
-static ADDRESS_MAP_START( suprtrio_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( suprtrio_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_MEMBER(tumbleb_state, m_spriteram, m_spriteram_size)
AM_RANGE(0xa00000, 0xa0000f) AM_RAM AM_BASE_MEMBER(tumbleb_state, m_control)
@@ -755,7 +755,7 @@ static ADDRESS_MAP_START( suprtrio_main_map, AS_PROGRAM, 16 )
AM_RANGE(0xf00000, 0xf07fff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pangpang_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( pangpang_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE_MEMBER(tumbleb_state, m_mainram)
AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
@@ -789,7 +789,7 @@ static WRITE8_HANDLER( oki_sound_bank_w )
memcpy(&oki[0x30000], &oki[(data * 0x10000) + 0x40000], 0x10000);
}
-static ADDRESS_MAP_START( semicom_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( semicom_sound_map, AS_PROGRAM, 8, tumbleb_state )
AM_RANGE(0x0000, 0xcfff) AM_ROM
AM_RANGE(0xd000, 0xd7ff) AM_RAM
AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -799,7 +799,7 @@ static ADDRESS_MAP_START( semicom_sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf00e, 0xf00e) AM_WRITE(oki_sound_bank_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( suprtrio_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( suprtrio_sound_map, AS_PROGRAM, 8, tumbleb_state )
AM_RANGE(0x0000, 0xcfff) AM_ROM
AM_RANGE(0xd000, 0xd7ff) AM_RAM
AM_RANGE(0xf002, 0xf002) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
@@ -813,7 +813,7 @@ static WRITE8_HANDLER(jumppop_z80_bank_w)
memory_set_bankptr(space->machine(), "bank1", space->machine().region("audiocpu")->base() + 0x10000 + (0x4000 * data));
}
-static ADDRESS_MAP_START( jumppop_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jumppop_sound_map, AS_PROGRAM, 8, tumbleb_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xf800, 0xffff) AM_RAM
@@ -826,7 +826,7 @@ static READ8_HANDLER(jumppop_z80latch_r)
return soundlatch_r(space, 0);
}
-static ADDRESS_MAP_START( jumppop_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( jumppop_sound_io_map, AS_IO, 8, tumbleb_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ymsnd", ym3812_w)
AM_RANGE(0x02, 0x02) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
@@ -838,7 +838,7 @@ ADDRESS_MAP_END
/* Jump Kids */
-static ADDRESS_MAP_START( jumpkids_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( jumpkids_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_WRITE(jumpkids_sound_w)
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE_MEMBER(tumbleb_state, m_mainram)
@@ -866,7 +866,7 @@ static WRITE8_HANDLER( jumpkids_oki_bank_w )
memcpy(sound1 + 0x20000, sound2 + bank * 0x20000, 0x20000);
}
-static ADDRESS_MAP_START( jumpkids_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( jumpkids_sound_map, AS_PROGRAM, 8, tumbleb_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_WRITE(jumpkids_oki_bank_w)
@@ -923,11 +923,11 @@ static WRITE8_HANDLER( prot_io_w )
/* Semicom AT89C52 MCU */
-static ADDRESS_MAP_START( protection_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( protection_map, AS_PROGRAM, 8, tumbleb_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( protection_iomap, AS_IO, 8 )
+static ADDRESS_MAP_START( protection_iomap, AS_IO, 8, tumbleb_state )
AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READWRITE(prot_io_r,prot_io_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tumblep.c b/src/mame/drivers/tumblep.c
index 0dd0c79287a..ae7b4b92823 100644
--- a/src/mame/drivers/tumblep.c
+++ b/src/mame/drivers/tumblep.c
@@ -106,7 +106,7 @@ static READ16_HANDLER( tumblepop_controls_r )
/******************************************************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tumblep_state )
#if TUMBLEP_HACK
AM_RANGE(0x000000, 0x07ffff) AM_WRITEONLY // To write levels modifications
AM_RANGE(0x000000, 0x07ffff) AM_ROM
@@ -129,7 +129,7 @@ ADDRESS_MAP_END
/******************************************************************************/
/* Physical memory map (21 bits) */
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, tumblep_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_NOP /* YM2203 - this board doesn't have one */
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/tunhunt.c b/src/mame/drivers/tunhunt.c
index 8da78e4373c..da349759049 100644
--- a/src/mame/drivers/tunhunt.c
+++ b/src/mame/drivers/tunhunt.c
@@ -131,7 +131,7 @@ static READ8_DEVICE_HANDLER( dsw2_4r )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tunhunt_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_BASE_MEMBER(tunhunt_state,m_workram) /* Work RAM */
AM_RANGE(0x1080, 0x10ff) AM_WRITEONLY
AM_RANGE(0x1200, 0x12ff) AM_WRITEONLY
diff --git a/src/mame/drivers/turbo.c b/src/mame/drivers/turbo.c
index 5b9da3c1895..f723846ddb0 100644
--- a/src/mame/drivers/turbo.c
+++ b/src/mame/drivers/turbo.c
@@ -738,7 +738,7 @@ static WRITE8_DEVICE_HANDLER( buckrog_ppi8255_0_w )
*
*************************************/
-static ADDRESS_MAP_START( turbo_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( turbo_map, AS_PROGRAM, 8, turbo_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0xa000, 0xa0ff) AM_MIRROR(0x0700) AM_MASK(0x0f7) AM_RAM AM_BASE_MEMBER(turbo_state, m_spriteram)
AM_RANGE(0xa800, 0xa807) AM_MIRROR(0x07f8) AM_WRITE(turbo_coin_and_lamp_w)
@@ -764,7 +764,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( subroc3d_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( subroc3d_map, AS_PROGRAM, 8, turbo_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa3ff) AM_RAM AM_BASE_MEMBER(turbo_state, m_sprite_position) // CONT RAM
AM_RANGE(0xa400, 0xa7ff) AM_RAM AM_BASE_MEMBER(turbo_state, m_spriteram) // CONT RAM
@@ -788,7 +788,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( buckrog_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( buckrog_map, AS_PROGRAM, 8, turbo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(turbo_videoram_w) AM_BASE_MEMBER(turbo_state, m_videoram) // FIX PAGE
@@ -806,14 +806,14 @@ static ADDRESS_MAP_START( buckrog_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( buckrog_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( buckrog_cpu2_map, AS_PROGRAM, 8, turbo_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x0000, 0xdfff) AM_WRITE(buckrog_bitmap_w)
AM_RANGE(0xe000, 0xe7ff) AM_MIRROR(0x1800) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( buckrog_cpu2_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( buckrog_cpu2_portmap, AS_IO, 8, turbo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xff) AM_READ(buckrog_cpu2_command_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tutankhm.c b/src/mame/drivers/tutankhm.c
index da53b0c2c7f..3ea286b5a28 100644
--- a/src/mame/drivers/tutankhm.c
+++ b/src/mame/drivers/tutankhm.c
@@ -118,7 +118,7 @@ static WRITE8_HANDLER( tutankhm_coin_counter_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tutankhm_state )
AM_RANGE(0x0000, 0x7fff) AM_RAM AM_BASE_MEMBER(tutankhm_state, m_videoram)
AM_RANGE(0x8000, 0x800f) AM_MIRROR(0x00f0) AM_RAM AM_BASE_MEMBER(tutankhm_state, m_paletteram)
AM_RANGE(0x8100, 0x8100) AM_MIRROR(0x000f) AM_RAM AM_BASE_MEMBER(tutankhm_state, m_scroll)
diff --git a/src/mame/drivers/twin16.c b/src/mame/drivers/twin16.c
index 3521a741350..4ebc4a85477 100644
--- a/src/mame/drivers/twin16.c
+++ b/src/mame/drivers/twin16.c
@@ -231,7 +231,7 @@ static WRITE16_HANDLER( cuebrickj_nvram_bank_w )
/* Memory Maps */
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, twin16_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_DEVWRITE("upd", twin16_upd_reset_w)
@@ -243,7 +243,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf000) AM_DEVREAD("upd", twin16_upd_busy_r) // miaj writes 0 to it
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, twin16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_READ_BANK(COMRAM_r) AM_WRITE_BANK(COMRAM_w)
// AM_RANGE(0x044000, 0x04ffff) AM_NOP // miaj
@@ -264,7 +264,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0x140000, 0x143fff) AM_RAM AM_SHARE("spriteram")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16, twin16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_READ_BANK(COMRAM_r) AM_WRITE_BANK(COMRAM_w)
// AM_RANGE(0x044000, 0x04ffff) AM_NOP // miaj
@@ -279,7 +279,7 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16 )
AM_RANGE(0x780000, 0x79ffff) AM_RAM AM_BASE_MEMBER(twin16_state, m_sprite_gfx_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fround_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( fround_map, AS_PROGRAM, 16, twin16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_READ_BANK(COMRAM_r) AM_WRITE_BANK(COMRAM_w)
AM_RANGE(0x060000, 0x063fff) AM_RAM
diff --git a/src/mame/drivers/twincobr.c b/src/mame/drivers/twincobr.c
index 04aea49f748..f116408687e 100644
--- a/src/mame/drivers/twincobr.c
+++ b/src/mame/drivers/twincobr.c
@@ -274,7 +274,7 @@ Shark Zame
/***************************** 68000 Memory Map *****************************/
-static ADDRESS_MAP_START( main_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_program_map, AS_PROGRAM, 16, twincobr_state )
AM_RANGE(0x000000, 0x02ffff) AM_ROM
AM_RANGE(0x030000, 0x033fff) AM_RAM /* 68K and DSP shared RAM */
AM_RANGE(0x040000, 0x040fff) AM_RAM AM_SHARE("spriteram")
@@ -304,12 +304,12 @@ ADDRESS_MAP_END
/***************************** Z80 Memory Map *******************************/
-static ADDRESS_MAP_START( sound_program_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_program_map, AS_PROGRAM, 8, twincobr_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_MEMBER(twincobr_state, m_sharedram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, twincobr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x10, 0x10) AM_READ_PORT("SYSTEM") /* Twin Cobra - Coin/Start */
@@ -321,13 +321,13 @@ ADDRESS_MAP_END
/***************************** TMS32010 Memory Map **************************/
-static ADDRESS_MAP_START( DSP_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( DSP_program_map, AS_PROGRAM, 16, twincobr_state )
AM_RANGE(0x000, 0x7ff) AM_ROM
ADDRESS_MAP_END
/* $000 - 08F TMS32010 Internal Data RAM in Data Address Space */
-static ADDRESS_MAP_START( DSP_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( DSP_io_map, AS_IO, 16, twincobr_state )
AM_RANGE(0, 0) AM_WRITE(twincobr_dsp_addrsel_w)
AM_RANGE(1, 1) AM_READWRITE(twincobr_dsp_r, twincobr_dsp_w)
AM_RANGE(2, 2) AM_READWRITE(fsharkbt_dsp_r, fsharkbt_dsp_w)
@@ -338,7 +338,7 @@ ADDRESS_MAP_END
/******************* Flying Shark Bootleg i8741 Memory Map *******************/
-static ADDRESS_MAP_START( fsharkbt_i8741_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( fsharkbt_i8741_io_map, AS_IO, 8, twincobr_state )
/* IO map unknown as program code isn't dumped */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/twinkle.c b/src/mame/drivers/twinkle.c
index 1aa3ef528be..b26c920ef36 100644
--- a/src/mame/drivers/twinkle.c
+++ b/src/mame/drivers/twinkle.c
@@ -609,7 +609,7 @@ static READ32_HANDLER(shared_psx_r)
return result;
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, twinkle_state )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE("share1") /* ram */
AM_RANGE(0x1f000000, 0x1f0007ff) AM_READWRITE(shared_psx_r, shared_psx_w)
AM_RANGE(0x1f200000, 0x1f20001f) AM_READWRITE(am53cf96_r, am53cf96_w)
@@ -731,7 +731,7 @@ static WRITE16_HANDLER( shared_68k_w )
state->m_spu_shared[offset] = data & 0xff;
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16, twinkle_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAM
// 220000 = LEDs?
diff --git a/src/mame/drivers/twins.c b/src/mame/drivers/twins.c
index 08629631c88..7f481ef52c7 100644
--- a/src/mame/drivers/twins.c
+++ b/src/mame/drivers/twins.c
@@ -90,13 +90,13 @@ static WRITE16_HANDLER( porte_paloff0_w )
state->m_paloff = 0;
}
-static ADDRESS_MAP_START( twins_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( twins_map, AS_PROGRAM, 16, twins_state )
AM_RANGE(0x00000, 0x0ffff) AM_RAM
AM_RANGE(0x10000, 0x1ffff) AM_RAM AM_BASE_MEMBER(twins_state, m_videoram)
AM_RANGE(0x20000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( twins_io, AS_IO, 16 )
+static ADDRESS_MAP_START( twins_io, AS_IO, 16, twins_state )
AM_RANGE(0x0000, 0x0003) AM_DEVWRITE8("aysnd", ay8910_address_data_w, 0x00ff)
AM_RANGE(0x0002, 0x0003) AM_DEVREAD8("aysnd", ay8910_r, 0x00ff)
AM_RANGE(0x0004, 0x0005) AM_READWRITE(twins_port4_r, twins_port4_w)
@@ -260,7 +260,7 @@ static READ16_HANDLER( twinsa_unk_r )
return 0xffff;
}
-static ADDRESS_MAP_START( twinsa_io, AS_IO, 16 )
+static ADDRESS_MAP_START( twinsa_io, AS_IO, 16, twins_state )
AM_RANGE(0x0000, 0x0001) AM_READWRITE(twinsa_unk_r, porte_paloff0_w)
AM_RANGE(0x0002, 0x0003) AM_WRITE(porte_paloff0_w)
AM_RANGE(0x0004, 0x0005) AM_WRITE(twinsa_port4_w) // palette on this set
diff --git a/src/mame/drivers/tx1.c b/src/mame/drivers/tx1.c
index f449008bcd8..a617a874e40 100644
--- a/src/mame/drivers/tx1.c
+++ b/src/mame/drivers/tx1.c
@@ -499,7 +499,7 @@ static const ppi8255_interface tx1_ppi8255_intf =
*
*************************************/
-static ADDRESS_MAP_START( tx1_main, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tx1_main, AS_PROGRAM, 16, tx1_state )
AM_RANGE(0x00000, 0x00fff) AM_MIRROR(0x1000) AM_RAM
AM_RANGE(0x02000, 0x02fff) AM_MIRROR(0x1000) AM_RAM
AM_RANGE(0x04000, 0x04fff) AM_MIRROR(0x1000) AM_RAM AM_SHARE("nvram")
@@ -515,7 +515,7 @@ static ADDRESS_MAP_START( tx1_main, AS_PROGRAM, 16 )
AM_RANGE(0xf0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tx1_math, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tx1_math, AS_PROGRAM, 16, tx1_state )
AM_RANGE(0x00000, 0x007ff) AM_RAM AM_BASE_MEMBER(tx1_state, m_math_ram)
AM_RANGE(0x00800, 0x00fff) AM_READWRITE(tx1_spcs_ram_r, tx1_spcs_ram_w)
AM_RANGE(0x01000, 0x01fff) AM_RAM AM_SHARE("share1")
@@ -530,7 +530,7 @@ static ADDRESS_MAP_START( tx1_math, AS_PROGRAM, 16 )
AM_RANGE(0xfc000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tx1_sound_prg, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( tx1_sound_prg, AS_PROGRAM, 8, tx1_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_MIRROR(0x800) AM_BASE_MEMBER(tx1_state, m_z80_ram)
AM_RANGE(0x4000, 0x4000) AM_WRITE(z80_intreq_w)
@@ -540,7 +540,7 @@ static ADDRESS_MAP_START( tx1_sound_prg, AS_PROGRAM, 8 )
AM_RANGE(0xb000, 0xbfff) AM_READWRITE(ts_r, ts_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tx1_sound_io, AS_IO, 8 )
+static ADDRESS_MAP_START( tx1_sound_io, AS_IO, 8, tx1_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x41) AM_DEVWRITE("aysnd", ay8910_data_address_w)
ADDRESS_MAP_END
@@ -552,7 +552,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( buggyboy_main, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( buggyboy_main, AS_PROGRAM, 16, tx1_state )
AM_RANGE(0x00000, 0x03fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x04000, 0x04fff) AM_READWRITE(tx1_crtc_r, tx1_crtc_w)
AM_RANGE(0x08000, 0x09fff) AM_RAM AM_BASE_MEMBER(tx1_state, m_vram)
@@ -567,7 +567,7 @@ static ADDRESS_MAP_START( buggyboy_main, AS_PROGRAM, 16 )
AM_RANGE(0xf0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( buggybjr_main, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( buggybjr_main, AS_PROGRAM, 16, tx1_state )
AM_RANGE(0x00000, 0x03fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x04000, 0x04fff) AM_READWRITE(tx1_crtc_r, tx1_crtc_w)
AM_RANGE(0x08000, 0x08fff) AM_RAM AM_BASE_MEMBER(tx1_state, m_vram)
@@ -582,7 +582,7 @@ static ADDRESS_MAP_START( buggybjr_main, AS_PROGRAM, 16 )
AM_RANGE(0xf0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( buggyboy_math, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( buggyboy_math, AS_PROGRAM, 16, tx1_state )
AM_RANGE(0x00000, 0x007ff) AM_RAM AM_BASE_MEMBER(tx1_state, m_math_ram)
AM_RANGE(0x00800, 0x00fff) AM_READWRITE(buggyboy_spcs_ram_r, buggyboy_spcs_ram_w)
AM_RANGE(0x01000, 0x01fff) AM_RAM AM_SHARE("share1")
@@ -597,7 +597,7 @@ static ADDRESS_MAP_START( buggyboy_math, AS_PROGRAM, 16 )
ADDRESS_MAP_END
/* Buggy Boy Sound PCB TC033A */
-static ADDRESS_MAP_START( buggyboy_sound_prg, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( buggyboy_sound_prg, AS_PROGRAM, 8, tx1_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_BASE_MEMBER(tx1_state, m_z80_ram)
AM_RANGE(0x6000, 0x6001) AM_READ(bb_analog_r)
@@ -608,7 +608,7 @@ static ADDRESS_MAP_START( buggyboy_sound_prg, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* Buggy Boy Jr Sound PCB TC043 */
-static ADDRESS_MAP_START( buggybjr_sound_prg, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( buggybjr_sound_prg, AS_PROGRAM, 8, tx1_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_BASE_MEMBER(tx1_state, m_z80_ram)
AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("buggyboy", tx1_pit8253_r, tx1_pit8253_w)
@@ -618,7 +618,7 @@ static ADDRESS_MAP_START( buggybjr_sound_prg, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* Common */
-static ADDRESS_MAP_START( buggyboy_sound_io, AS_IO, 8 )
+static ADDRESS_MAP_START( buggyboy_sound_io, AS_IO, 8, tx1_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_DEVREAD("ym1", ay8910_r)
AM_RANGE(0x40, 0x41) AM_DEVWRITE("ym1", ay8910_data_address_w)
diff --git a/src/mame/drivers/uapce.c b/src/mame/drivers/uapce.c
index 856fa4f42f2..729cd1e3742 100644
--- a/src/mame/drivers/uapce.c
+++ b/src/mame/drivers/uapce.c
@@ -230,7 +230,7 @@ static MACHINE_RESET( uapce )
state->m_jamma_if_control_latch = 0;
}
-static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8)
+static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8, uapce_state )
AM_RANGE( 0x0000, 0x07FF) AM_ROM
AM_RANGE( 0x0800, 0x0FFF) AM_RAM
AM_RANGE( 0x1000, 0x17FF) AM_WRITE( jamma_if_control_latch_w )
@@ -281,7 +281,7 @@ static INPUT_PORTS_START( uapce )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1)
INPUT_PORTS_END
-static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8)
+static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8, uapce_state )
AM_RANGE( 0x000000, 0x09FFFF) AM_ROM
AM_RANGE( 0x1F0000, 0x1F1FFF) AM_RAM AM_MIRROR(0x6000) AM_BASE( &pce_user_ram )
AM_RANGE( 0x1FE000, 0x1FE3FF) AM_READWRITE( vdc_0_r, vdc_0_w )
@@ -292,7 +292,7 @@ static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8)
AM_RANGE( 0x1FF400, 0x1FF7FF) AM_READWRITE( h6280_irq_status_r, h6280_irq_status_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pce_io , AS_IO, 8)
+static ADDRESS_MAP_START( pce_io , AS_IO, 8, uapce_state )
AM_RANGE( 0x00, 0x03) AM_READWRITE( vdc_0_r, vdc_0_w )
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ultraman.c b/src/mame/drivers/ultraman.c
index 6c6e68cdf46..db3000017cf 100644
--- a/src/mame/drivers/ultraman.c
+++ b/src/mame/drivers/ultraman.c
@@ -32,7 +32,7 @@ static WRITE16_HANDLER( sound_irq_trigger_w )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, ultraman_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_RAM
AM_RANGE(0x180000, 0x183fff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)/* Palette */
@@ -55,7 +55,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0x304800, 0x304fff) AM_DEVREADWRITE8("k051960", k051960_r, k051960_w, 0x00ff) /* Sprite RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, ultraman_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_RAM
AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r) /* Sound latch read */
@@ -64,7 +64,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w) /* YM2151 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, ultraman_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE(0x00, 0x00) AM_WRITENOP /* ??? */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c
index 1d66d015d1f..caf1493e88e 100644
--- a/src/mame/drivers/ultratnk.c
+++ b/src/mame/drivers/ultratnk.c
@@ -151,7 +151,7 @@ static WRITE8_DEVICE_HANDLER( ultratnk_explosion_w )
}
-static ADDRESS_MAP_START( ultratnk_cpu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( ultratnk_cpu_map, AS_PROGRAM, 8, ultratnk_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
diff --git a/src/mame/drivers/ultrsprt.c b/src/mame/drivers/ultrsprt.c
index 511627d324a..51c657e4322 100644
--- a/src/mame/drivers/ultrsprt.c
+++ b/src/mame/drivers/ultrsprt.c
@@ -104,7 +104,7 @@ static MACHINE_START( ultrsprt )
-static ADDRESS_MAP_START( ultrsprt_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( ultrsprt_map, AS_PROGRAM, 32, ultrsprt_state )
AM_RANGE(0x00000000, 0x0007ffff) AM_RAM AM_BASE_MEMBER(ultrsprt_state, m_vram)
AM_RANGE(0x70000000, 0x70000003) AM_READWRITE(eeprom_r, eeprom_w)
AM_RANGE(0x70000020, 0x70000023) AM_READ_PORT("P1")
@@ -146,7 +146,7 @@ static WRITE16_HANDLER( K056800_68k_w )
k056800_sound_w(k056800, (offset*2)+1, (data >> 0) & 0xff, 0x00ff);
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16, ultrsprt_state )
AM_RANGE(0x00000000, 0x0001ffff) AM_ROM
AM_RANGE(0x00100000, 0x00101fff) AM_RAM
AM_RANGE(0x00200000, 0x00200007) AM_WRITE(K056800_68k_w)
diff --git a/src/mame/drivers/umipoker.c b/src/mame/drivers/umipoker.c
index 29264b63427..24179d6f292 100644
--- a/src/mame/drivers/umipoker.c
+++ b/src/mame/drivers/umipoker.c
@@ -292,7 +292,7 @@ static WRITE16_HANDLER( saiyu_counters_w )
}
-static ADDRESS_MAP_START( umipoker_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( umipoker_map, AS_PROGRAM, 16, umipoker_state )
ADDRESS_MAP_UNMAP_LOW
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x400000, 0x403fff) AM_RAM AM_SHARE("nvram")
@@ -318,12 +318,12 @@ static ADDRESS_MAP_START( umipoker_map, AS_PROGRAM, 16 )
AM_RANGE(0xe0002e, 0xe0002f) AM_WRITE(umipoker_scrolly_3_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( umipoker_audio_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( umipoker_audio_map, AS_PROGRAM, 8, umipoker_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xf800, 0xffff) AM_READWRITE(z80_shared_ram_r,z80_shared_ram_w) AM_BASE_MEMBER(umipoker_state, m_z80_wram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( umipoker_audio_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( umipoker_audio_io_map, AS_IO, 8, umipoker_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
AM_RANGE(0x10, 0x11) AM_DEVREADWRITE("ym", ym3812_r, ym3812_w)
diff --git a/src/mame/drivers/undrfire.c b/src/mame/drivers/undrfire.c
index 48ffb994819..a85a8e8569f 100644
--- a/src/mame/drivers/undrfire.c
+++ b/src/mame/drivers/undrfire.c
@@ -477,7 +477,7 @@ static WRITE32_HANDLER( cbombers_adc_w )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( undrfire_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( undrfire_map, AS_PROGRAM, 32, undrfire_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_BASE_MEMBER(undrfire_state, m_ram)
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_SIZE_MEMBER(undrfire_state, m_spriteram, m_spriteram_size)
@@ -498,7 +498,7 @@ static ADDRESS_MAP_START( undrfire_map, AS_PROGRAM, 32 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cbombers_cpua_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( cbombers_cpua_map, AS_PROGRAM, 32, undrfire_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x21ffff) AM_RAM
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_SIZE_MEMBER(undrfire_state, m_spriteram, m_spriteram_size)
@@ -517,7 +517,7 @@ static ADDRESS_MAP_START( cbombers_cpua_map, AS_PROGRAM, 32 )
AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_BASE_MEMBER(undrfire_state, m_shared_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cbombers_cpub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( cbombers_cpub_map, AS_PROGRAM, 16, undrfire_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM /* local ram */
// AM_RANGE(0x600000, 0x60ffff) AM_DEVWRITE("tc0480scp", tc0480scp_word_w) /* Only written upon errors */
diff --git a/src/mame/drivers/unico.c b/src/mame/drivers/unico.c
index d37f347758b..62c2d31621b 100644
--- a/src/mame/drivers/unico.c
+++ b/src/mame/drivers/unico.c
@@ -57,7 +57,7 @@ static WRITE16_DEVICE_HANDLER( burglarx_sound_bank_w )
}
}
-static ADDRESS_MAP_START( burglarx_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( burglarx_map, AS_PROGRAM, 16, unico_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("INPUTS")
@@ -142,7 +142,7 @@ static READ16_HANDLER( unico_guny_1_msb_r )
return ((y&0xff) ^ (space->machine().primary_screen->frame_number()&1))<<8;
}
-static ADDRESS_MAP_START( zeropnt_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( zeropnt_map, AS_PROGRAM, 16, unico_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0xef0000, 0xefffff) AM_RAM // RAM
AM_RANGE(0x800030, 0x800031) AM_WRITENOP // ? 0
@@ -215,7 +215,7 @@ static WRITE32_DEVICE_HANDLER( zeropnt2_eeprom_w )
}
}
-static ADDRESS_MAP_START( zeropnt2_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( zeropnt2_map, AS_PROGRAM, 32, unico_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM
AM_RANGE(0x800018, 0x80001b) AM_READ_PORT("SYSTEM")
AM_RANGE(0x800024, 0x800027) AM_DEVREADWRITE8_MODERN("oki1", okim6295_device, read, write, 0x00ff0000 ) // Sound
diff --git a/src/mame/drivers/upscope.c b/src/mame/drivers/upscope.c
index 299f128fa79..af2fa531970 100644
--- a/src/mame/drivers/upscope.c
+++ b/src/mame/drivers/upscope.c
@@ -241,7 +241,7 @@ static WRITE8_DEVICE_HANDLER( upscope_cia_1_porta_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, upscope_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_BASE_SIZE_MEMBER(upscope_state, m_chip_ram, m_chip_ram_size)
AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w)
diff --git a/src/mame/drivers/usgames.c b/src/mame/drivers/usgames.c
index 84d7f3cc9f4..76bf9bce0f1 100644
--- a/src/mame/drivers/usgames.c
+++ b/src/mame/drivers/usgames.c
@@ -60,7 +60,7 @@ static WRITE8_HANDLER( lamps2_w )
-static ADDRESS_MAP_START( usgames_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( usgames_map, AS_PROGRAM, 8, usgames_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x2000, 0x2000) AM_READ_PORT("DSW")
AM_RANGE(0x2010, 0x2010) AM_READ_PORT("INPUTS")
@@ -79,7 +79,7 @@ static ADDRESS_MAP_START( usgames_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( usg185_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( usg185_map, AS_PROGRAM, 8, usgames_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("aysnd", ay8910_address_data_w)
AM_RANGE(0x2400, 0x2400) AM_READ_PORT("DSW")
diff --git a/src/mame/drivers/vamphalf.c b/src/mame/drivers/vamphalf.c
index bd9f568b88a..9a543bf3993 100644
--- a/src/mame/drivers/vamphalf.c
+++ b/src/mame/drivers/vamphalf.c
@@ -294,21 +294,21 @@ static WRITE16_HANDLER( boonggab_lamps_w )
}
}
-static ADDRESS_MAP_START( common_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( common_map, AS_PROGRAM, 16, vamphalf_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_BASE_MEMBER(vamphalf_state, m_wram)
AM_RANGE(0x40000000, 0x4003ffff) AM_RAM AM_BASE_MEMBER(vamphalf_state, m_tiles)
AM_RANGE(0x80000000, 0x8000ffff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("user1",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( common_32bit_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( common_32bit_map, AS_PROGRAM, 32, vamphalf_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_BASE_MEMBER(vamphalf_state, m_wram32)
AM_RANGE(0x40000000, 0x4003ffff) AM_RAM AM_BASE_MEMBER(vamphalf_state, m_tiles32)
AM_RANGE(0x80000000, 0x8000ffff) AM_RAM_WRITE(paletteram32_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("user1",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( vamphalf_io, AS_IO, 16 )
+static ADDRESS_MAP_START( vamphalf_io, AS_IO, 16, vamphalf_state )
AM_RANGE(0x0c0, 0x0c1) AM_NOP // return 0, when oki chip is read / written
AM_RANGE(0x0c2, 0x0c3) AM_DEVREADWRITE8_MODERN("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x140, 0x143) AM_DEVWRITE8("ymsnd", ym2151_register_port_w, 0x00ff)
@@ -320,7 +320,7 @@ static ADDRESS_MAP_START( vamphalf_io, AS_IO, 16 )
AM_RANGE(0x608, 0x60b) AM_DEVWRITE("eeprom", eeprom_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( misncrft_io, AS_IO, 16 )
+static ADDRESS_MAP_START( misncrft_io, AS_IO, 16, vamphalf_state )
AM_RANGE(0x100, 0x103) AM_WRITE(flipscreen_w)
AM_RANGE(0x200, 0x203) AM_READ_PORT("P1_P2")
AM_RANGE(0x240, 0x243) AM_READ_PORT("SYSTEM")
@@ -328,7 +328,7 @@ static ADDRESS_MAP_START( misncrft_io, AS_IO, 16 )
AM_RANGE(0x580, 0x583) AM_DEVREAD("eeprom", eeprom_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( coolmini_io, AS_IO, 16 )
+static ADDRESS_MAP_START( coolmini_io, AS_IO, 16, vamphalf_state )
AM_RANGE(0x200, 0x203) AM_WRITE(flipscreen_w)
AM_RANGE(0x300, 0x303) AM_READ_PORT("SYSTEM")
AM_RANGE(0x304, 0x307) AM_READ_PORT("P1_P2")
@@ -340,7 +340,7 @@ static ADDRESS_MAP_START( coolmini_io, AS_IO, 16 )
AM_RANGE(0x7c0, 0x7c3) AM_DEVREAD("eeprom", eeprom_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( suplup_io, AS_IO, 16 )
+static ADDRESS_MAP_START( suplup_io, AS_IO, 16, vamphalf_state )
AM_RANGE(0x020, 0x023) AM_DEVWRITE("eeprom", eeprom_w)
AM_RANGE(0x040, 0x043) AM_READ_PORT("P1_P2")
AM_RANGE(0x060, 0x063) AM_READ_PORT("SYSTEM")
@@ -351,7 +351,7 @@ static ADDRESS_MAP_START( suplup_io, AS_IO, 16 )
AM_RANGE(0x100, 0x103) AM_DEVREAD("eeprom", eeprom_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wyvernwg_io, AS_IO, 32 )
+static ADDRESS_MAP_START( wyvernwg_io, AS_IO, 32, vamphalf_state )
AM_RANGE(0x1800, 0x1803) AM_READWRITE(wyvernwg_prot_r, wyvernwg_prot_w)
AM_RANGE(0x2000, 0x2003) AM_WRITE(flipscreen32_w)
AM_RANGE(0x2800, 0x2803) AM_READ_PORT("P1_P2")
@@ -361,7 +361,7 @@ static ADDRESS_MAP_START( wyvernwg_io, AS_IO, 32 )
AM_RANGE(0x7c00, 0x7c03) AM_DEVREAD("eeprom", eeprom32_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( finalgdr_io, AS_IO, 32 )
+static ADDRESS_MAP_START( finalgdr_io, AS_IO, 32, vamphalf_state )
AM_RANGE(0x2400, 0x2403) AM_READ(finalgdr_prot_r)
AM_RANGE(0x2800, 0x2803) AM_WRITE(finalgdr_backupram_bank_w)
AM_RANGE(0x2c00, 0x2dff) AM_READWRITE(finalgdr_backupram_r, finalgdr_backupram_w)
@@ -378,7 +378,7 @@ static ADDRESS_MAP_START( finalgdr_io, AS_IO, 32 )
AM_RANGE(0x60a0, 0x60a3) AM_DEVWRITE("oki", finalgdr_oki_bank_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mrkicker_io, AS_IO, 32 )
+static ADDRESS_MAP_START( mrkicker_io, AS_IO, 32, vamphalf_state )
AM_RANGE(0x2400, 0x2403) AM_DEVREAD("eeprom", eeprom32_r)
AM_RANGE(0x4000, 0x4003) AM_READNOP //?
AM_RANGE(0x4000, 0x4003) AM_DEVWRITE("eeprom", finalgdr_eeprom_w)
@@ -392,7 +392,7 @@ static ADDRESS_MAP_START( mrkicker_io, AS_IO, 32 )
AM_RANGE(0x7c00, 0x7c03) AM_READ_PORT("SYSTEM")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jmpbreak_io, AS_IO, 16 )
+static ADDRESS_MAP_START( jmpbreak_io, AS_IO, 16, vamphalf_state )
AM_RANGE(0x0c0, 0x0c3) AM_NOP // ?
AM_RANGE(0x100, 0x103) AM_WRITENOP // ?
AM_RANGE(0x240, 0x243) AM_READ_PORT("P1_P2")
@@ -405,7 +405,7 @@ static ADDRESS_MAP_START( jmpbreak_io, AS_IO, 16 )
AM_RANGE(0x684, 0x687) AM_DEVREADWRITE8("ymsnd", ym2151_status_port_r, ym2151_data_port_w, 0x00ff)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mrdig_io, AS_IO, 16 )
+static ADDRESS_MAP_START( mrdig_io, AS_IO, 16, vamphalf_state )
AM_RANGE(0x500, 0x503) AM_READ_PORT("P1_P2")
AM_RANGE(0x3c0, 0x3c3) AM_DEVWRITE("eeprom", eeprom_w)
AM_RANGE(0x180, 0x183) AM_DEVREAD("eeprom", eeprom_r)
@@ -416,7 +416,7 @@ static ADDRESS_MAP_START( mrdig_io, AS_IO, 16 )
AM_RANGE(0x0c4, 0x0c7) AM_DEVREADWRITE8("ymsnd", ym2151_status_port_r, ym2151_data_port_w, 0x00ff)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aoh_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( aoh_map, AS_PROGRAM, 32, vamphalf_state )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_BASE_MEMBER(vamphalf_state, m_wram32)
AM_RANGE(0x40000000, 0x4003ffff) AM_RAM AM_BASE_MEMBER(vamphalf_state, m_tiles32)
AM_RANGE(0x80000000, 0x8000ffff) AM_RAM_WRITE(paletteram32_w) AM_BASE_GENERIC(paletteram)
@@ -425,7 +425,7 @@ static ADDRESS_MAP_START( aoh_map, AS_PROGRAM, 32 )
AM_RANGE(0xffc00000, 0xffffffff) AM_ROM AM_REGION("user1",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aoh_io, AS_IO, 32 )
+static ADDRESS_MAP_START( aoh_io, AS_IO, 32, vamphalf_state )
AM_RANGE(0x0480, 0x0483) AM_DEVWRITE("eeprom", eeprom32_w)
AM_RANGE(0x0620, 0x0623) AM_DEVREADWRITE8_MODERN("oki_2", okim6295_device, read, write, 0x0000ff00)
AM_RANGE(0x0660, 0x0663) AM_DEVREADWRITE8_MODERN("oki_1", okim6295_device, read, write, 0x0000ff00)
@@ -433,7 +433,7 @@ static ADDRESS_MAP_START( aoh_io, AS_IO, 32 )
AM_RANGE(0x0680, 0x0683) AM_DEVWRITE("oki_2", aoh_oki_bank_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( boonggab_io, AS_IO, 16 )
+static ADDRESS_MAP_START( boonggab_io, AS_IO, 16, vamphalf_state )
AM_RANGE(0x0c0, 0x0c3) AM_DEVREAD("eeprom", eeprom_r)
AM_RANGE(0x200, 0x203) AM_NOP // seems unused
AM_RANGE(0x300, 0x303) AM_WRITE(flipscreen_w)
@@ -808,11 +808,11 @@ static GFXDECODE_START( vamphalf )
GFXDECODE_END
-static ADDRESS_MAP_START( qs1000_prg_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( qs1000_prg_map, AS_PROGRAM, 8, vamphalf_state )
AM_RANGE( 0x0000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( qs1000_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( qs1000_io_map, AS_IO, 8, vamphalf_state )
AM_RANGE( 0x0000, 0x007f) AM_RAM // RAM? wavetable registers? not sure.
ADDRESS_MAP_END
diff --git a/src/mame/drivers/vaportra.c b/src/mame/drivers/vaportra.c
index fe48ccc10e9..c7ae1a80e15 100644
--- a/src/mame/drivers/vaportra.c
+++ b/src/mame/drivers/vaportra.c
@@ -48,7 +48,7 @@ static READ16_HANDLER( vaportra_control_r )
/******************************************************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, vaportra_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100003) AM_WRITE(vaportra_priority_w)
AM_RANGE(0x100006, 0x100007) AM_WRITE(vaportra_sound_w)
@@ -77,7 +77,7 @@ static READ8_HANDLER( vaportra_soundlatch_r )
return soundlatch_r(space, offset);
}
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, vaportra_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ym2", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/vastar.c b/src/mame/drivers/vastar.c
index 00d1474fd79..1f8dbbdd801 100644
--- a/src/mame/drivers/vastar.c
+++ b/src/mame/drivers/vastar.c
@@ -105,7 +105,7 @@ static WRITE8_HANDLER( nmi_mask_w )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, vastar_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_READWRITE(vastar_bg2videoram_r, vastar_bg2videoram_w) AM_BASE_MEMBER(vastar_state,m_bg2videoram)
AM_RANGE(0x9000, 0x9fff) AM_READWRITE(vastar_bg1videoram_r, vastar_bg1videoram_w) AM_BASE_MEMBER(vastar_state,m_bg1videoram)
@@ -125,7 +125,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xcc00, 0xcc3f) AM_WRITEONLY AM_BASE_MEMBER(vastar_state,m_spriteram3) /* actually cc10-cc1f and cc30-cc3f */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( main_port_map, AS_IO, 8, vastar_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nmi_mask_w)
AM_RANGE(0x01, 0x01) AM_WRITE(flip_screen_w)
@@ -133,7 +133,7 @@ static ADDRESS_MAP_START( main_port_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, vastar_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x40ff) AM_READWRITE(vastar_sharedram_r, vastar_sharedram_w)
AM_RANGE(0x8000, 0x8000) AM_READ_PORT("P2")
@@ -141,7 +141,7 @@ static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8 )
AM_RANGE(0x8080, 0x8080) AM_READ_PORT("SYSTEM")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu2_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( cpu2_port_map, AS_IO, 8, vastar_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w)
AM_RANGE(0x02, 0x02) AM_DEVREAD("aysnd", ay8910_r)
diff --git a/src/mame/drivers/vball.c b/src/mame/drivers/vball.c
index a56acdc9f67..d57f875dc31 100644
--- a/src/mame/drivers/vball.c
+++ b/src/mame/drivers/vball.c
@@ -205,7 +205,7 @@ static WRITE8_HANDLER(vb_scrollx_lo_w)
//Cheaters note: Scores are stored in ram @ 0x57-0x58 (though the space is used for other things between matches)
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, vball_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x08ff) AM_RAM AM_BASE_SIZE_MEMBER(vball_state, m_spriteram, m_spriteram_size)
AM_RANGE(0x1000, 0x1000) AM_READ_PORT("P1")
@@ -227,7 +227,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, vball_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/vcombat.c b/src/mame/drivers/vcombat.c
index dc67f3b564e..836fe08d86a 100644
--- a/src/mame/drivers/vcombat.c
+++ b/src/mame/drivers/vcombat.c
@@ -317,7 +317,7 @@ static WRITE16_DEVICE_HANDLER( vcombat_dac_w )
dac_signed_data_16_w(device, newval + 0x8000);
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, vcombat_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
AM_RANGE(0x300000, 0x30ffff) AM_WRITE(main_video_write)
@@ -352,7 +352,7 @@ ADDRESS_MAP_END
/* The first i860 - middle board */
-static ADDRESS_MAP_START( vid_0_map, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( vid_0_map, AS_PROGRAM, 64, vcombat_state )
AM_RANGE(0x00000000, 0x0001ffff) AM_RAM_WRITE(v0_fb_w) /* Shared framebuffer - half of the bits lost to 32-bit bus */
AM_RANGE(0x20000000, 0x20000007) AM_RAM AM_SHARE("share6") /* M0<-P0 com 1 (0x440000 in 68k-land) */
AM_RANGE(0x40000000, 0x401fffff) AM_ROM AM_REGION("gfx", 0)
@@ -363,7 +363,7 @@ ADDRESS_MAP_END
/* The second i860 - top board */
-static ADDRESS_MAP_START( vid_1_map, AS_PROGRAM, 64 )
+static ADDRESS_MAP_START( vid_1_map, AS_PROGRAM, 64, vcombat_state )
AM_RANGE(0x00000000, 0x0001ffff) AM_RAM_WRITE(v1_fb_w) /* Half of the bits lost to 32-bit bus */
AM_RANGE(0x20000000, 0x20000007) AM_RAM AM_SHARE("share8") /* M0->P1 com 1 (0x540000 in 68k-land) */
AM_RANGE(0x40000000, 0x401fffff) AM_ROM AM_REGION("gfx", 0)
@@ -374,7 +374,7 @@ ADDRESS_MAP_END
/* Sound CPU */
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16, vcombat_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_RAM
AM_RANGE(0x0c0000, 0x0c0001) AM_DEVWRITE("dac", vcombat_dac_w)
diff --git a/src/mame/drivers/vectrex.c b/src/mame/drivers/vectrex.c
index 7894d90ed9b..12f009bac48 100644
--- a/src/mame/drivers/vectrex.c
+++ b/src/mame/drivers/vectrex.c
@@ -19,7 +19,7 @@ Bruce Tomlin (hardware info)
#include "machine/nvram.h"
-static ADDRESS_MAP_START(vectrex_map, AS_PROGRAM, 8)
+static ADDRESS_MAP_START(vectrex_map, AS_PROGRAM, 8, vectrex_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc800, 0xcbff) AM_RAM AM_MIRROR(0x0400) AM_BASE_MEMBER(vectrex_state, m_gce_vectorram) AM_SIZE_MEMBER(vectrex_state, m_gce_vectorram_size)
AM_RANGE(0xd000, 0xd7ff) AM_READWRITE(vectrex_via_r, vectrex_via_w)
@@ -173,7 +173,7 @@ ROM_END
*****************************************************************/
-static ADDRESS_MAP_START(raaspec_map , AS_PROGRAM, 8)
+static ADDRESS_MAP_START(raaspec_map , AS_PROGRAM, 8, vectrex_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xa000, 0xa000) AM_WRITE(raaspec_led_w)
diff --git a/src/mame/drivers/vega.c b/src/mame/drivers/vega.c
index a1d0d856168..991a3713a6f 100644
--- a/src/mame/drivers/vega.c
+++ b/src/mame/drivers/vega.c
@@ -25,7 +25,7 @@ public:
};
-static ADDRESS_MAP_START( vega_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( vega_map, AS_PROGRAM, 8, vega_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/vegaeo.c b/src/mame/drivers/vegaeo.c
index d09fac3f03e..8332a5ddfd7 100644
--- a/src/mame/drivers/vegaeo.c
+++ b/src/mame/drivers/vegaeo.c
@@ -93,7 +93,7 @@ static READ32_HANDLER( vegaeo_custom_read )
return input_port_read(space->machine(), "SYSTEM");
}
-static ADDRESS_MAP_START( vega_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( vega_map, AS_PROGRAM, 32, vegaeo_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM
AM_RANGE(0x80000000, 0x80013fff) AM_READWRITE(vega_vram_r, vega_vram_w)
AM_RANGE(0xfc000000, 0xfc0000ff) AM_DEVREADWRITE8("at28c16", at28c16_r, at28c16_w, 0x000000ff)
diff --git a/src/mame/drivers/vegas.c b/src/mame/drivers/vegas.c
index 3921d2fd8ba..f42a7b1853b 100644
--- a/src/mame/drivers/vegas.c
+++ b/src/mame/drivers/vegas.c
@@ -1700,7 +1700,7 @@ static void remap_dynamic_addresses(running_machine &machine)
*
*************************************/
-static ADDRESS_MAP_START( vegas_map_8mb, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( vegas_map_8mb, AS_PROGRAM, 32, vegas_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x007fffff) AM_RAM AM_BASE_MEMBER(vegas_state, m_rambase) AM_SIZE_MEMBER(vegas_state, m_ramsize)
AM_RANGE(0x1fa00000, 0x1fa00fff) AM_READWRITE(nile_r, nile_w) AM_BASE_MEMBER(vegas_state, m_nile_regs)
@@ -1708,7 +1708,7 @@ static ADDRESS_MAP_START( vegas_map_8mb, AS_PROGRAM, 32 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( vegas_map_32mb, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( vegas_map_32mb, AS_PROGRAM, 32, vegas_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x01ffffff) AM_RAM AM_BASE_MEMBER(vegas_state, m_rambase) AM_SIZE_MEMBER(vegas_state, m_ramsize)
AM_RANGE(0x1fa00000, 0x1fa00fff) AM_READWRITE(nile_r, nile_w) AM_BASE_MEMBER(vegas_state, m_nile_regs)
diff --git a/src/mame/drivers/vendetta.c b/src/mame/drivers/vendetta.c
index 36c241dcaaf..3eaef449609 100644
--- a/src/mame/drivers/vendetta.c
+++ b/src/mame/drivers/vendetta.c
@@ -236,7 +236,7 @@ static READ8_DEVICE_HANDLER( vendetta_sound_r )
/********************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, vendetta_state )
AM_RANGE(0x0000, 0x1fff) AM_ROMBANK("bank1")
AM_RANGE(0x2000, 0x3fff) AM_RAM
AM_RANGE(0x5f80, 0x5f9f) AM_DEVREADWRITE("k054000", k054000_r, k054000_w)
@@ -261,7 +261,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( esckids_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( esckids_map, AS_PROGRAM, 8, vendetta_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM // 053248 64K SRAM
AM_RANGE(0x3f80, 0x3f80) AM_READ_PORT("P1")
AM_RANGE(0x3f81, 0x3f81) AM_READ_PORT("P2")
@@ -287,7 +287,7 @@ static ADDRESS_MAP_START( esckids_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, vendetta_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/vertigo.c b/src/mame/drivers/vertigo.c
index fe6c26105e5..c4e0597bd03 100644
--- a/src/mame/drivers/vertigo.c
+++ b/src/mame/drivers/vertigo.c
@@ -30,7 +30,7 @@
static READ16_DEVICE_HANDLER( vertigo_pit8254_lsb_r ) { return pit8253_r( device, offset ); }
static WRITE16_DEVICE_HANDLER( vertigo_pit8254_lsb_w ) { if (ACCESSING_BITS_0_7) pit8253_w(device, offset, data); }
-static ADDRESS_MAP_START( vertigo_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( vertigo_map, AS_PROGRAM, 16, vertigo_state )
AM_RANGE(0x000000, 0x000007) AM_ROM
AM_RANGE(0x000008, 0x001fff) AM_RAM AM_MIRROR(0x010000)
AM_RANGE(0x002000, 0x003fff) AM_RAM AM_BASE_MEMBER(vertigo_state, m_vectorram)
@@ -56,7 +56,7 @@ ADDRESS_MAP_END
*************************************/
#if 0
-static ADDRESS_MAP_START( vertigo_motor, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( vertigo_motor, AS_PROGRAM, 8, vertigo_state )
AM_RANGE(0x010, 0x07f) AM_RAM
AM_RANGE(0x080, 0x7ff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/vicdual.c b/src/mame/drivers/vicdual.c
index a49e9ecc2fa..6517e081a29 100644
--- a/src/mame/drivers/vicdual.c
+++ b/src/mame/drivers/vicdual.c
@@ -250,7 +250,7 @@ static WRITE8_HANDLER( depthch_io_w )
}
-static ADDRESS_MAP_START( depthch_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( depthch_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x4000) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x7000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE_MEMBER(vicdual_state, m_videoram)
AM_RANGE(0x8400, 0x87ff) AM_MIRROR(0x7000) AM_RAM
@@ -258,7 +258,7 @@ static ADDRESS_MAP_START( depthch_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( depthch_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( depthch_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0xf)
/* no decoder, just logic gates, so in theory the
@@ -332,7 +332,7 @@ static WRITE8_HANDLER( safari_io_w )
}
-static ADDRESS_MAP_START( safari_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( safari_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_NOP /* unused */
AM_RANGE(0x8000, 0x8fff) AM_MIRROR(0x3000) AM_RAM
@@ -342,7 +342,7 @@ static ADDRESS_MAP_START( safari_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( safari_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( safari_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0xf)
/* no decoder, just logic gates, so in theory the
@@ -416,7 +416,7 @@ static WRITE8_HANDLER( frogs_io_w )
}
-static ADDRESS_MAP_START( frogs_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( frogs_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x4000) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x7000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE_MEMBER(vicdual_state, m_videoram)
AM_RANGE(0x8400, 0x87ff) AM_MIRROR(0x7000) AM_RAM
@@ -424,7 +424,7 @@ static ADDRESS_MAP_START( frogs_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( frogs_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( frogs_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0xf)
/* no decoder, just logic gates, so in theory the
@@ -537,7 +537,7 @@ static WRITE8_HANDLER( headon_io_w )
}
-static ADDRESS_MAP_START( headon_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( headon_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x1fff) AM_MIRROR(0x6000) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_NOP /* unused */
AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x3000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE_MEMBER(vicdual_state, m_videoram)
@@ -546,7 +546,7 @@ static ADDRESS_MAP_START( headon_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( headon_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( headon_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0xf)
/* no decoder, just logic gates, so in theory the
@@ -555,7 +555,7 @@ static ADDRESS_MAP_START( headon_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sspaceat_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sspaceat_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0xf)
/* no decoder, just logic gates, so in theory the
@@ -757,7 +757,7 @@ static WRITE8_HANDLER( digger_io_w )
}
-static ADDRESS_MAP_START( headon2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( headon2_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x1fff) AM_MIRROR(0x6000) AM_ROM
/* AM_RANGE(0x8000, 0x80ff) AM_MIRROR(0x3f00) */ /* schematics show this as battery backed RAM, but doesn't appear to be used */
AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x3000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE_MEMBER(vicdual_state, m_videoram)
@@ -766,7 +766,7 @@ static ADDRESS_MAP_START( headon2_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( headon2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( headon2_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0x1f)
/* no decoder, just logic gates, so in theory the
@@ -775,7 +775,7 @@ static ADDRESS_MAP_START( headon2_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( digger_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( digger_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0x1f)
/* no decoder, just logic gates, so in theory the
@@ -1037,7 +1037,7 @@ static WRITE8_HANDLER( alphaho_io_w )
}
-static ADDRESS_MAP_START( vicdual_dualgame_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( vicdual_dualgame_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x4000) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x7000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE_MEMBER(vicdual_state, m_videoram)
AM_RANGE(0x8400, 0x87ff) AM_MIRROR(0x7000) AM_RAM
@@ -1045,7 +1045,7 @@ static ADDRESS_MAP_START( vicdual_dualgame_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( invho2_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( invho2_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0x7f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x7c) AM_READ_PORT("IN0")
@@ -1059,7 +1059,7 @@ static ADDRESS_MAP_START( invho2_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( invds_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( invds_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0x7f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x7c) AM_READ_PORT("IN0")
@@ -1073,7 +1073,7 @@ static ADDRESS_MAP_START( invds_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sspacaho_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sspacaho_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0x7f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x7c) AM_READ_PORT("IN0")
@@ -1087,7 +1087,7 @@ static ADDRESS_MAP_START( sspacaho_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tranqgun_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( tranqgun_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0xf)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x0c) AM_READ_PORT("IN0")
@@ -1101,7 +1101,7 @@ static ADDRESS_MAP_START( tranqgun_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spacetrk_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( spacetrk_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0x7f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x7c) AM_READ_PORT("IN0")
@@ -1115,7 +1115,7 @@ static ADDRESS_MAP_START( spacetrk_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( carnival_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( carnival_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0x7f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x7c) AM_READ_PORT("IN0")
@@ -1129,7 +1129,7 @@ static ADDRESS_MAP_START( carnival_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( brdrline_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( brdrline_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0xf)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x0c) AM_READ_PORT("IN0")
@@ -1143,7 +1143,7 @@ static ADDRESS_MAP_START( brdrline_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pulsar_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( pulsar_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0x7f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x7c) AM_READ_PORT("IN0")
@@ -1157,7 +1157,7 @@ static ADDRESS_MAP_START( pulsar_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( heiankyo_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( heiankyo_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0xf)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x0c) AM_READ_PORT("IN0")
@@ -1171,7 +1171,7 @@ static ADDRESS_MAP_START( heiankyo_io_map, AS_IO, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( alphaho_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( alphaho_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0x7f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x7c) AM_READ_PORT("IN0")
@@ -2074,7 +2074,7 @@ static WRITE8_HANDLER( samurai_io_w )
/* dual game hardware */
-static ADDRESS_MAP_START( samurai_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( samurai_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x4000) AM_ROM AM_WRITE(samurai_protection_w)
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x7000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE_MEMBER(vicdual_state, m_videoram)
AM_RANGE(0x8400, 0x87ff) AM_MIRROR(0x7000) AM_RAM
@@ -2082,7 +2082,7 @@ static ADDRESS_MAP_START( samurai_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( samurai_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( samurai_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0x7f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x7c) AM_READ_PORT("IN0")
@@ -2187,7 +2187,7 @@ static WRITE8_HANDLER( nsub_io_w )
}
-static ADDRESS_MAP_START( nsub_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( nsub_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x4000) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_NOP /* unused */
AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x3000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE_MEMBER(vicdual_state, m_videoram)
@@ -2196,7 +2196,7 @@ static ADDRESS_MAP_START( nsub_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nsub_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( nsub_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0xf)
/* no decoder, just logic gates, so in theory the
@@ -2283,7 +2283,7 @@ static WRITE8_HANDLER( invinco_io_w )
}
-static ADDRESS_MAP_START( invinco_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( invinco_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x4000) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_NOP /* unused */
AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x3000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE_MEMBER(vicdual_state, m_videoram)
@@ -2292,7 +2292,7 @@ static ADDRESS_MAP_START( invinco_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( invinco_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( invinco_io_map, AS_IO, 8, vicdual_state )
ADDRESS_MAP_GLOBAL_MASK(0xf)
/* no decoder, just logic gates, so in theory the
diff --git a/src/mame/drivers/victory.c b/src/mame/drivers/victory.c
index 090c20799d1..83229539158 100644
--- a/src/mame/drivers/victory.c
+++ b/src/mame/drivers/victory.c
@@ -124,7 +124,7 @@ static WRITE8_HANDLER( lamp_control_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, victory_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc0ff) AM_READ(victory_video_control_r)
AM_RANGE(0xc100, 0xc1ff) AM_WRITE(victory_video_control_w)
@@ -138,7 +138,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( main_io_map, AS_IO, 8, victory_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x03) AM_READ_PORT("SW2")
AM_RANGE(0x04, 0x04) AM_MIRROR(0x03) AM_READ_PORT("SW1")
diff --git a/src/mame/drivers/videopin.c b/src/mame/drivers/videopin.c
index fca8dce7e2f..74e6d0fdb6a 100644
--- a/src/mame/drivers/videopin.c
+++ b/src/mame/drivers/videopin.c
@@ -193,7 +193,7 @@ static WRITE8_DEVICE_HANDLER( videopin_note_dvsr_w )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, videopin_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x07ff) AM_RAM_WRITE(videopin_video_ram_w) AM_BASE_MEMBER(videopin_state, m_video_ram)
AM_RANGE(0x0800, 0x0800) AM_READ(videopin_misc_r) AM_DEVWRITE("discrete", videopin_note_dvsr_w)
diff --git a/src/mame/drivers/videopkr.c b/src/mame/drivers/videopkr.c
index 1b042e2a60a..6a308cecdbc 100644
--- a/src/mame/drivers/videopkr.c
+++ b/src/mame/drivers/videopkr.c
@@ -938,11 +938,11 @@ static TIMER_DEVICE_CALLBACK(sound_t1_callback)
* Memory Map Information *
*************************/
-static ADDRESS_MAP_START( i8039_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( i8039_map, AS_PROGRAM, 8, videopkr_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( i8039_io_port, AS_IO, 8 )
+static ADDRESS_MAP_START( i8039_io_port, AS_IO, 8, videopkr_state )
AM_RANGE(0x00, 0xff ) AM_READWRITE(videopkr_io_r, videopkr_io_w)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1 ) AM_READWRITE(videopkr_p1_data_r, videopkr_p1_data_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2 ) AM_READWRITE(videopkr_p2_data_r, videopkr_p2_data_w)
@@ -950,22 +950,22 @@ static ADDRESS_MAP_START( i8039_io_port, AS_IO, 8 )
AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0 ) AM_READ(videopkr_t0_latch)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( i8039_sound_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( i8039_sound_mem, AS_PROGRAM, 8, videopkr_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( i8039_sound_port, AS_IO, 8 )
+static ADDRESS_MAP_START( i8039_sound_port, AS_IO, 8, videopkr_state )
AM_RANGE(0x00 , 0xff ) AM_READWRITE(sound_io_r, sound_io_w)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE("dac", dac_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(sound_p2_r, sound_p2_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( i8051_sound_mem, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( i8051_sound_mem, AS_PROGRAM, 8, videopkr_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( i8051_sound_port, AS_IO, 8 )
+static ADDRESS_MAP_START( i8051_sound_port, AS_IO, 8, videopkr_state )
AM_RANGE(0x0000, 0x1ff) AM_RAM
/* ports */
AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P0) AM_READWRITE(baby_sound_p0_r, baby_sound_p0_w)
diff --git a/src/mame/drivers/vigilant.c b/src/mame/drivers/vigilant.c
index 7e185b6feb0..4979e6d1a4e 100644
--- a/src/mame/drivers/vigilant.c
+++ b/src/mame/drivers/vigilant.c
@@ -61,7 +61,7 @@ static WRITE8_HANDLER( kikcubic_coin_w )
-static ADDRESS_MAP_START( vigilant_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( vigilant_map, AS_PROGRAM, 8, vigilant_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* Fallthrough */
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc020, 0xc0df) AM_RAM AM_BASE_SIZE_MEMBER(vigilant_state, m_spriteram, m_spriteram_size)
@@ -70,7 +70,7 @@ static ADDRESS_MAP_START( vigilant_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( vigilant_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( vigilant_io_map, AS_IO, 8, vigilant_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_DEVWRITE("m72", m72_sound_command_byte_w) /* SD */
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_WRITE(vigilant_out2_w) /* OUT2 */
@@ -82,7 +82,7 @@ static ADDRESS_MAP_START( vigilant_io_map, AS_IO, 8 )
AM_RANGE(0x84, 0x84) AM_WRITE(vigilant_rear_color_w) /* RCOD */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kikcubic_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( kikcubic_map, AS_PROGRAM, 8, vigilant_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* Fallthrough */
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc0ff) AM_RAM AM_BASE_SIZE_MEMBER(vigilant_state, m_spriteram, m_spriteram_size)
@@ -91,7 +91,7 @@ static ADDRESS_MAP_START( kikcubic_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kikcubic_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( kikcubic_io_map, AS_IO, 8, vigilant_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW1") AM_WRITE(kikcubic_coin_w) /* also flip screen, and...? */
AM_RANGE(0x01, 0x01) AM_READ_PORT("DSW2")
@@ -102,12 +102,12 @@ static ADDRESS_MAP_START( kikcubic_io_map, AS_IO, 8 )
// AM_RANGE(0x07, 0x07) AM_WRITENOP /* ?? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, vigilant_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, vigilant_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x80, 0x81) AM_READ(soundlatch_r) AM_DEVWRITE("m72", vigilant_sample_addr_w) /* STL / STH */
@@ -116,7 +116,7 @@ static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
AM_RANGE(0x84, 0x84) AM_DEVREAD("m72", m72_sample_r) /* S ROM C */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( buccanrs_sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( buccanrs_sound_io_map, AS_IO, 8, vigilant_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("ym2", ym2203_r, ym2203_w)
diff --git a/src/mame/drivers/vindictr.c b/src/mame/drivers/vindictr.c
index bb6a0be988e..cabc8aea567 100644
--- a/src/mame/drivers/vindictr.c
+++ b/src/mame/drivers/vindictr.c
@@ -81,7 +81,7 @@ static READ16_HANDLER( port1_r )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, vindictr_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x3fffff)
AM_RANGE(0x000000, 0x05ffff) AM_ROM
diff --git a/src/mame/drivers/viper.c b/src/mame/drivers/viper.c
index 30c78d925b5..4202d515758 100644
--- a/src/mame/drivers/viper.c
+++ b/src/mame/drivers/viper.c
@@ -1802,7 +1802,7 @@ static READ64_HANDLER(e00000_r)
/*****************************************************************************/
-static ADDRESS_MAP_START(viper_map, AS_PROGRAM, 64)
+static ADDRESS_MAP_START(viper_map, AS_PROGRAM, 64, viper_state )
AM_RANGE(0x00000000, 0x00ffffff) AM_MIRROR(0x1000000) AM_RAM
AM_RANGE(0x80000000, 0x800fffff) AM_READWRITE(epic_64be_r, epic_64be_w)
AM_RANGE(0x82000000, 0x83ffffff) AM_READWRITE(voodoo3_r, voodoo3_w)
diff --git a/src/mame/drivers/vmetal.c b/src/mame/drivers/vmetal.c
index e38e12b7eb2..c8d7b693fa6 100644
--- a/src/mame/drivers/vmetal.c
+++ b/src/mame/drivers/vmetal.c
@@ -216,7 +216,7 @@ static WRITE8_DEVICE_HANDLER( vmetal_es8712_w )
}
-static ADDRESS_MAP_START( varia_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( varia_program_map, AS_PROGRAM, 16, vmetal_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x11ffff) AM_RAM_WRITE(vmetal_texttileram_w) AM_BASE_MEMBER(vmetal_state, m_texttileram)
AM_RANGE(0x120000, 0x13ffff) AM_RAM_WRITE(vmetal_mid1tileram_w) AM_BASE_MEMBER(vmetal_state, m_mid1tileram)
diff --git a/src/mame/drivers/volfied.c b/src/mame/drivers/volfied.c
index 458a291705d..96ca9ccd794 100644
--- a/src/mame/drivers/volfied.c
+++ b/src/mame/drivers/volfied.c
@@ -61,7 +61,7 @@ Stephh's notes (based on the game M68000 code and some tests) :
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, volfied_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM /* program */
AM_RANGE(0x080000, 0x0fffff) AM_ROM /* tiles */
AM_RANGE(0x100000, 0x103fff) AM_RAM /* main */
@@ -78,7 +78,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0xf00c00, 0xf00c01) AM_WRITE(volfied_cchip_bank_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8, volfied_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8800) AM_DEVWRITE("tc0140syt", tc0140syt_slave_port_w)
diff --git a/src/mame/drivers/vpoker.c b/src/mame/drivers/vpoker.c
index 97b4c646ada..cadcff7b56d 100644
--- a/src/mame/drivers/vpoker.c
+++ b/src/mame/drivers/vpoker.c
@@ -179,7 +179,7 @@ static WRITE8_HANDLER( blitter_w )
}
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, vpoker_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM /* vpoker has 0x100, 5acespkr has 0x200 */
AM_RANGE(0x0400, 0x0407) AM_DEVREADWRITE_MODERN("6840ptm", ptm6840_device, read, write)
diff --git a/src/mame/drivers/vroulet.c b/src/mame/drivers/vroulet.c
index 203fe0b4846..1e80828d84b 100644
--- a/src/mame/drivers/vroulet.c
+++ b/src/mame/drivers/vroulet.c
@@ -119,7 +119,7 @@ static SCREEN_UPDATE_IND16(vroulet)
/* Memory Maps */
-static ADDRESS_MAP_START( vroulet_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( vroulet_map, AS_PROGRAM, 8, vroulet_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x67ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x8000, 0x8000) AM_NOP
@@ -130,7 +130,7 @@ static ADDRESS_MAP_START( vroulet_map, AS_PROGRAM, 8 )
AM_RANGE(0xc000, 0xc000) AM_NOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( vroulet_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( vroulet_io_map, AS_IO, 8, vroulet_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_data_address_w)
diff --git a/src/mame/drivers/vsnes.c b/src/mame/drivers/vsnes.c
index 5913906b69a..1341ec2feac 100644
--- a/src/mame/drivers/vsnes.c
+++ b/src/mame/drivers/vsnes.c
@@ -210,7 +210,7 @@ static WRITE8_DEVICE_HANDLER( psg_4017_w )
nes_psg_w(device, 0x17, data);
}
-static ADDRESS_MAP_START( vsnes_cpu1_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( vsnes_cpu1_map, AS_PROGRAM, 8, vsnes_state )
AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x1800) AM_RAM AM_BASE_MEMBER(vsnes_state, m_work_ram)
AM_RANGE(0x2000, 0x3fff) AM_DEVREADWRITE_MODERN("ppu1", ppu2c0x_device, read, write)
AM_RANGE(0x4011, 0x4011) AM_DEVWRITE("dac1", dac_w)
@@ -224,7 +224,7 @@ static ADDRESS_MAP_START( vsnes_cpu1_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( vsnes_cpu2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( vsnes_cpu2_map, AS_PROGRAM, 8, vsnes_state )
AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x1800) AM_RAM AM_BASE_MEMBER(vsnes_state, m_work_ram_1)
AM_RANGE(0x2000, 0x3fff) AM_DEVREADWRITE_MODERN("ppu2", ppu2c0x_device, read, write)
AM_RANGE(0x4011, 0x4011) AM_DEVWRITE("dac2", dac_w)
diff --git a/src/mame/drivers/vulgus.c b/src/mame/drivers/vulgus.c
index 05c7728fb0d..1d1ff4fc28e 100644
--- a/src/mame/drivers/vulgus.c
+++ b/src/mame/drivers/vulgus.c
@@ -50,7 +50,7 @@ static INTERRUPT_GEN( vulgus_vblank_irq )
device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7); /* RST 10h - vblank */
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, vulgus_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("SYSTEM")
AM_RANGE(0xc001, 0xc001) AM_READ_PORT("P1")
@@ -68,7 +68,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, vulgus_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4000, 0x47ff) AM_WRITEONLY
diff --git a/src/mame/drivers/wallc.c b/src/mame/drivers/wallc.c
index 649c6dbe14e..8952b4027aa 100644
--- a/src/mame/drivers/wallc.c
+++ b/src/mame/drivers/wallc.c
@@ -159,7 +159,7 @@ static WRITE8_HANDLER( wallc_coin_counter_w )
coin_counter_w(space->machine(), 0,data & 2);
}
-static ADDRESS_MAP_START( wallc_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wallc_map, AS_PROGRAM, 8, wallc_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(wallc_videoram_w) AM_MIRROR(0xc00) AM_BASE_MEMBER(wallc_state, m_videoram) /* 2114, 2114 */
AM_RANGE(0xa000, 0xa3ff) AM_RAM /* 2114, 2114 */
diff --git a/src/mame/drivers/wardner.c b/src/mame/drivers/wardner.c
index e1c98843219..84802453643 100644
--- a/src/mame/drivers/wardner.c
+++ b/src/mame/drivers/wardner.c
@@ -197,7 +197,7 @@ void wardner_restore_bank(running_machine &machine)
/***************************** Z80 Main Memory Map **************************/
-static ADDRESS_MAP_START( main_program_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_program_map, AS_PROGRAM, 8, wardner_state )
AM_RANGE(0x0000, 0x6fff) AM_ROM
AM_RANGE(0x7000, 0x7fff) AM_RAM
@@ -212,7 +212,7 @@ static ADDRESS_MAP_START( main_program_map, AS_PROGRAM, 8 )
AM_RANGE(0xc800, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( main_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( main_io_map, AS_IO, 8, wardner_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVWRITE_MODERN("crtc", mc6845_device, address_w)
AM_RANGE(0x02, 0x02) AM_DEVWRITE_MODERN("crtc", mc6845_device, register_w)
@@ -237,7 +237,7 @@ ADDRESS_MAP_END
/***************************** Z80 Sound Memory Map *************************/
-static ADDRESS_MAP_START( sound_program_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_program_map, AS_PROGRAM, 8, wardner_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x807f) AM_RAM
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share1") /* Shared RAM with Main Z80 */
@@ -245,7 +245,7 @@ static ADDRESS_MAP_START( sound_program_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, wardner_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w)
ADDRESS_MAP_END
@@ -253,13 +253,13 @@ ADDRESS_MAP_END
/***************************** TMS32010 Memory Map **************************/
-static ADDRESS_MAP_START( DSP_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( DSP_program_map, AS_PROGRAM, 16, wardner_state )
AM_RANGE(0x000, 0x5ff) AM_ROM
ADDRESS_MAP_END
/* $000 - 08F TMS32010 Internal Data RAM in Data Address Space */
-static ADDRESS_MAP_START( DSP_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( DSP_io_map, AS_IO, 16, wardner_state )
AM_RANGE(0, 0) AM_WRITE(wardner_dsp_addrsel_w)
AM_RANGE(1, 1) AM_READWRITE(wardner_dsp_r, wardner_dsp_w)
AM_RANGE(3, 3) AM_WRITE(twincobr_dsp_bio_w)
diff --git a/src/mame/drivers/warpsped.c b/src/mame/drivers/warpsped.c
index 66b87e3ec6e..da7413bd79c 100644
--- a/src/mame/drivers/warpsped.c
+++ b/src/mame/drivers/warpsped.c
@@ -213,13 +213,13 @@ static SCREEN_UPDATE_IND16( warpspeed )
return 0;
}
-static ADDRESS_MAP_START( warpspeed_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( warpspeed_map, AS_PROGRAM, 8, warpspeed_state )
AM_RANGE(0x0000, 0x0dff) AM_ROM
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE( warpspeed_vidram_w ) AM_BASE_MEMBER(warpspeed_state, m_videoram)
AM_RANGE(0x1c00, 0x1cff) AM_RAM AM_BASE_MEMBER(warpspeed_state, m_workram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START ( warpspeed_io_map, AS_IO, 8)
+static ADDRESS_MAP_START ( warpspeed_io_map, AS_IO, 8, warpspeed_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/warpwarp.c b/src/mame/drivers/warpwarp.c
index 5350559e51a..4b603b4a038 100644
--- a/src/mame/drivers/warpwarp.c
+++ b/src/mame/drivers/warpwarp.c
@@ -317,7 +317,7 @@ static WRITE8_HANDLER( warpwarp_out3_w )
-static ADDRESS_MAP_START( geebee_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( geebee_map, AS_PROGRAM, 8, warpwarp_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_MIRROR(0x400) AM_RAM_WRITE(geebee_videoram_w) AM_BASE_MEMBER(warpwarp_state, m_geebee_videoram) // mirror used by kaitei due to a bug
AM_RANGE(0x3000, 0x37ff) AM_ROM AM_REGION("gfx1", 0) // 3000-33ff in geebee
@@ -327,14 +327,14 @@ static ADDRESS_MAP_START( geebee_map, AS_PROGRAM, 8 )
AM_RANGE(0x7000, 0x7fff) AM_WRITE(geebee_out7_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( geebee_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( geebee_port_map, AS_IO, 8, warpwarp_state )
AM_RANGE(0x50, 0x53) AM_READ(geebee_in_r)
AM_RANGE(0x60, 0x6f) AM_WRITE(geebee_out6_w)
AM_RANGE(0x70, 0x7f) AM_WRITE(geebee_out7_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( bombbee_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( bombbee_map, AS_PROGRAM, 8, warpwarp_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x4000, 0x47ff) AM_RAM_WRITE(warpwarp_videoram_w) AM_BASE_MEMBER(warpwarp_state, m_videoram)
@@ -345,7 +345,7 @@ static ADDRESS_MAP_START( bombbee_map, AS_PROGRAM, 8 )
AM_RANGE(0x6030, 0x603f) AM_WRITE(warpwarp_out3_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( warpwarp_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( warpwarp_map, AS_PROGRAM, 8, warpwarp_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
AM_RANGE(0x4000, 0x47ff) AM_RAM_WRITE(warpwarp_videoram_w) AM_BASE_MEMBER(warpwarp_state, m_videoram)
diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c
index 642e630963d..fa97bc3ab18 100644
--- a/src/mame/drivers/warriorb.c
+++ b/src/mame/drivers/warriorb.c
@@ -231,7 +231,7 @@ static WRITE16_HANDLER( tc0100scn_dual_screen_w )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( darius2d_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( darius2d_map, AS_PROGRAM, 16, warriorb_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* main ram */
AM_RANGE(0x200000, 0x213fff) AM_DEVREAD("tc0100scn_1", tc0100scn_word_r) AM_WRITE(tc0100scn_dual_screen_w) /* tilemaps (all screens) */
@@ -247,7 +247,7 @@ static ADDRESS_MAP_START( darius2d_map, AS_PROGRAM, 16 )
AM_RANGE(0x830000, 0x830003) AM_READWRITE(warriorb_sound_r, warriorb_sound_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( warriorb_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( warriorb_map, AS_PROGRAM, 16, warriorb_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x213fff) AM_RAM
AM_RANGE(0x300000, 0x313fff) AM_DEVREAD("tc0100scn_1", tc0100scn_word_r) AM_WRITE(tc0100scn_dual_screen_w) /* tilemaps (all screens) */
@@ -264,7 +264,7 @@ ADDRESS_MAP_END
/***************************************************************************/
-static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8, warriorb_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10")
AM_RANGE(0xc000, 0xdfff) AM_RAM
diff --git a/src/mame/drivers/wc90.c b/src/mame/drivers/wc90.c
index 9133bb889b3..340f84a73fb 100644
--- a/src/mame/drivers/wc90.c
+++ b/src/mame/drivers/wc90.c
@@ -108,7 +108,7 @@ static WRITE8_HANDLER( wc90_sound_command_w )
-static ADDRESS_MAP_START( wc90_map_1, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wc90_map_1, AS_PROGRAM, 8, wc90_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_RAM /* Main RAM */
AM_RANGE(0xa000, 0xafff) AM_RAM_WRITE(wc90_fgvideoram_w) AM_BASE_MEMBER(wc90_state, m_fgvideoram) /* fg video ram */
@@ -140,7 +140,7 @@ static ADDRESS_MAP_START( wc90_map_1, AS_PROGRAM, 8 )
AM_RANGE(0xfce0, 0xfce0) AM_WRITE(wc90_bankswitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wc90_map_2, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wc90_map_2, AS_PROGRAM, 8, wc90_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE_SIZE_MEMBER(wc90_state, m_spriteram, m_spriteram_size)
@@ -152,7 +152,7 @@ static ADDRESS_MAP_START( wc90_map_2, AS_PROGRAM, 8 )
AM_RANGE(0xfc01, 0xfc01) AM_WRITE(watchdog_reset_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, wc90_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf803) AM_DEVREADWRITE("ymsnd", ym2608_r, ym2608_w)
diff --git a/src/mame/drivers/wc90b.c b/src/mame/drivers/wc90b.c
index e628312225b..a88833fa382 100644
--- a/src/mame/drivers/wc90b.c
+++ b/src/mame/drivers/wc90b.c
@@ -139,7 +139,7 @@ static WRITE8_HANDLER( adpcm_data_w )
}
-static ADDRESS_MAP_START( wc90b_map1, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wc90b_map1, AS_PROGRAM, 8, wc90b_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_RAM /* Main RAM */
AM_RANGE(0xa000, 0xafff) AM_RAM_WRITE(wc90b_fgvideoram_w) AM_BASE_MEMBER(wc90b_state, m_fgvideoram)
@@ -160,7 +160,7 @@ static ADDRESS_MAP_START( wc90b_map1, AS_PROGRAM, 8 )
AM_RANGE(0xfd08, 0xfd08) AM_READ_PORT("DSW2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wc90b_map2, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wc90b_map2, AS_PROGRAM, 8, wc90b_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE_SIZE_MEMBER(wc90b_state, m_spriteram, m_spriteram_size)
@@ -172,7 +172,7 @@ static ADDRESS_MAP_START( wc90b_map2, AS_PROGRAM, 8 )
AM_RANGE(0xfc00, 0xfc00) AM_WRITE(wc90b_bankswitch1_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8, wc90b_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank3")
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("msm", adpcm_control_w)
diff --git a/src/mame/drivers/wecleman.c b/src/mame/drivers/wecleman.c
index a45448a1765..e29794d9012 100644
--- a/src/mame/drivers/wecleman.c
+++ b/src/mame/drivers/wecleman.c
@@ -500,7 +500,7 @@ static WRITE16_HANDLER( blitter_w )
static WRITE16_HANDLER( wecleman_soundlatch_w );
-static ADDRESS_MAP_START( wecleman_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( wecleman_map, AS_PROGRAM, 16, wecleman_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM (03c000-03ffff used as RAM sometimes!)
AM_RANGE(0x040494, 0x040495) AM_WRITE(wecleman_videostatus_w) AM_BASE_MEMBER(wecleman_state, m_videostatus) // cloud blending control (HACK)
AM_RANGE(0x040000, 0x043fff) AM_RAM // RAM
@@ -532,7 +532,7 @@ ADDRESS_MAP_END
static WRITE16_HANDLER( hotchase_soundlatch_w );
-static ADDRESS_MAP_START( hotchase_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hotchase_map, AS_PROGRAM, 16, wecleman_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x041fff) AM_RAM // RAM
AM_RANGE(0x060000, 0x063fff) AM_RAM // RAM
@@ -562,7 +562,7 @@ ADDRESS_MAP_END
WEC Le Mans 24 Sub CPU Handlers
***************************************************************************/
-static ADDRESS_MAP_START( wecleman_sub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( wecleman_sub_map, AS_PROGRAM, 16, wecleman_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM // ROM
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_BASE_MEMBER(wecleman_state, m_roadram) AM_SIZE_MEMBER(wecleman_state, m_roadram_size) // Road
AM_RANGE(0x070000, 0x073fff) AM_RAM AM_SHARE("share1") // RAM (Shared with main CPU)
@@ -573,7 +573,7 @@ ADDRESS_MAP_END
Hot Chase Sub CPU Handlers
***************************************************************************/
-static ADDRESS_MAP_START( hotchase_sub_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( hotchase_sub_map, AS_PROGRAM, 16, wecleman_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM // ROM
AM_RANGE(0x020000, 0x020fff) AM_RAM AM_BASE_MEMBER(wecleman_state, m_roadram) AM_SIZE_MEMBER(wecleman_state, m_roadram_size) // Road
AM_RANGE(0x040000, 0x043fff) AM_RAM AM_SHARE("share1") // Shared with main CPU
@@ -630,7 +630,7 @@ static WRITE8_DEVICE_HANDLER( wecleman_K00723216_bank_w )
k007232_set_bank(device, 0, ~data&1 ); //* (wecleman062gre)
}
-static ADDRESS_MAP_START( wecleman_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wecleman_sound_map, AS_PROGRAM, 8, wecleman_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
AM_RANGE(0x8500, 0x8500) AM_WRITENOP // incresed with speed (global volume)?
@@ -723,7 +723,7 @@ static WRITE8_DEVICE_HANDLER( hotchase_k007232_w )
k007232_w(device, offset ^ 1, data);
}
-static ADDRESS_MAP_START( hotchase_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( hotchase_sound_map, AS_PROGRAM, 8, wecleman_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x1000, 0x100d) AM_DEVREADWRITE("konami1", hotchase_k007232_r, hotchase_k007232_w) // 3 x K007232
AM_RANGE(0x2000, 0x200d) AM_DEVREADWRITE("konami2", hotchase_k007232_r, hotchase_k007232_w)
diff --git a/src/mame/drivers/welltris.c b/src/mame/drivers/welltris.c
index ebbfc1c3c94..56049843ca5 100644
--- a/src/mame/drivers/welltris.c
+++ b/src/mame/drivers/welltris.c
@@ -354,7 +354,7 @@ static WRITE8_HANDLER( pending_command_clear_w )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, welltris_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x17ffff) AM_ROM
AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_BASE_MEMBER(welltris_state,m_pixelram) /* Graph_1 & 2*/
@@ -378,13 +378,13 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0xfff00e, 0xfff00f) AM_WRITENOP /* ?? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, welltris_state )
AM_RANGE(0x0000, 0x77ff) AM_ROM
AM_RANGE(0x7800, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_port_map, AS_IO, 8, welltris_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(welltris_sh_bankswitch_w)
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
diff --git a/src/mame/drivers/wgp.c b/src/mame/drivers/wgp.c
index f3808561d6f..983f29cabac 100644
--- a/src/mame/drivers/wgp.c
+++ b/src/mame/drivers/wgp.c
@@ -647,7 +647,7 @@ static READ16_HANDLER( wgp_sound_r )
MEMORY STRUCTURES
*****************************************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, wgp_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* main CPUA ram */
AM_RANGE(0x140000, 0x143fff) AM_RAM AM_BASE_SIZE_MEMBER(wgp_state, m_sharedram, m_sharedram_size)
@@ -666,7 +666,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 16 ) /* LAN areas not mapped... */
+static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 16 /* LAN areas not mapped... */, wgp_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x140000, 0x143fff) AM_READWRITE(sharedram_r,sharedram_w)
@@ -681,7 +681,7 @@ ADDRESS_MAP_END
/***************************************************************************/
-static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8, wgp_state )
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10") /* Fallthrough */
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
diff --git a/src/mame/drivers/wheelfir.c b/src/mame/drivers/wheelfir.c
index 4032e51eb78..c6b92b0d379 100644
--- a/src/mame/drivers/wheelfir.c
+++ b/src/mame/drivers/wheelfir.c
@@ -657,7 +657,7 @@ static WRITE16_HANDLER(coin_cnt_w)
}
-static ADDRESS_MAP_START( wheelfir_main, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( wheelfir_main, AS_PROGRAM, 16, wheelfir_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
@@ -677,7 +677,7 @@ static ADDRESS_MAP_START( wheelfir_main, AS_PROGRAM, 16 )
/* sub is sound cpu? the program roms contain lots of samples */
-static ADDRESS_MAP_START( wheelfir_sub, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( wheelfir_sub, AS_PROGRAM, 16, wheelfir_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
diff --git a/src/mame/drivers/williams.c b/src/mame/drivers/williams.c
index afeed4a7fdc..e2257872bf6 100644
--- a/src/mame/drivers/williams.c
+++ b/src/mame/drivers/williams.c
@@ -509,7 +509,7 @@
*
*************************************/
-static ADDRESS_MAP_START( defender_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( defender_map, AS_PROGRAM, 8, williams_state )
AM_RANGE(0x0000, 0xbfff) AM_RAM AM_BASE_MEMBER(williams_state, m_videoram)
/* range from 0xc000-0xcfff is mapped programmatically below */
AM_RANGE(0xc000, 0xc00f) AM_BASE_GENERIC(paletteram)
@@ -546,7 +546,7 @@ void defender_install_io_space(address_space *space)
*
*************************************/
-static ADDRESS_MAP_START( williams_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( williams_map, AS_PROGRAM, 8, williams_state )
AM_RANGE(0x0000, 0x8fff) AM_READ_BANK("bank1") AM_WRITEONLY AM_BASE_MEMBER(williams_state, m_videoram)
AM_RANGE(0x9000, 0xbfff) AM_RAM
AM_RANGE(0xc000, 0xc00f) AM_MIRROR(0x03f0) AM_WRITEONLY AM_BASE_GENERIC(paletteram)
@@ -561,7 +561,7 @@ static ADDRESS_MAP_START( williams_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( williams_extra_ram_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( williams_extra_ram_map, AS_PROGRAM, 8, williams_state )
AM_RANGE(0x0000, 0x8fff) AM_READ_BANK("bank1") AM_WRITEONLY AM_BASE_MEMBER(williams_state, m_videoram)
AM_RANGE(0x9000, 0xbfff) AM_RAM
AM_RANGE(0xc000, 0xc00f) AM_MIRROR(0x03f0) AM_WRITEONLY AM_BASE_GENERIC(paletteram)
@@ -584,7 +584,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( blaster_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( blaster_map, AS_PROGRAM, 8, williams_state )
AM_RANGE(0x0000, 0x3fff) AM_READ_BANK("bank1") AM_WRITEONLY AM_BASE_MEMBER(williams_state, m_videoram)
AM_RANGE(0x4000, 0x8fff) AM_READ_BANK("bank2") AM_WRITEONLY
AM_RANGE(0xbb00, 0xbbff) AM_WRITEONLY AM_BASE_MEMBER(williams_state, m_blaster_palette_0)
@@ -612,7 +612,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( williams2_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( williams2_map, AS_PROGRAM, 8, williams_state )
AM_RANGE(0x0000, 0x7fff) AM_READ_BANK("bank1") AM_WRITEONLY AM_BASE_MEMBER(williams_state, m_videoram)
AM_RANGE(0x8000, 0xbfff) AM_RAM
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(williams2_tileram_w) AM_BASE_MEMBER(williams_state, m_williams2_tileram)
@@ -634,7 +634,7 @@ static ADDRESS_MAP_START( williams2_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( williams2_extra_ram_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( williams2_extra_ram_map, AS_PROGRAM, 8, williams_state )
AM_RANGE(0x0000, 0x7fff) AM_READ_BANK("bank1") AM_WRITEONLY AM_BASE_MEMBER(williams_state, m_videoram)
AM_RANGE(0x8000, 0xbfff) AM_RAM
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(williams2_tileram_w) AM_BASE_MEMBER(williams_state, m_williams2_tileram)
@@ -664,14 +664,14 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( defender_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( defender_sound_map, AS_PROGRAM, 8, williams_state )
AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */
AM_RANGE(0x0400, 0x0403) AM_MIRROR(0x8000) AM_DEVREADWRITE_MODERN("pia_2", pia6821_device, read, write)
AM_RANGE(0xb000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, williams_state )
AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */
AM_RANGE(0x0080, 0x00ff) AM_RAM /* MC6810 RAM */
AM_RANGE(0x0400, 0x0403) AM_MIRROR(0x8000) AM_DEVREADWRITE_MODERN("pia_2", pia6821_device, read, write)
@@ -679,7 +679,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
/* Same as above, but for second sound board */
-static ADDRESS_MAP_START( sound_map_b, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map_b, AS_PROGRAM, 8, williams_state )
AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */
AM_RANGE(0x0080, 0x00ff) AM_RAM /* MC6810 RAM */
AM_RANGE(0x0400, 0x0403) AM_MIRROR(0x8000) AM_DEVREADWRITE_MODERN("pia_2b", pia6821_device, read, write)
@@ -694,7 +694,7 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( williams2_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( williams2_sound_map, AS_PROGRAM, 8, williams_state )
AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */
AM_RANGE(0x0080, 0x00ff) AM_RAM /* MC6810 RAM */
AM_RANGE(0x2000, 0x2003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE_MODERN("pia_2", pia6821_device, read, write)
diff --git a/src/mame/drivers/wink.c b/src/mame/drivers/wink.c
index 0568775019d..5e660d12566 100644
--- a/src/mame/drivers/wink.c
+++ b/src/mame/drivers/wink.c
@@ -102,7 +102,7 @@ static WRITE8_HANDLER( sound_irq_w )
//space->machine().scheduler().synchronize();
}
-static ADDRESS_MAP_START( wink_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wink_map, AS_PROGRAM, 8, wink_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x97ff) AM_RAM AM_SHARE("nvram")
@@ -135,7 +135,7 @@ static WRITE8_HANDLER( prot_w )
//take a9-a15 and stuff them in a variable for later use.
}
-static ADDRESS_MAP_START( wink_io, AS_IO, 8 )
+static ADDRESS_MAP_START( wink_io, AS_IO, 8, wink_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x1f) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_le_w) AM_BASE_GENERIC(paletteram) //0x10-0x1f is likely to be something else
// AM_RANGE(0x20, 0x20) AM_WRITENOP //??? seems unused..
@@ -158,13 +158,13 @@ static ADDRESS_MAP_START( wink_io, AS_IO, 8 )
AM_RANGE(0xe0, 0xff) AM_READ(prot_r) //load math unit from buffer & lower address-bus
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wink_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wink_sound_map, AS_PROGRAM, 8, wink_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x8000, 0x8000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wink_sound_io, AS_IO, 8 )
+static ADDRESS_MAP_START( wink_sound_io, AS_IO, 8, wink_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("aysnd", ay8910_r, ay8910_data_w)
AM_RANGE(0x80, 0x80) AM_DEVWRITE("aysnd", ay8910_address_w)
diff --git a/src/mame/drivers/wiping.c b/src/mame/drivers/wiping.c
index eefd72ad96f..c851d46d6e5 100644
--- a/src/mame/drivers/wiping.c
+++ b/src/mame/drivers/wiping.c
@@ -71,7 +71,7 @@ static WRITE8_HANDLER( sound_irq_mask_w )
state->m_sound_irq_mask = data & 1;
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, wiping_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_BASE_MEMBER(wiping_state, m_videoram)
AM_RANGE(0x8400, 0x87ff) AM_BASE_MEMBER(wiping_state, m_colorram)
@@ -87,7 +87,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0xb800, 0xb800) AM_WRITE(watchdog_reset_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, wiping_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_DEVWRITE("wiping", wiping_sound_w)
AM_RANGE(0x9000, 0x93ff) AM_RAM AM_SHARE("share1")
diff --git a/src/mame/drivers/witch.c b/src/mame/drivers/witch.c
index c5e32a66143..273db9e4195 100644
--- a/src/mame/drivers/witch.c
+++ b/src/mame/drivers/witch.c
@@ -459,7 +459,7 @@ static const ym2203_interface ym2203_interface_1 =
NULL
};
-static ADDRESS_MAP_START( map_main, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( map_main, AS_PROGRAM, 8, witch_state )
AM_RANGE(0x0000, UNBANKED_SIZE-1) AM_ROM
AM_RANGE(UNBANKED_SIZE, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0x8001) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
@@ -478,7 +478,7 @@ static ADDRESS_MAP_START( map_main, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( map_sub, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( map_sub, AS_PROGRAM, 8, witch_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8001) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
AM_RANGE(0x8008, 0x8009) AM_DEVREADWRITE("ym2", ym2203_r, ym2203_w)
diff --git a/src/mame/drivers/wiz.c b/src/mame/drivers/wiz.c
index 5acb688f814..aa666230c3a 100644
--- a/src/mame/drivers/wiz.c
+++ b/src/mame/drivers/wiz.c
@@ -223,7 +223,7 @@ static WRITE8_HANDLER( wiz_main_nmi_mask_w )
state->m_main_nmi_mask = data & 1;
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, wiz_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc801) AM_WRITE(wiz_coin_counter_w)
@@ -262,7 +262,7 @@ static WRITE8_HANDLER( wiz_sound_nmi_mask_w )
/* TODO: clean this up! */
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, wiz_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x3000, 0x3000) AM_READWRITE(soundlatch_r,wiz_sound_nmi_mask_w) /* Stinger/Scion */
@@ -272,7 +272,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
AM_RANGE(0x7000, 0x7000) AM_READWRITE(soundlatch_r,wiz_sound_nmi_mask_w) /* Wiz */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( stinger_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( stinger_sound_map, AS_PROGRAM, 8, wiz_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x3000, 0x3000) AM_READWRITE(soundlatch_r,wiz_sound_nmi_mask_w) /* Stinger/Scion */
diff --git a/src/mame/drivers/wldarrow.c b/src/mame/drivers/wldarrow.c
index 3f07faee396..c5c90ce6c03 100644
--- a/src/mame/drivers/wldarrow.c
+++ b/src/mame/drivers/wldarrow.c
@@ -171,7 +171,7 @@ static WRITE8_DEVICE_HANDLER( wldarrow_dac_4_w )
*
*************************************/
-static ADDRESS_MAP_START( wldarrow_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( wldarrow_map, AS_PROGRAM, 8, wldarrow_state )
AM_RANGE(0x0000, 0x37ff) AM_ROM
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("IN0")
AM_RANGE(0x4000, 0x5fff) AM_RAM AM_BASE_MEMBER(wldarrow_state, m_videoram_0) AM_SIZE_MEMBER(wldarrow_state, m_videoram_size)
diff --git a/src/mame/drivers/wolfpack.c b/src/mame/drivers/wolfpack.c
index ee7380fdfe4..aad0a937f6f 100644
--- a/src/mame/drivers/wolfpack.c
+++ b/src/mame/drivers/wolfpack.c
@@ -109,7 +109,7 @@ static WRITE8_HANDLER( wolfpack_coldetres_w )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, wolfpack_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x100)
AM_RANGE(0x1000, 0x1000) AM_READ_PORT("INPUTS")
AM_RANGE(0x1000, 0x10ff) AM_WRITEONLY AM_BASE_MEMBER(wolfpack_state, m_alpha_num_ram)
diff --git a/src/mame/drivers/wrally.c b/src/mame/drivers/wrally.c
index c71a5d9a212..df89b2f7762 100644
--- a/src/mame/drivers/wrally.c
+++ b/src/mame/drivers/wrally.c
@@ -101,7 +101,7 @@ produces a high clock frequency, slow movements a low freq.
#include "includes/wrally.h"
-static ADDRESS_MAP_START( wrally_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( wrally_map, AS_PROGRAM, 16, wrally_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(wrally_vram_w) AM_BASE_MEMBER(wrally_state, m_videoram) /* encrypted Video RAM */
AM_RANGE(0x108000, 0x108007) AM_RAM AM_BASE_MEMBER(wrally_state, m_vregs) /* Video Registers */
@@ -138,11 +138,11 @@ static WRITE8_HANDLER( dallas_share_w )
shareram[BYTE_XOR_LE(offset) ^ 1] = data;
}
-static ADDRESS_MAP_START( dallas_rom, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( dallas_rom, AS_PROGRAM, 8, wrally_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* Code in NVRAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( dallas_ram, AS_IO, 8 )
+static ADDRESS_MAP_START( dallas_ram, AS_IO, 8, wrally_state )
AM_RANGE(0x0000, 0xffff) AM_READWRITE(dallas_share_r, dallas_share_w) AM_MASK(0x3fff) /* Shared RAM with the main CPU */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/wwfsstar.c b/src/mame/drivers/wwfsstar.c
index 5dcb7950da5..752461b79c4 100644
--- a/src/mame/drivers/wwfsstar.c
+++ b/src/mame/drivers/wwfsstar.c
@@ -159,7 +159,7 @@ static WRITE16_HANDLER ( wwfsstar_scrollwrite );
Pretty Straightforward
*******************************************************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, wwfsstar_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(wwfsstar_fg0_videoram_w) AM_BASE_MEMBER(wwfsstar_state,m_fg0_videoram) /* FG0 Ram */
AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(wwfsstar_bg0_videoram_w) AM_BASE_MEMBER(wwfsstar_state,m_bg0_videoram) /* BG0 Ram */
@@ -177,7 +177,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* Work Ram */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, wwfsstar_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/wwfwfest.c b/src/mame/drivers/wwfwfest.c
index aef42551287..ba452d8e315 100644
--- a/src/mame/drivers/wwfwfest.c
+++ b/src/mame/drivers/wwfwfest.c
@@ -66,7 +66,7 @@ static WRITE16_HANDLER ( wwfwfest_irq_ack_w );
still some unknown writes however, sound cpu memory map is the same as dd3
*******************************************************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, wwfwfest_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x0c0000, 0x0c1fff) AM_RAM_WRITE(wwfwfest_fg0_videoram_w) AM_BASE_MEMBER(wwfwfest_state, m_fg0_videoram) /* FG0 Ram - 4 bytes per tile */
AM_RANGE(0x0c2000, 0x0c3fff) AM_RAM AM_SHARE("spriteram") /* SPR Ram */
@@ -85,7 +85,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* Work Ram */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, wwfwfest_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc801) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/xain.c b/src/mame/drivers/xain.c
index 41c6ebdc3cc..184daf21f1e 100644
--- a/src/mame/drivers/xain.c
+++ b/src/mame/drivers/xain.c
@@ -399,7 +399,7 @@ READ8_HANDLER( mcu_comm_reset_r )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, xain_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(xain_charram_w) AM_BASE_MEMBER(xain_state, m_charram)
AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(xain_bgram1_w) AM_BASE_MEMBER(xain_state, m_bgram1)
@@ -427,7 +427,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cpu_map_B, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cpu_map_B, AS_PROGRAM, 8, xain_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x2000, 0x2000) AM_WRITE(xain_irqA_assert_w)
AM_RANGE(0x2800, 0x2800) AM_WRITE(xain_irqB_clear_w)
@@ -436,7 +436,7 @@ static ADDRESS_MAP_START( cpu_map_B, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, xain_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(xain_68705_port_a_r, xain_68705_port_a_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(xain_68705_port_b_r, xain_68705_port_b_w)
@@ -450,7 +450,7 @@ static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
AM_RANGE(0x0080, 0x07ff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, xain_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_READ(soundlatch_r)
AM_RANGE(0x2800, 0x2801) AM_DEVWRITE("ym1", ym2203_w)
diff --git a/src/mame/drivers/xexex.c b/src/mame/drivers/xexex.c
index 93d06ecf697..766030257da 100644
--- a/src/mame/drivers/xexex.c
+++ b/src/mame/drivers/xexex.c
@@ -322,7 +322,7 @@ static TIMER_DEVICE_CALLBACK( xexex_interrupt )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xexex_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_RAM AM_BASE_MEMBER(xexex_state, m_workram) // work RAM
@@ -369,7 +369,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, xexex_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c
index b144a05eb1f..d6fba865de9 100644
--- a/src/mame/drivers/xmen.c
+++ b/src/mame/drivers/xmen.c
@@ -111,7 +111,7 @@ static WRITE8_HANDLER( sound_bankswitch_w )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xmen_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_DEVREADWRITE("k053246", k053247_word_r, k053247_word_w)
@@ -132,7 +132,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0x18c000, 0x197fff) AM_DEVREADWRITE("k052109", k052109_lsb_r, k052109_lsb_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, xmen_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank4")
AM_RANGE(0xc000, 0xdfff) AM_RAM
@@ -144,7 +144,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( 6p_main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( 6p_main_map, AS_PROGRAM, 16, xmen_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x100fff) AM_RAM AM_BASE_MEMBER(xmen_state, m_xmen6p_spriteramleft) /* sprites (screen 1) */
diff --git a/src/mame/drivers/xorworld.c b/src/mame/drivers/xorworld.c
index 1b39139b5c2..ab9b379fc71 100644
--- a/src/mame/drivers/xorworld.c
+++ b/src/mame/drivers/xorworld.c
@@ -75,7 +75,7 @@ static WRITE16_HANDLER( xorworld_irq6_ack_w )
cputag_set_input_line(space->machine(), "maincpu", 6, CLEAR_LINE);
}
-static ADDRESS_MAP_START( xorworld_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( xorworld_map, AS_PROGRAM, 16, xorworld_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x200000, 0x200001) AM_READ_PORT("P1")
AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P2")
diff --git a/src/mame/drivers/xtheball.c b/src/mame/drivers/xtheball.c
index 0a27afbcc2d..4484c24cdb8 100644
--- a/src/mame/drivers/xtheball.c
+++ b/src/mame/drivers/xtheball.c
@@ -206,7 +206,7 @@ static READ16_HANDLER( analogy_watchdog_r )
*
*************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xtheball_state )
AM_RANGE(0x00000000, 0x0001ffff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x01000000, 0x010fffff) AM_RAM AM_BASE_MEMBER(xtheball_state, m_vram_bg)
AM_RANGE(0x02000000, 0x020fffff) AM_RAM AM_BASE_MEMBER(xtheball_state, m_vram_fg)
diff --git a/src/mame/drivers/xxmissio.c b/src/mame/drivers/xxmissio.c
index ba970384c0c..c3ae8d3e756 100644
--- a/src/mame/drivers/xxmissio.c
+++ b/src/mame/drivers/xxmissio.c
@@ -88,7 +88,7 @@ static MACHINE_START( xxmissio )
/****************************************************************************/
-static ADDRESS_MAP_START( map1, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( map1, AS_PROGRAM, 8, xxmissio_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8001) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
@@ -111,7 +111,7 @@ static ADDRESS_MAP_START( map1, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( map2, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( map2, AS_PROGRAM, 8, xxmissio_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
diff --git a/src/mame/drivers/xybots.c b/src/mame/drivers/xybots.c
index acb3002fe92..109ebc35c41 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, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xybots_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x007fff) AM_MIRROR(0x7c0000) AM_ROM
AM_RANGE(0x008000, 0x00ffff) AM_MIRROR(0x7c0000) AM_ROM /* slapstic maps here */
diff --git a/src/mame/drivers/xyonix.c b/src/mame/drivers/xyonix.c
index 9ad4f3b65a4..2b1ed800f58 100644
--- a/src/mame/drivers/xyonix.c
+++ b/src/mame/drivers/xyonix.c
@@ -134,13 +134,13 @@ static WRITE8_HANDLER ( xyonix_io_w )
/* Mem / Port Maps ***********************************************************/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, xyonix_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xffff) AM_RAM_WRITE(xyonix_vidram_w) AM_BASE_MEMBER(xyonix_state,m_vidram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( port_map, AS_IO, 8, xyonix_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x20, 0x20) AM_READNOP AM_DEVWRITE("sn1", sn76496_w) /* SN76496 ready signal */
AM_RANGE(0x21, 0x21) AM_READNOP AM_DEVWRITE("sn2", sn76496_w)
diff --git a/src/mame/drivers/yiear.c b/src/mame/drivers/yiear.c
index 69a880ab76c..461ea0e41b2 100644
--- a/src/mame/drivers/yiear.c
+++ b/src/mame/drivers/yiear.c
@@ -127,7 +127,7 @@ static INTERRUPT_GEN( yiear_nmi_interrupt )
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, yiear_state )
AM_RANGE(0x0000, 0x0000) AM_DEVREAD("vlm", yiear_speech_r)
AM_RANGE(0x4000, 0x4000) AM_WRITE(yiear_control_w)
AM_RANGE(0x4800, 0x4800) AM_WRITE(konami_SN76496_latch_w)
diff --git a/src/mame/drivers/yunsun16.c b/src/mame/drivers/yunsun16.c
index e5aedd6f1ba..82535b08602 100644
--- a/src/mame/drivers/yunsun16.c
+++ b/src/mame/drivers/yunsun16.c
@@ -112,7 +112,7 @@ static WRITE16_HANDLER( yunsun16_sound_bank_w )
}
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, yunsun16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("INPUTS")
AM_RANGE(0x800018, 0x800019) AM_READ_PORT("SYSTEM")
@@ -168,12 +168,12 @@ static DRIVER_INIT( magicbub )
***************************************************************************/
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, yunsun16_state )
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( sound_port_map, AS_IO, 8, yunsun16_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x11) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_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 c0aaf1d192c..f664e8d1ae8 100644
--- a/src/mame/drivers/yunsung8.c
+++ b/src/mame/drivers/yunsung8.c
@@ -65,7 +65,7 @@ static WRITE8_HANDLER( yunsung8_bankswitch_w )
d000-dfff Tiles ""
*/
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, yunsung8_state )
AM_RANGE(0x0001, 0x0001) AM_WRITE(yunsung8_bankswitch_w) // ROM Bank (again?)
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
AM_RANGE(0x0000, 0xbfff) AM_ROM
@@ -74,7 +74,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( port_map, AS_IO, 8, yunsung8_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("SYSTEM") AM_WRITE(yunsung8_videobank_w) // video RAM bank
AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_WRITE(yunsung8_bankswitch_w) // ROM Bank + Layers Enable
@@ -115,7 +115,7 @@ static WRITE8_HANDLER( yunsung8_adpcm_w )
-static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, yunsung8_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2") // Banked ROM
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("msm", yunsung8_sound_bankswitch_w ) // ROM Bank
diff --git a/src/mame/drivers/zac2650.c b/src/mame/drivers/zac2650.c
index ee0d7742d45..5d1845d4632 100644
--- a/src/mame/drivers/zac2650.c
+++ b/src/mame/drivers/zac2650.c
@@ -17,7 +17,7 @@
static WRITE8_HANDLER( tinvader_sound_w );
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, zac2650_state )
AM_RANGE(0x0000, 0x17ff) AM_ROM
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(tinvader_videoram_w) AM_BASE_MEMBER(zac2650_state, m_videoram)
AM_RANGE(0x1c00, 0x1cff) AM_RAM
@@ -30,7 +30,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
AM_RANGE(0x1f00, 0x1fff) AM_READWRITE(zac_s2636_r, zac_s2636_w) AM_BASE_MEMBER(zac2650_state, m_s2636_0_ram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( port_map, AS_IO, 8 )
+static ADDRESS_MAP_START( port_map, AS_IO, 8, zac2650_state )
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
ADDRESS_MAP_END
diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c
index cb748fdf009..6721e3260a4 100644
--- a/src/mame/drivers/zaccaria.c
+++ b/src/mame/drivers/zaccaria.c
@@ -258,7 +258,7 @@ static WRITE8_HANDLER( nmi_mask_w )
state->m_nmi_mask = data & 1;
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, zaccaria_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_READONLY
AM_RANGE(0x6400, 0x6407) AM_READ(zaccaria_prot1_r)
@@ -300,7 +300,7 @@ ADDRESS_MAP_END
6821 PIA: CA1 comes from the master sound cpu's latch bit 7 (which is also connected to the AY chip at 4G's IOB1); CB1 comes from a periodic counter clocked by the 6802's clock, divided by 4096. CA2 and CB2 are disconnected. PA0-7 connect to the data busses of the AY-3-8910 chips; PB0 and PB1 connect to the BC1 and BDIR pins of the AY chip at 4G; PB2 and PB3 connect to the BC1 and BDIR pins of the AY chip at 4H.
*/
-static ADDRESS_MAP_START( sound_map_1, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map_1, AS_PROGRAM, 8, zaccaria_state )
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x500c, 0x500f) AM_DEVREADWRITE_MODERN("pia0", pia6821_device, read, write) AM_MIRROR(0x1ff0)
AM_RANGE(0x8000, 0x9fff) AM_ROM AM_MIRROR(0x2000) // rom 13
@@ -327,7 +327,7 @@ ADDRESS_MAP_END
6821 PIA: PA0-7, CA2 and CB1 connect to the TMS5200; CA1 and CB2 are disconnected, though the test mode assumes there's something connected to CB2 (possibly another LED like the one connected to PB4); PB3 connects to 'ACS' which goes to the z80.
*/
-static ADDRESS_MAP_START( sound_map_2, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sound_map_2, AS_PROGRAM, 8, zaccaria_state )
AM_RANGE(0x0000, 0x007f) AM_RAM /* 6802 internal ram */
AM_RANGE(0x0090, 0x0093) AM_DEVREADWRITE_MODERN("pia1", pia6821_device, read, write) AM_MIRROR(0x8F6C)
AM_RANGE(0x1000, 0x1000) AM_DEVWRITE("dac2", mc1408_data_w) AM_MIRROR(0x83FF) /* MC1408 */
diff --git a/src/mame/drivers/zaxxon.c b/src/mame/drivers/zaxxon.c
index b1ea7c2741b..8258a237877 100644
--- a/src/mame/drivers/zaxxon.c
+++ b/src/mame/drivers/zaxxon.c
@@ -431,7 +431,7 @@ static CUSTOM_INPUT( zaxxon_coin_r )
*************************************/
/* complete memory map derived from schematics */
-static ADDRESS_MAP_START( zaxxon_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( zaxxon_map, AS_PROGRAM, 8, zaxxon_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x1c00) AM_RAM_WRITE(zaxxon_videoram_w) AM_BASE_MEMBER(zaxxon_state,m_videoram)
@@ -454,7 +454,7 @@ ADDRESS_MAP_END
/* complete memory map derived from schematics */
-static ADDRESS_MAP_START( congo_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( congo_map, AS_PROGRAM, 8, zaxxon_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0xa000, 0xa3ff) AM_MIRROR(0x1800) AM_RAM_WRITE(zaxxon_videoram_w) AM_BASE_MEMBER(zaxxon_state,m_videoram)
@@ -480,7 +480,7 @@ ADDRESS_MAP_END
/* complete memory map derived from schematics */
-static ADDRESS_MAP_START( congo_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( congo_sound_map, AS_PROGRAM, 8, zaxxon_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_MIRROR(0x1800) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_DEVWRITE("sn1", sn76496_w)
diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c
index 710c33ac6a7..74bcbac0af5 100644
--- a/src/mame/drivers/zn.c
+++ b/src/mame/drivers/zn.c
@@ -419,7 +419,7 @@ static WRITE32_HANDLER( coin_w )
}
}
-static ADDRESS_MAP_START( zn_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( zn_map, AS_PROGRAM, 32, zn_state )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE("share1") /* ram */
AM_RANGE(0x00400000, 0x007fffff) AM_RAM AM_SHARE("share1") /* ram mirror */
AM_RANGE(0x1fa00000, 0x1fa00003) AM_READ_PORT("P1")
@@ -445,7 +445,7 @@ static ADDRESS_MAP_START( zn_map, AS_PROGRAM, 32 )
AM_RANGE(0xfffe0130, 0xfffe0133) AM_WRITENOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( link_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( link_map, AS_PROGRAM, 8, zn_state )
ADDRESS_MAP_END
static void zn_driver_init( running_machine &machine )
@@ -698,7 +698,7 @@ static MACHINE_RESET( coh1000c )
zn_machine_init(machine);
}
-static ADDRESS_MAP_START( qsound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( qsound_map, AS_PROGRAM, 8, zn_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank10") /* banked (contains music data) */
AM_RANGE(0xd000, 0xd002) AM_DEVWRITE("qsound", qsound_w)
@@ -707,7 +707,7 @@ static ADDRESS_MAP_START( qsound_map, AS_PROGRAM, 8 )
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( qsound_portmap, AS_IO, 8 )
+static ADDRESS_MAP_START( qsound_portmap, AS_IO, 8, zn_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
ADDRESS_MAP_END
@@ -1193,7 +1193,7 @@ static MACHINE_RESET( coh1000ta )
zn_machine_init(machine);
}
-static ADDRESS_MAP_START( fx1a_sound_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( fx1a_sound_map, AS_PROGRAM, 8, zn_state )
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10") /* Fallthrough */
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
@@ -1659,7 +1659,7 @@ static MACHINE_RESET( coh1002e )
zn_machine_init(machine);
}
-static ADDRESS_MAP_START( psarc_snd_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( psarc_snd_map, AS_PROGRAM, 16, zn_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x0fffff) AM_RAM
AM_RANGE(0x100000, 0x10001f) AM_DEVREADWRITE8( "ymf", ymf271_r, ymf271_w, 0x00ff )
@@ -2574,12 +2574,12 @@ static READ8_HANDLER( cbaj_z80_ready_r )
return ret;
}
-static ADDRESS_MAP_START( cbaj_z80_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( cbaj_z80_map, AS_PROGRAM, 8, zn_state )
AM_RANGE( 0x0000, 0x7fff ) AM_ROM
AM_RANGE( 0x8000, 0xffff ) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cbaj_z80_port_map, AS_IO, 8)
+static ADDRESS_MAP_START( cbaj_z80_port_map, AS_IO, 8, zn_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x84, 0x85 ) AM_DEVREADWRITE( "ymz", ymz280b_r, ymz280b_w )
AM_RANGE( 0x90, 0x90 ) AM_READWRITE( cbaj_z80_latch_r, cbaj_z80_latch_w )
diff --git a/src/mame/drivers/zr107.c b/src/mame/drivers/zr107.c
index 04d0384194c..df58069d698 100644
--- a/src/mame/drivers/zr107.c
+++ b/src/mame/drivers/zr107.c
@@ -402,7 +402,7 @@ static MACHINE_START( zr107 )
ppcdrc_add_fastram(machine.device("maincpu"), 0x00000000, 0x000fffff, FALSE, state->m_workram);
}
-static ADDRESS_MAP_START( zr107_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( zr107_map, AS_PROGRAM, 32, zr107_state )
AM_RANGE(0x00000000, 0x000fffff) AM_RAM AM_BASE_MEMBER(zr107_state, m_workram) /* Work RAM */
AM_RANGE(0x74000000, 0x74003fff) AM_DEVREADWRITE("k056832", k056832_ram_long_r, k056832_ram_long_w)
AM_RANGE(0x74020000, 0x7402003f) AM_DEVREADWRITE("k056832", k056832_long_r, k056832_long_w)
@@ -430,7 +430,7 @@ static WRITE32_HANDLER( jetwave_palette_w )
palette_set_color_rgb(space->machine(), offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
}
-static ADDRESS_MAP_START( jetwave_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( jetwave_map, AS_PROGRAM, 32, zr107_state )
AM_RANGE(0x00000000, 0x000fffff) AM_MIRROR(0x80000000) AM_RAM /* Work RAM */
AM_RANGE(0x74000000, 0x740000ff) AM_MIRROR(0x80000000) AM_DEVREADWRITE("k001604", k001604_reg_r, k001604_reg_w)
AM_RANGE(0x74010000, 0x7401ffff) AM_MIRROR(0x80000000) AM_RAM_WRITE(jetwave_palette_w) AM_BASE_GENERIC(paletteram)
@@ -455,7 +455,7 @@ ADDRESS_MAP_END
/**********************************************************************/
-static ADDRESS_MAP_START( sound_memmap, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( sound_memmap, AS_PROGRAM, 16, zr107_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM /* Work RAM */
AM_RANGE(0x200000, 0x2004ff) AM_DEVREADWRITE8_MODERN("konami1", k054539_device, read, write, 0xff00)
@@ -485,7 +485,7 @@ static WRITE32_HANDLER( dsp_dataram_w )
state->m_sharc_dataram[offset] = data;
}
-static ADDRESS_MAP_START( sharc_map, AS_DATA, 32 )
+static ADDRESS_MAP_START( sharc_map, AS_DATA, 32, zr107_state )
AM_RANGE(0x400000, 0x41ffff) AM_READWRITE(cgboard_0_shared_sharc_r, cgboard_0_shared_sharc_w)
AM_RANGE(0x500000, 0x5fffff) AM_READWRITE(dsp_dataram_r, dsp_dataram_w)
AM_RANGE(0x600000, 0x6fffff) AM_READWRITE(K001005_r, K001005_w)
diff --git a/src/mame/machine/asic65.c b/src/mame/machine/asic65.c
index bfcf3d64a7f..751e59fb70f 100644
--- a/src/mame/machine/asic65.c
+++ b/src/mame/machine/asic65.c
@@ -513,12 +513,12 @@ static READ16_HANDLER( asci65_get_bio )
*
*************************************/
-static ADDRESS_MAP_START( asic65_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( asic65_program_map, AS_PROGRAM, 16, driver_device )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000, 0xfff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( asic65_io_map, AS_IO, 16 )
+static ADDRESS_MAP_START( asic65_io_map, AS_IO, 16, driver_device )
AM_RANGE(0, 0) AM_MIRROR(6) AM_READWRITE(asic65_68k_r, asic65_68k_w)
AM_RANGE(1, 1) AM_MIRROR(6) AM_READWRITE(asic65_stat_r, asic65_stat_w)
AM_RANGE(TMS32010_BIO, TMS32010_BIO) AM_READ(asci65_get_bio)
diff --git a/src/mame/machine/buggychl.c b/src/mame/machine/buggychl.c
index 5ce4ff46335..11105e95d81 100644
--- a/src/mame/machine/buggychl.c
+++ b/src/mame/machine/buggychl.c
@@ -183,7 +183,7 @@ READ8_DEVICE_HANDLER( buggychl_mcu_status_r )
return res;
}
-ADDRESS_MAP_START( buggychl_mcu_map, AS_PROGRAM, 8 )
+ADDRESS_MAP_START( buggychl_mcu_map, AS_PROGRAM, 8, buggychl_mcu_device )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_DEVREADWRITE("bmcu", buggychl_68705_port_a_r, buggychl_68705_port_a_w)
AM_RANGE(0x0001, 0x0001) AM_DEVREADWRITE("bmcu", buggychl_68705_port_b_r, buggychl_68705_port_b_w)
diff --git a/src/mame/machine/megadriv.c b/src/mame/machine/megadriv.c
index 521905e572e..b484f3564ce 100644
--- a/src/mame/machine/megadriv.c
+++ b/src/mame/machine/megadriv.c
@@ -2070,7 +2070,7 @@ WRITE16_HANDLER( megadriv_68k_io_write )
-static ADDRESS_MAP_START( megadriv_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( megadriv_map, AS_PROGRAM, 16, driver_device )
AM_RANGE(0x000000, 0x3fffff) AM_ROM
/* (0x000000 - 0x3fffff) == GAME ROM (4Meg Max, Some games have special banking too) */
@@ -2353,7 +2353,7 @@ static READ8_HANDLER( megadriv_z80_unmapped_read )
return 0xff;
}
-static ADDRESS_MAP_START( megadriv_z80_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( megadriv_z80_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_RAMBANK("bank1") AM_MIRROR(0x2000) // RAM can be accessed by the 68k
AM_RANGE(0x4000, 0x4003) AM_DEVREADWRITE("ymsnd", ym2612_r,ym2612_w)
@@ -2367,7 +2367,7 @@ static ADDRESS_MAP_START( megadriv_z80_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_READWRITE(z80_read_68k_banked_data,z80_write_68k_banked_data) // The Z80 can read the 68k address space this way
ADDRESS_MAP_END
-static ADDRESS_MAP_START( megadriv_z80_io_map, AS_IO, 8 )
+static ADDRESS_MAP_START( megadriv_z80_io_map, AS_IO, 8, driver_device )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x0000, 0xff) AM_NOP
ADDRESS_MAP_END
@@ -2376,7 +2376,7 @@ ADDRESS_MAP_END
/************************************ Megadrive Bootlegs *************************************/
// smaller ROM region because some bootlegs check for RAM there
-static ADDRESS_MAP_START( md_bootleg_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( md_bootleg_map, AS_PROGRAM, 16, driver_device )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* Cartridge Program Rom */
AM_RANGE(0x200000, 0x2023ff) AM_RAM // tested
@@ -3730,7 +3730,7 @@ _32X_MAP_RAM_WRITEHANDLERS(paletteram) // _32x_sh2_paletteram_w
// SH2 memory maps
/**********************************************************************************************/
-static ADDRESS_MAP_START( sh2_main_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( sh2_main_map, AS_PROGRAM, 32, driver_device )
AM_RANGE(0x00000000, 0x00003fff) AM_ROM
AM_RANGE(0x00004000, 0x00004003) AM_READWRITE( _32x_sh2_master_4000_common_4002_r, _32x_sh2_master_4000_common_4002_w )
@@ -3759,7 +3759,7 @@ static ADDRESS_MAP_START( sh2_main_map, AS_PROGRAM, 32 )
AM_RANGE(0xc0000000, 0xc0000fff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sh2_slave_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( sh2_slave_map, AS_PROGRAM, 32, driver_device )
AM_RANGE(0x00000000, 0x00003fff) AM_ROM
AM_RANGE(0x00004000, 0x00004003) AM_READWRITE( _32x_sh2_slave_4000_common_4002_r, _32x_sh2_slave_4000_common_4002_w )
@@ -6767,7 +6767,7 @@ READ16_HANDLER( segacd_font_converted_r )
return retdata;
}
-static ADDRESS_MAP_START( segacd_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( segacd_map, AS_PROGRAM, 16, driver_device )
AM_RANGE(0x000000, 0x07ffff) AM_RAM AM_BASE(&segacd_4meg_prgram)
AM_RANGE(0x080000, 0x0bffff) AM_READWRITE(segacd_sub_dataram_part1_r, segacd_sub_dataram_part1_w) AM_BASE(&segacd_dataram)
@@ -7113,12 +7113,12 @@ static READ16_HANDLER( svp_68k_cell2_r )
return ((UINT16 *)state->m_dram)[a1];
}
-static ADDRESS_MAP_START( svp_ssp_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( svp_ssp_map, AS_PROGRAM, 16, driver_device )
AM_RANGE(0x0000, 0x03ff) AM_ROMBANK("bank3")
AM_RANGE(0x0400, 0xffff) AM_ROMBANK("bank4")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( svp_ext_map, AS_IO, 16 )
+static ADDRESS_MAP_START( svp_ext_map, AS_IO, 16, driver_device )
ADDRESS_MAP_GLOBAL_MASK(0xf)
AM_RANGE(0*2, 0*2+1) AM_READWRITE(read_PM0, write_PM0)
AM_RANGE(1*2, 1*2+1) AM_READWRITE(read_PM1, write_PM1)
diff --git a/src/mame/machine/model1.c b/src/mame/machine/model1.c
index d8174444094..60191b81df5 100644
--- a/src/mame/machine/model1.c
+++ b/src/mame/machine/model1.c
@@ -2246,7 +2246,7 @@ const mb86233_cpu_core model1_vr_tgp_config =
};
/* TGP memory map */
-ADDRESS_MAP_START( model1_vr_tgp_map, AS_PROGRAM, 32 )
+ADDRESS_MAP_START( model1_vr_tgp_map, AS_PROGRAM, 32, driver_device )
AM_RANGE(0x00000000, 0x000007ff) AM_RAM AM_REGION("tgp", 0)
AM_RANGE(0x00400000, 0x00407fff) AM_READWRITE(copro_ram_r, copro_ram_w)
AM_RANGE(0xff800000, 0xff87ffff) AM_ROM AM_REGION("user2", 0)
diff --git a/src/mame/machine/namco50.c b/src/mame/machine/namco50.c
index 333c262ea26..11ebffde334 100644
--- a/src/mame/machine/namco50.c
+++ b/src/mame/machine/namco50.c
@@ -253,7 +253,7 @@ READ8_DEVICE_HANDLER( namco_50xx_read )
DEVICE INTERFACE
***************************************************************************/
-static ADDRESS_MAP_START( namco_50xx_map_io, AS_IO, 8 )
+static ADDRESS_MAP_START( namco_50xx_map_io, AS_IO, 8, namco_50xx_device )
AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(namco_50xx_K_r)
AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(namco_50xx_O_w)
AM_RANGE(MB88_PORTR0, MB88_PORTR0) AM_READ(namco_50xx_R0_r)
diff --git a/src/mame/machine/namco51.c b/src/mame/machine/namco51.c
index bc6e4447869..f7ae6adbd36 100644
--- a/src/mame/machine/namco51.c
+++ b/src/mame/machine/namco51.c
@@ -352,7 +352,7 @@ READ8_DEVICE_HANDLER( namco_51xx_read )
DEVICE INTERFACE
***************************************************************************/
-static ADDRESS_MAP_START( namco_51xx_map_io, AS_IO, 8 )
+static ADDRESS_MAP_START( namco_51xx_map_io, AS_IO, 8, namco_51xx_device )
// AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(namco_51xx_K_r)
// AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(namco_51xx_O_w)
// AM_RANGE(MB88_PORTR0, MB88_PORTR0) AM_READ(namco_51xx_R0_r)
diff --git a/src/mame/machine/namco53.c b/src/mame/machine/namco53.c
index c7b45d11d8e..3b5d3dfaa7b 100644
--- a/src/mame/machine/namco53.c
+++ b/src/mame/machine/namco53.c
@@ -144,7 +144,7 @@ READ8_DEVICE_HANDLER( namco_53xx_read )
DEVICE INTERFACE
***************************************************************************/
-static ADDRESS_MAP_START( namco_53xx_map_io, AS_IO, 8 )
+static ADDRESS_MAP_START( namco_53xx_map_io, AS_IO, 8,namco_53xx_device )
AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(namco_53xx_K_r)
AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(namco_53xx_O_w)
AM_RANGE(MB88_PORTP, MB88_PORTP) AM_WRITE(namco_53xx_P_w)
diff --git a/src/mame/machine/namco62.c b/src/mame/machine/namco62.c
index 662e11d8504..090fc552bde 100644
--- a/src/mame/machine/namco62.c
+++ b/src/mame/machine/namco62.c
@@ -37,7 +37,7 @@ INLINE namco_62xx_state *get_safe_token(device_t *device)
DEVICE INTERFACE
***************************************************************************/
-static ADDRESS_MAP_START( namco_62xx_map_io, AS_IO, 8 )
+static ADDRESS_MAP_START( namco_62xx_map_io, AS_IO, 8, namco_62xx_device )
// AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(namco_62xx_K_r)
// AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(namco_62xx_O_w)
// AM_RANGE(MB88_PORTR0, MB88_PORTR0) AM_READ(namco_62xx_R0_r)
diff --git a/src/mame/machine/pcshare.c b/src/mame/machine/pcshare.c
index 3244156a2d4..cabc578f74a 100644
--- a/src/mame/machine/pcshare.c
+++ b/src/mame/machine/pcshare.c
@@ -325,7 +325,7 @@ static const struct pit8253_config at_pit8254_config =
}
};
-ADDRESS_MAP_START( pcat32_io_common, AS_IO, 32 )
+ADDRESS_MAP_START( pcat32_io_common, AS_IO, 32, driver_device )
AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_r, i8237_w, 0xffffffff)
AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8("pit8254", pit8253_r, pit8253_w, 0xffffffff)
diff --git a/src/mame/machine/pgmprot1.c b/src/mame/machine/pgmprot1.c
index 20c94878ef1..c0ba26c63a1 100644
--- a/src/mame/machine/pgmprot1.c
+++ b/src/mame/machine/pgmprot1.c
@@ -170,14 +170,14 @@ static WRITE32_HANDLER( pgm_arm7_type1_shareram_w )
/* 55857E? */
/* Knights of Valor, Photo Y2k */
/* no execute only space? */
-static ADDRESS_MAP_START( kov_map, AS_PROGRAM, 16)
+static ADDRESS_MAP_START( kov_map, AS_PROGRAM, 16, pgm_arm_type1_state )
AM_IMPORT_FROM(pgm_mem)
AM_RANGE(0x100000, 0x4effff) AM_ROMBANK("bank1") /* Game ROM */
AM_RANGE(0x4f0000, 0x4f003f) AM_READWRITE(pgm_arm7_type1_ram_r, pgm_arm7_type1_ram_w) /* ARM7 Shared RAM */
AM_RANGE(0x500000, 0x500005) AM_READWRITE(pgm_arm7_type1_68k_protlatch_r, pgm_arm7_type1_68k_protlatch_w) /* ARM7 Latch */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( 55857E_arm7_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( 55857E_arm7_map, AS_PROGRAM, 32, pgm_arm_type1_state )
AM_RANGE(0x00000000, 0x00003fff) AM_ROM
AM_RANGE(0x08100000, 0x083fffff) AM_READ(pgm_arm7_type1_exrom_r) // unpopulated, returns 0 to keep checksum happy
AM_RANGE(0x10000000, 0x100003ff) AM_RAM // internal ram for asic
@@ -193,12 +193,12 @@ ADDRESS_MAP_END
/**************************** SIMULATIONS *****************************/
-static ADDRESS_MAP_START( kov_sim_map, AS_PROGRAM, 16)
+static ADDRESS_MAP_START( kov_sim_map, AS_PROGRAM, 16, pgm_arm_type1_state )
AM_IMPORT_FROM(pgm_mem)
AM_RANGE(0x100000, 0x4effff) AM_ROMBANK("bank1") /* Game ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cavepgm_mem, AS_PROGRAM, 16)
+static ADDRESS_MAP_START( cavepgm_mem, AS_PROGRAM, 16, pgm_arm_type1_state )
AM_IMPORT_FROM(pgm_base_mem)
AM_RANGE(0x000000, 0x3fffff) AM_ROM
/* protection devices installed (simulated) later */
diff --git a/src/mame/machine/pgmprot2.c b/src/mame/machine/pgmprot2.c
index b1639d09b5b..0dbacb24cf6 100644
--- a/src/mame/machine/pgmprot2.c
+++ b/src/mame/machine/pgmprot2.c
@@ -119,7 +119,7 @@ static WRITE16_HANDLER( arm7_ram_w )
/* 55857F? */
/* Knights of Valor 2, Martial Masters, DoDonpachi 2 */
/* no execute only space? */
-static ADDRESS_MAP_START( kov2_mem, AS_PROGRAM, 16)
+static ADDRESS_MAP_START( kov2_mem, AS_PROGRAM, 16, pgm_arm_type2_state )
AM_IMPORT_FROM(pgm_mem)
AM_RANGE(0x100000, 0x5fffff) AM_ROMBANK("bank1") /* Game ROM */
AM_RANGE(0xd00000, 0xd0ffff) AM_READWRITE(arm7_ram_r, arm7_ram_w) /* ARM7 Shared RAM */
@@ -127,7 +127,7 @@ static ADDRESS_MAP_START( kov2_mem, AS_PROGRAM, 16)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( 55857F_arm7_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( 55857F_arm7_map, AS_PROGRAM, 32, pgm_arm_type2_state )
AM_RANGE(0x00000000, 0x00003fff) AM_ROM
AM_RANGE(0x08000000, 0x083fffff) AM_ROM AM_REGION("user1", 0)
AM_RANGE(0x10000000, 0x100003ff) AM_RAM
diff --git a/src/mame/machine/pgmprot3.c b/src/mame/machine/pgmprot3.c
index 25b4bd09d06..4861537213b 100644
--- a/src/mame/machine/pgmprot3.c
+++ b/src/mame/machine/pgmprot3.c
@@ -132,7 +132,7 @@ static WRITE32_HANDLER( svg_latch_arm_w )
/* 55857G? */
/* Demon Front, The Gladiator, Happy 6-in-1, Spectral Vs. Generation, Killing Blade EX */
/* the ones with an EXECUTE ONLY region of ARM space? */
-static ADDRESS_MAP_START( svg_68k_mem, AS_PROGRAM, 16)
+static ADDRESS_MAP_START( svg_68k_mem, AS_PROGRAM, 16, pgm_arm_type3_state )
AM_IMPORT_FROM(pgm_mem)
AM_RANGE(0x100000, 0x1fffff) AM_ROMBANK("bank1") /* Game ROM */
@@ -142,7 +142,7 @@ static ADDRESS_MAP_START( svg_68k_mem, AS_PROGRAM, 16)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( 55857G_arm7_map, AS_PROGRAM, 32 )
+static ADDRESS_MAP_START( 55857G_arm7_map, AS_PROGRAM, 32, pgm_arm_type3_state )
AM_RANGE(0x00000000, 0x00003fff) AM_ROM
AM_RANGE(0x08000000, 0x087fffff) AM_ROM AM_REGION("user1", 0)
AM_RANGE(0x10000000, 0x100003ff) AM_RAM
diff --git a/src/mame/machine/pgmprot4.c b/src/mame/machine/pgmprot4.c
index 07b8e87db50..ce7de77607e 100644
--- a/src/mame/machine/pgmprot4.c
+++ b/src/mame/machine/pgmprot4.c
@@ -548,7 +548,7 @@ DRIVER_INIT( drgw3 )
}
-static ADDRESS_MAP_START( killbld_mem, AS_PROGRAM, 16)
+static ADDRESS_MAP_START( killbld_mem, AS_PROGRAM, 16, pgm_022_025_state )
AM_IMPORT_FROM(pgm_mem)
AM_RANGE(0x100000, 0x2fffff) AM_ROMBANK("bank1") /* Game ROM */
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_MEMBER(pgm_022_025_state, m_sharedprotram) // Shared with protection device
diff --git a/src/mame/machine/pgmprot6.c b/src/mame/machine/pgmprot6.c
index a9e3a61c106..b347a532d64 100644
--- a/src/mame/machine/pgmprot6.c
+++ b/src/mame/machine/pgmprot6.c
@@ -213,7 +213,7 @@ DRIVER_INIT( olds )
state->save_item(NAME(state->m_olds_cmd3));
}
-static ADDRESS_MAP_START( olds_mem, AS_PROGRAM, 16)
+static ADDRESS_MAP_START( olds_mem, AS_PROGRAM, 16, pgm_028_025_state )
AM_IMPORT_FROM(pgm_mem)
AM_RANGE(0x100000, 0x3fffff) AM_ROMBANK("bank1") /* Game ROM */
AM_RANGE(0x400000, 0x403fff) AM_RAM AM_BASE_MEMBER(pgm_028_025_state, m_sharedprotram) // Shared with protection device
diff --git a/src/mame/machine/segamsys.c b/src/mame/machine/segamsys.c
index 3f2163a76ad..a19616d679e 100644
--- a/src/mame/machine/segamsys.c
+++ b/src/mame/machine/segamsys.c
@@ -30,14 +30,14 @@ static struct sms_vdp *md_sms_vdp;
#define SMS_VDP_VRAM(address) chip->vram[(address)&0x3fff]
#ifdef UNUSED_FUNCTION
-static ADDRESS_MAP_START( sms_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( sms_map, AS_PROGRAM, 8, driver_device )
// AM_RANGE(0x0000 , 0xbfff) AM_ROM
// AM_RANGE(0xc000 , 0xdfff) AM_RAM AM_MIRROR(0x2000)
ADDRESS_MAP_END
#endif
-ADDRESS_MAP_START( sms_io_map, AS_IO, 8 )
+ADDRESS_MAP_START( sms_io_map, AS_IO, 8, driver_device )
ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
diff --git a/src/mame/video/bfm_adr2.c b/src/mame/video/bfm_adr2.c
index 0c103eb23a1..f7a28f9301e 100644
--- a/src/mame/video/bfm_adr2.c
+++ b/src/mame/video/bfm_adr2.c
@@ -494,7 +494,7 @@ void adder2_decode_char_roms(running_machine &machine)
// adder2 board memorymap /////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
-ADDRESS_MAP_START( adder2_memmap, AS_PROGRAM, 8 )
+ADDRESS_MAP_START( adder2_memmap, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x0000) AM_WRITE(adder2_screen_page_w) // screen access/display select
AM_RANGE(0x0000, 0x7FFF) AM_ROMBANK("bank2") // 8k paged ROM (4 pages)
diff --git a/src/mame/video/bfm_dm01.c b/src/mame/video/bfm_dm01.c
index f3bf44b2dbf..c9d5b1479b3 100644
--- a/src/mame/video/bfm_dm01.c
+++ b/src/mame/video/bfm_dm01.c
@@ -214,7 +214,7 @@ static WRITE8_HANDLER( unknown_w )
///////////////////////////////////////////////////////////////////////////
-ADDRESS_MAP_START( bfm_dm01_memmap, AS_PROGRAM, 8 )
+ADDRESS_MAP_START( bfm_dm01_memmap, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_RAM // 8k RAM
AM_RANGE(0x2000, 0x2000) AM_READWRITE(control_r, control_w) // control reg
AM_RANGE(0x2800, 0x2800) AM_READWRITE(mux_r,mux_w) // mux
diff --git a/src/mame/video/cidelsa.c b/src/mame/video/cidelsa.c
index db1bae8acd1..2f8ee14c274 100644
--- a/src/mame/video/cidelsa.c
+++ b/src/mame/video/cidelsa.c
@@ -113,12 +113,12 @@ WRITE_LINE_MEMBER( cidelsa_state::prd_w )
/* Page RAM */
-static ADDRESS_MAP_START( cidelsa_page_ram, AS_0, 8 )
+static ADDRESS_MAP_START( cidelsa_page_ram, AS_0, 8, driver_device )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000, 0x3ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( draco_page_ram, AS_0, 8 )
+static ADDRESS_MAP_START( draco_page_ram, AS_0, 8, driver_device )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000, 0x7ff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/video/gp9001.c b/src/mame/video/gp9001.c
index 55e07888bf3..be47c17ddf0 100644
--- a/src/mame/video/gp9001.c
+++ b/src/mame/video/gp9001.c
@@ -199,7 +199,7 @@ static WRITE16_DEVICE_HANDLER( gp9001_spram_w )
COMBINE_DATA(&vdp->sp.vram16[offset]);
}
-static ADDRESS_MAP_START( gp9001vdp_map, AS_0, 16 )
+static ADDRESS_MAP_START( gp9001vdp_map, AS_0, 16, gp9001vdp_device )
AM_RANGE(0x0000, 0x0fff) AM_DEVREADWRITE(DEVICE_SELF, gp9001_bg_tmap_r, gp9001_bg_tmap_w)
AM_RANGE(0x1000, 0x1fff) AM_DEVREADWRITE(DEVICE_SELF, gp9001_fg_tmap_r, gp9001_fg_tmap_w)
AM_RANGE(0x2000, 0x2fff) AM_DEVREADWRITE(DEVICE_SELF, gp9001_top_tmap_r, gp9001_top_tmap_w)
diff --git a/src/mame/video/qix.c b/src/mame/video/qix.c
index b4d21328afd..02b922a4255 100644
--- a/src/mame/video/qix.c
+++ b/src/mame/video/qix.c
@@ -344,7 +344,7 @@ static MC6845_UPDATE_ROW( update_row )
*
*************************************/
-static ADDRESS_MAP_START( qix_video_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( qix_video_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x7fff) AM_READWRITE(qix_videoram_r, qix_videoram_w)
AM_RANGE(0x8000, 0x83ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x8400, 0x87ff) AM_RAM AM_SHARE("nvram")
@@ -361,7 +361,7 @@ static ADDRESS_MAP_START( qix_video_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( zookeep_video_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( zookeep_video_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x7fff) AM_READWRITE(qix_videoram_r, qix_videoram_w)
AM_RANGE(0x8000, 0x83ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x8400, 0x87ff) AM_RAM AM_SHARE("nvram")
@@ -380,7 +380,7 @@ static ADDRESS_MAP_START( zookeep_video_map, AS_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( slither_video_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( slither_video_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x0000, 0x7fff) AM_READWRITE(qix_videoram_r, slither_videoram_w)
AM_RANGE(0x8000, 0x83ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x8400, 0x87ff) AM_RAM AM_SHARE("nvram")