summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2012-05-25 14:38:46 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2012-05-25 14:38:46 +0000
commit4bbba13b380087f621399c552d8ea80a6316b7c8 (patch)
treeb2836cdd5a17d711d55f1c0c0069fc04217177ba /src
parent70cd5297735e3022cdf7224e89f7f54838f0ff3f (diff)
Conversion of _DEVICE_HA​NDLER to _MEMBER methods - part 2 (no whatsnew)
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/40love.c64
-rw-r--r--src/mame/drivers/4enraya.c14
-rw-r--r--src/mame/drivers/aerofgt.c10
-rw-r--r--src/mame/drivers/ajax.c7
-rw-r--r--src/mame/drivers/aliens.c7
-rw-r--r--src/mame/drivers/amspdwy.c7
-rw-r--r--src/mame/drivers/arabian.c19
-rw-r--r--src/mame/drivers/ashnojoe.c11
-rw-r--r--src/mame/drivers/asterix.c5
-rw-r--r--src/mame/drivers/asuka.c19
-rw-r--r--src/mame/drivers/atarisy1.c28
-rw-r--r--src/mame/drivers/bagman.c71
-rw-r--r--src/mame/drivers/battlera.c5
-rw-r--r--src/mame/drivers/bking.c8
-rw-r--r--src/mame/drivers/bladestl.c15
-rw-r--r--src/mame/drivers/blueprnt.c7
-rw-r--r--src/mame/drivers/bogeyman.c11
-rw-r--r--src/mame/drivers/boogwing.c9
-rw-r--r--src/mame/drivers/btime.c11
-rw-r--r--src/mame/drivers/buggychl.c16
-rw-r--r--src/mame/drivers/bzone.c15
-rw-r--r--src/mame/drivers/cabal.c17
-rw-r--r--src/mame/drivers/calomega.c128
-rw-r--r--src/mame/drivers/cave.c96
-rw-r--r--src/mame/drivers/cchasm.c6
-rw-r--r--src/mame/drivers/cd32.c23
-rw-r--r--src/mame/drivers/centiped.c18
-rw-r--r--src/mame/drivers/chaknpop.c12
-rw-r--r--src/mame/drivers/champbas.c20
-rw-r--r--src/mame/drivers/chqflag.c7
-rw-r--r--src/mame/drivers/cischeat.c21
-rw-r--r--src/mame/drivers/cninja.c7
-rw-r--r--src/mame/drivers/combatsc.c42
-rw-r--r--src/mame/drivers/compgolf.c14
-rw-r--r--src/mame/drivers/coolpool.c7
-rw-r--r--src/mame/drivers/cps1.c5
-rw-r--r--src/mame/drivers/crgolf.c12
-rw-r--r--src/mame/drivers/crimfght.c7
-rw-r--r--src/mame/drivers/cvs.c50
-rw-r--r--src/mame/drivers/darius.c65
-rw-r--r--src/mame/drivers/dassault.c7
-rw-r--r--src/mame/drivers/dbz.c6
-rw-r--r--src/mame/drivers/ddragon3.c5
-rw-r--r--src/mame/drivers/ddribble.c21
-rw-r--r--src/mame/drivers/dec8.c5
-rw-r--r--src/mame/drivers/deco32.c22
-rw-r--r--src/mame/drivers/deco_mlc.c7
-rw-r--r--src/mame/drivers/deniam.c10
-rw-r--r--src/mame/drivers/djmain.c20
-rw-r--r--src/mame/drivers/dkong.c49
-rw-r--r--src/mame/drivers/docastle.c20
-rw-r--r--src/mame/drivers/dooyong.c6
-rw-r--r--src/mame/drivers/dribling.c62
-rw-r--r--src/mame/drivers/dynax.c80
-rw-r--r--src/mame/drivers/epos.c6
-rw-r--r--src/mame/drivers/equites.c44
-rw-r--r--src/mame/drivers/esripsys.c18
-rw-r--r--src/mame/drivers/exerion.c18
-rw-r--r--src/mame/drivers/exprraid.c7
-rw-r--r--src/mame/drivers/exterm.c18
-rw-r--r--src/mame/drivers/fastlane.c20
-rw-r--r--src/mame/drivers/flstory.c57
-rw-r--r--src/mame/drivers/foodf.c20
-rw-r--r--src/mame/drivers/freekick.c21
-rw-r--r--src/mame/drivers/fromance.c14
-rw-r--r--src/mame/drivers/funworld.c28
-rw-r--r--src/mame/drivers/funybubl.c5
-rw-r--r--src/mame/drivers/fuukifg2.c5
-rw-r--r--src/mame/drivers/gaelco3d.c48
-rw-r--r--src/mame/drivers/galaga.c37
-rw-r--r--src/mame/drivers/galaxian.c152
-rw-r--r--src/mame/drivers/galaxold.c4
-rw-r--r--src/mame/drivers/galpani2.c29
-rw-r--r--src/mame/drivers/galpanic.c15
-rw-r--r--src/mame/drivers/gameplan.c72
-rw-r--r--src/mame/drivers/gaplus.c16
-rw-r--r--src/mame/drivers/gatron.c4
-rw-r--r--src/mame/drivers/gbusters.c5
-rw-r--r--src/mame/drivers/ginganin.c6
-rw-r--r--src/mame/drivers/gladiatr.c21
-rw-r--r--src/mame/drivers/goal92.c7
-rw-r--r--src/mame/drivers/goldstar.c29
-rw-r--r--src/mame/drivers/gotcha.c5
-rw-r--r--src/mame/drivers/gradius3.c5
-rw-r--r--src/mame/drivers/grchamp.c18
-rw-r--r--src/mame/drivers/gsword.c54
-rw-r--r--src/mame/drivers/gyruss.c22
-rw-r--r--src/mame/drivers/hcastle.c5
-rw-r--r--src/mame/drivers/hexion.c12
-rw-r--r--src/mame/drivers/hitme.c19
-rw-r--r--src/mame/drivers/hnayayoi.c30
-rw-r--r--src/mame/drivers/homerun.c21
-rw-r--r--src/mame/drivers/iqblock.c9
-rw-r--r--src/mame/drivers/ironhors.c14
-rw-r--r--src/mame/drivers/itech32.c42
-rw-r--r--src/mame/drivers/itech8.c22
-rw-r--r--src/mame/drivers/jack.c8
-rw-r--r--src/mame/drivers/jailbrek.c10
-rw-r--r--src/mame/drivers/jpmimpct.c77
-rw-r--r--src/mame/drivers/kaneko16.c89
-rw-r--r--src/mame/drivers/kchamp.c8
-rw-r--r--src/mame/drivers/kickgoal.c73
-rw-r--r--src/mame/drivers/kncljoe.c33
-rw-r--r--src/mame/drivers/ksayakyu.c12
-rw-r--r--src/mame/drivers/ladyfrog.c6
-rw-r--r--src/mame/drivers/laserbat.c55
-rw-r--r--src/mame/drivers/legionna.c5
-rw-r--r--src/mame/drivers/lockon.c12
-rw-r--r--src/mame/drivers/lordgun.c85
-rw-r--r--src/mame/drivers/lsasquad.c6
-rw-r--r--src/mame/drivers/lucky74.c17
-rw-r--r--src/mame/drivers/lwings.c7
-rw-r--r--src/mame/drivers/m72.c6
-rw-r--r--src/mame/drivers/m92.c5
-rw-r--r--src/mame/drivers/madalien.c10
-rw-r--r--src/mame/drivers/magmax.c34
-rw-r--r--src/mame/drivers/mainevt.c10
-rw-r--r--src/mame/drivers/mappy.c46
-rw-r--r--src/mame/drivers/mario.c7
-rw-r--r--src/mame/drivers/mcr68.c6
-rw-r--r--src/mame/drivers/megasys1.c38
-rw-r--r--src/mame/drivers/megazone.c15
-rw-r--r--src/mame/drivers/metro.c57
-rw-r--r--src/mame/drivers/mexico86.c5
-rw-r--r--src/mame/drivers/midyunit.c5
-rw-r--r--src/mame/drivers/midzeus.c10
-rw-r--r--src/mame/drivers/mitchell.c28
-rw-r--r--src/mame/drivers/mjkjidai.c5
-rw-r--r--src/mame/drivers/model1.c13
-rw-r--r--src/mame/drivers/model2.c13
-rw-r--r--src/mame/drivers/moo.c5
-rw-r--r--src/mame/drivers/mpu4.c620
-rw-r--r--src/mame/drivers/mpu4vid.c10
-rw-r--r--src/mame/drivers/msisaac.c26
-rw-r--r--src/mame/drivers/munchmo.c13
-rw-r--r--src/mame/drivers/n8080.c12
-rw-r--r--src/mame/drivers/namcona1.c8
-rw-r--r--src/mame/drivers/nemesis.c27
-rw-r--r--src/mame/drivers/nmk16.c12
-rw-r--r--src/mame/drivers/norautp.c20
-rw-r--r--src/mame/drivers/nycaptor.c6
-rw-r--r--src/mame/drivers/ojankohs.c26
-rw-r--r--src/mame/drivers/oneshot.c5
-rw-r--r--src/mame/drivers/opwolf.c38
-rw-r--r--src/mame/drivers/othldrby.c5
-rw-r--r--src/mame/drivers/overdriv.c13
-rw-r--r--src/mame/drivers/pandoras.c14
-rw-r--r--src/mame/drivers/paradise.c7
-rw-r--r--src/mame/drivers/parodius.c5
-rw-r--r--src/mame/drivers/pcktgal.c5
-rw-r--r--src/mame/drivers/pktgaldx.c7
-rw-r--r--src/mame/drivers/playch10.c13
-rw-r--r--src/mame/drivers/playmark.c14
-rw-r--r--src/mame/drivers/plygonet.c9
-rw-r--r--src/mame/drivers/polepos.c66
-rw-r--r--src/mame/drivers/popeye.c18
-rw-r--r--src/mame/drivers/prehisle.c10
-rw-r--r--src/mame/drivers/psikyo4.c9
-rw-r--r--src/mame/drivers/psikyosh.c11
-rw-r--r--src/mame/drivers/punchout.c15
-rw-r--r--src/mame/drivers/qdrmfgp.c34
-rw-r--r--src/mame/drivers/rainbow.c6
-rw-r--r--src/mame/drivers/rastan.c19
-rw-r--r--src/mame/drivers/renegade.c19
-rw-r--r--src/mame/drivers/rockrage.c10
-rw-r--r--src/mame/drivers/rohga.c9
-rw-r--r--src/mame/drivers/rollerg.c11
-rw-r--r--src/mame/drivers/route16.c5
-rw-r--r--src/mame/drivers/rpunch.c19
-rw-r--r--src/mame/drivers/runaway.c20
-rw-r--r--src/mame/drivers/sauro.c5
-rw-r--r--src/mame/drivers/sbugger.c6
-rw-r--r--src/mame/drivers/segag80r.c35
-rw-r--r--src/mame/drivers/segag80v.c8
-rw-r--r--src/mame/drivers/segas32.c13
-rw-r--r--src/mame/drivers/seibuspi.c34
-rw-r--r--src/mame/drivers/seicross.c22
-rw-r--r--src/mame/drivers/senjyo.c10
-rw-r--r--src/mame/drivers/seta.c16
-rw-r--r--src/mame/drivers/seta2.c16
-rw-r--r--src/mame/drivers/sf.c16
-rw-r--r--src/mame/drivers/shadfrce.c5
-rw-r--r--src/mame/drivers/shangkid.c29
-rw-r--r--src/mame/drivers/silkroad.c6
-rw-r--r--src/mame/drivers/skydiver.c10
-rw-r--r--src/mame/drivers/snk68.c10
-rw-r--r--src/mame/drivers/snowbros.c17
-rw-r--r--src/mame/drivers/speedatk.c7
-rw-r--r--src/mame/drivers/speedspn.c5
-rw-r--r--src/mame/drivers/spiders.c79
-rw-r--r--src/mame/drivers/sprint2.c25
-rw-r--r--src/mame/drivers/sprint4.c30
-rw-r--r--src/mame/drivers/srmp2.c42
-rw-r--r--src/mame/drivers/sslam.c72
-rw-r--r--src/mame/drivers/ssv.c22
-rw-r--r--src/mame/drivers/starshp1.c28
-rw-r--r--src/mame/drivers/stlforce.c10
-rw-r--r--src/mame/drivers/suna16.c38
-rw-r--r--src/mame/drivers/superqix.c44
-rw-r--r--src/mame/drivers/suprridr.c7
-rw-r--r--src/mame/drivers/system1.c10
-rw-r--r--src/mame/drivers/system16.c9
-rw-r--r--src/mame/drivers/tail2nos.c6
-rw-r--r--src/mame/drivers/taito_f2.c4
-rw-r--r--src/mame/drivers/taito_l.c59
-rw-r--r--src/mame/drivers/taitosj.c34
-rw-r--r--src/mame/drivers/tank8.c30
-rw-r--r--src/mame/drivers/tankbust.c16
-rw-r--r--src/mame/drivers/taxidriv.c123
-rw-r--r--src/mame/drivers/tceptor.c5
-rw-r--r--src/mame/drivers/tecmo.c17
-rw-r--r--src/mame/drivers/tecmosys.c10
-rw-r--r--src/mame/drivers/tehkanwc.c33
-rw-r--r--src/mame/drivers/thief.c5
-rw-r--r--src/mame/drivers/thunderx.c5
-rw-r--r--src/mame/drivers/tigeroad.c5
-rw-r--r--src/mame/drivers/timeplt.c9
-rw-r--r--src/mame/drivers/tmnt.c33
-rw-r--r--src/mame/drivers/tnzs.c34
-rw-r--r--src/mame/drivers/toaplan2.c15
-rw-r--r--src/mame/drivers/toki.c9
-rw-r--r--src/mame/drivers/topspeed.c25
-rw-r--r--src/mame/drivers/toypop.c29
-rw-r--r--src/mame/drivers/trackfld.c29
-rw-r--r--src/mame/drivers/truco.c24
-rw-r--r--src/mame/drivers/trucocl.c20
-rw-r--r--src/mame/drivers/tubep.c34
-rw-r--r--src/mame/drivers/tumbleb.c10
-rw-r--r--src/mame/drivers/tumblep.c2
-rw-r--r--src/mame/drivers/tunhunt.c30
-rw-r--r--src/mame/drivers/turbo.c129
-rw-r--r--src/mame/drivers/twin16.c15
-rw-r--r--src/mame/drivers/tx1.c34
-rw-r--r--src/mame/drivers/ultratnk.c20
-rw-r--r--src/mame/drivers/unico.c12
-rw-r--r--src/mame/drivers/vendetta.c7
-rw-r--r--src/mame/drivers/vertigo.c6
-rw-r--r--src/mame/drivers/videopin.c36
-rw-r--r--src/mame/drivers/vsnes.c34
-rw-r--r--src/mame/drivers/warpwarp.c19
-rw-r--r--src/mame/drivers/wc90b.c9
-rw-r--r--src/mame/drivers/wecleman.c41
-rw-r--r--src/mame/drivers/wolfpack.c10
-rw-r--r--src/mame/drivers/wwfwfest.c7
-rw-r--r--src/mame/drivers/xorworld.c15
-rw-r--r--src/mame/drivers/yiear.c10
-rw-r--r--src/mame/drivers/yunsung8.c9
-rw-r--r--src/mame/drivers/zaccaria.c88
-rw-r--r--src/mame/includes/40love.h5
-rw-r--r--src/mame/includes/4enraya.h1
-rw-r--r--src/mame/includes/aerofgt.h2
-rw-r--r--src/mame/includes/ajax.h1
-rw-r--r--src/mame/includes/aliens.h1
-rw-r--r--src/mame/includes/amspdwy.h1
-rw-r--r--src/mame/includes/arabian.h2
-rw-r--r--src/mame/includes/ashnojoe.h2
-rw-r--r--src/mame/includes/asterix.h1
-rw-r--r--src/mame/includes/asuka.h3
-rw-r--r--src/mame/includes/atarisy1.h4
-rw-r--r--src/mame/includes/bagman.h3
-rw-r--r--src/mame/includes/battlera.h1
-rw-r--r--src/mame/includes/bking.h2
-rw-r--r--src/mame/includes/bladestl.h3
-rw-r--r--src/mame/includes/blueprnt.h1
-rw-r--r--src/mame/includes/bogeyman.h1
-rw-r--r--src/mame/includes/boogwing.h1
-rw-r--r--src/mame/includes/btime.h1
-rw-r--r--src/mame/includes/buggychl.h4
-rw-r--r--src/mame/includes/bzone.h2
-rw-r--r--src/mame/includes/cabal.h2
-rw-r--r--src/mame/includes/calomega.h21
-rw-r--r--src/mame/includes/cave.h8
-rw-r--r--src/mame/includes/cchasm.h1
-rw-r--r--src/mame/includes/cd32.h3
-rw-r--r--src/mame/includes/centiped.h3
-rw-r--r--src/mame/includes/chaknpop.h2
-rw-r--r--src/mame/includes/champbas.h3
-rw-r--r--src/mame/includes/chqflag.h1
-rw-r--r--src/mame/includes/cischeat.h2
-rw-r--r--src/mame/includes/cninja.h1
-rw-r--r--src/mame/includes/combatsc.h6
-rw-r--r--src/mame/includes/compgolf.h2
-rw-r--r--src/mame/includes/coolpool.h1
-rw-r--r--src/mame/includes/cps1.h1
-rw-r--r--src/mame/includes/crgolf.h1
-rw-r--r--src/mame/includes/crimfght.h1
-rw-r--r--src/mame/includes/cvs.h5
-rw-r--r--src/mame/includes/darius.h5
-rw-r--r--src/mame/includes/dassault.h1
-rw-r--r--src/mame/includes/dbz.h1
-rw-r--r--src/mame/includes/ddragon3.h1
-rw-r--r--src/mame/includes/ddribble.h2
-rw-r--r--src/mame/includes/dec8.h1
-rw-r--r--src/mame/includes/deco32.h3
-rw-r--r--src/mame/includes/deco_mlc.h1
-rw-r--r--src/mame/includes/deniam.h2
-rw-r--r--src/mame/includes/djmain.h4
-rw-r--r--src/mame/includes/dkong.h6
-rw-r--r--src/mame/includes/docastle.h2
-rw-r--r--src/mame/includes/dooyong.h1
-rw-r--r--src/mame/includes/dribling.h6
-rw-r--r--src/mame/includes/dynax.h6
-rw-r--r--src/mame/includes/epos.h1
-rw-r--r--src/mame/includes/equites.h2
-rw-r--r--src/mame/includes/esripsys.h2
-rw-r--r--src/mame/includes/exerion.h2
-rw-r--r--src/mame/includes/exprraid.h1
-rw-r--r--src/mame/includes/exterm.h2
-rw-r--r--src/mame/includes/fastlane.h4
-rw-r--r--src/mame/includes/flstory.h4
-rw-r--r--src/mame/includes/foodf.h1
-rw-r--r--src/mame/includes/freekick.h3
-rw-r--r--src/mame/includes/fromance.h1
-rw-r--r--src/mame/includes/funworld.h5
-rw-r--r--src/mame/includes/funybubl.h1
-rw-r--r--src/mame/includes/fuukifg2.h1
-rw-r--r--src/mame/includes/gaelco3d.h6
-rw-r--r--src/mame/includes/galaga.h5
-rw-r--r--src/mame/includes/galaxian.h18
-rw-r--r--src/mame/includes/galaxold.h1
-rw-r--r--src/mame/includes/galpani2.h4
-rw-r--r--src/mame/includes/galpanic.h1
-rw-r--r--src/mame/includes/gameplan.h8
-rw-r--r--src/mame/includes/gaplus.h2
-rw-r--r--src/mame/includes/gatron.h1
-rw-r--r--src/mame/includes/gbusters.h1
-rw-r--r--src/mame/includes/ginganin.h1
-rw-r--r--src/mame/includes/gladiatr.h3
-rw-r--r--src/mame/includes/goal92.h1
-rw-r--r--src/mame/includes/goldstar.h5
-rw-r--r--src/mame/includes/gotcha.h1
-rw-r--r--src/mame/includes/gradius3.h1
-rw-r--r--src/mame/includes/grchamp.h4
-rw-r--r--src/mame/includes/gsword.h6
-rw-r--r--src/mame/includes/gyruss.h4
-rw-r--r--src/mame/includes/hcastle.h1
-rw-r--r--src/mame/includes/hexion.h2
-rw-r--r--src/mame/includes/hitme.h2
-rw-r--r--src/mame/includes/hnayayoi.h4
-rw-r--r--src/mame/includes/homerun.h3
-rw-r--r--src/mame/includes/iqblock.h1
-rw-r--r--src/mame/includes/ironhors.h2
-rw-r--r--src/mame/includes/itech32.h3
-rw-r--r--src/mame/includes/itech8.h2
-rw-r--r--src/mame/includes/jack.h1
-rw-r--r--src/mame/includes/jailbrek.h2
-rw-r--r--src/mame/includes/jpmimpct.h7
-rw-r--r--src/mame/includes/kaneko16.h12
-rw-r--r--src/mame/includes/kchamp.h1
-rw-r--r--src/mame/includes/kickgoal.h2
-rw-r--r--src/mame/includes/kncljoe.h5
-rw-r--r--src/mame/includes/ksayakyu.h3
-rw-r--r--src/mame/includes/ladyfrog.h1
-rw-r--r--src/mame/includes/laserbat.h5
-rw-r--r--src/mame/includes/legionna.h1
-rw-r--r--src/mame/includes/lockon.h1
-rw-r--r--src/mame/includes/lordgun.h7
-rw-r--r--src/mame/includes/lsasquad.h1
-rw-r--r--src/mame/includes/lucky74.h3
-rw-r--r--src/mame/includes/lwings.h1
-rw-r--r--src/mame/includes/m72.h1
-rw-r--r--src/mame/includes/m92.h1
-rw-r--r--src/mame/includes/madalien.h2
-rw-r--r--src/mame/includes/magmax.h2
-rw-r--r--src/mame/includes/mainevt.h2
-rw-r--r--src/mame/includes/mappy.h7
-rw-r--r--src/mame/includes/mario.h1
-rw-r--r--src/mame/includes/mcr68.h7
-rw-r--r--src/mame/includes/megasys1.h4
-rw-r--r--src/mame/includes/megazone.h2
-rw-r--r--src/mame/includes/metro.h8
-rw-r--r--src/mame/includes/mexico86.h1
-rw-r--r--src/mame/includes/midyunit.h1
-rw-r--r--src/mame/includes/midzeus.h2
-rw-r--r--src/mame/includes/mitchell.h4
-rw-r--r--src/mame/includes/mjkjidai.h1
-rw-r--r--src/mame/includes/model1.h2
-rw-r--r--src/mame/includes/model2.h2
-rw-r--r--src/mame/includes/moo.h1
-rw-r--r--src/mame/includes/mpu4.h44
-rw-r--r--src/mame/includes/msisaac.h1
-rw-r--r--src/mame/includes/munchmo.h2
-rw-r--r--src/mame/includes/n8080.h2
-rw-r--r--src/mame/includes/namcona1.h2
-rw-r--r--src/mame/includes/nemesis.h4
-rw-r--r--src/mame/includes/nmk16.h2
-rw-r--r--src/mame/includes/norautp.h3
-rw-r--r--src/mame/includes/nycaptor.h1
-rw-r--r--src/mame/includes/ojankohs.h3
-rw-r--r--src/mame/includes/oneshot.h1
-rw-r--r--src/mame/includes/opwolf.h3
-rw-r--r--src/mame/includes/othldrby.h1
-rw-r--r--src/mame/includes/overdriv.h2
-rw-r--r--src/mame/includes/pandoras.h2
-rw-r--r--src/mame/includes/paradise.h1
-rw-r--r--src/mame/includes/parodius.h1
-rw-r--r--src/mame/includes/pcktgal.h1
-rw-r--r--src/mame/includes/pktgaldx.h1
-rw-r--r--src/mame/includes/playch10.h3
-rw-r--r--src/mame/includes/playmark.h1
-rw-r--r--src/mame/includes/plygonet.h1
-rw-r--r--src/mame/includes/polepos.h7
-rw-r--r--src/mame/includes/popeye.h2
-rw-r--r--src/mame/includes/prehisle.h2
-rw-r--r--src/mame/includes/psikyo4.h2
-rw-r--r--src/mame/includes/psikyosh.h2
-rw-r--r--src/mame/includes/punchout.h3
-rw-r--r--src/mame/includes/qdrmfgp.h6
-rw-r--r--src/mame/includes/rainbow.h1
-rw-r--r--src/mame/includes/rastan.h3
-rw-r--r--src/mame/includes/renegade.h1
-rw-r--r--src/mame/includes/rockrage.h2
-rw-r--r--src/mame/includes/rohga.h1
-rw-r--r--src/mame/includes/rollerg.h2
-rw-r--r--src/mame/includes/route16.h1
-rw-r--r--src/mame/includes/rpunch.h2
-rw-r--r--src/mame/includes/runaway.h1
-rw-r--r--src/mame/includes/sauro.h1
-rw-r--r--src/mame/includes/sbugger.h1
-rw-r--r--src/mame/includes/segag80r.h5
-rw-r--r--src/mame/includes/segag80v.h1
-rw-r--r--src/mame/includes/segas32.h2
-rw-r--r--src/mame/includes/seibuspi.h4
-rw-r--r--src/mame/includes/seicross.h2
-rw-r--r--src/mame/includes/senjyo.h1
-rw-r--r--src/mame/includes/seta.h2
-rw-r--r--src/mame/includes/seta2.h4
-rw-r--r--src/mame/includes/sf.h2
-rw-r--r--src/mame/includes/shadfrce.h1
-rw-r--r--src/mame/includes/shangkid.h3
-rw-r--r--src/mame/includes/silkroad.h1
-rw-r--r--src/mame/includes/skydiver.h2
-rw-r--r--src/mame/includes/snk68.h2
-rw-r--r--src/mame/includes/snowbros.h2
-rw-r--r--src/mame/includes/speedatk.h1
-rw-r--r--src/mame/includes/speedspn.h1
-rw-r--r--src/mame/includes/spiders.h7
-rw-r--r--src/mame/includes/sprint2.h4
-rw-r--r--src/mame/includes/sprint4.h6
-rw-r--r--src/mame/includes/srmp2.h2
-rw-r--r--src/mame/includes/sslam.h1
-rw-r--r--src/mame/includes/ssv.h2
-rw-r--r--src/mame/includes/starshp1.h2
-rw-r--r--src/mame/includes/stlforce.h2
-rw-r--r--src/mame/includes/suna16.h5
-rw-r--r--src/mame/includes/superqix.h6
-rw-r--r--src/mame/includes/suprridr.h1
-rw-r--r--src/mame/includes/system1.h1
-rw-r--r--src/mame/includes/system16.h1
-rw-r--r--src/mame/includes/tail2nos.h1
-rw-r--r--src/mame/includes/taito_f2.h1
-rw-r--r--src/mame/includes/taito_l.h7
-rw-r--r--src/mame/includes/taitosj.h4
-rw-r--r--src/mame/includes/tank8.h6
-rw-r--r--src/mame/includes/tankbust.h2
-rw-r--r--src/mame/includes/taxidriv.h23
-rw-r--r--src/mame/includes/tceptor.h1
-rw-r--r--src/mame/includes/tecmo.h2
-rw-r--r--src/mame/includes/tecmosys.h2
-rw-r--r--src/mame/includes/tehkanwc.h5
-rw-r--r--src/mame/includes/thief.h1
-rw-r--r--src/mame/includes/thunderx.h1
-rw-r--r--src/mame/includes/tigeroad.h1
-rw-r--r--src/mame/includes/timeplt.h1
-rw-r--r--src/mame/includes/tmnt.h4
-rw-r--r--src/mame/includes/tnzs.h4
-rw-r--r--src/mame/includes/toaplan2.h2
-rw-r--r--src/mame/includes/toki.h1
-rw-r--r--src/mame/includes/topspeed.h3
-rw-r--r--src/mame/includes/toypop.h7
-rw-r--r--src/mame/includes/trackfld.h4
-rw-r--r--src/mame/includes/truco.h5
-rw-r--r--src/mame/includes/trucocl.h1
-rw-r--r--src/mame/includes/tubep.h8
-rw-r--r--src/mame/includes/tumbleb.h1
-rw-r--r--src/mame/includes/tumblep.h1
-rw-r--r--src/mame/includes/tunhunt.h5
-rw-r--r--src/mame/includes/turbo.h16
-rw-r--r--src/mame/includes/twin16.h3
-rw-r--r--src/mame/includes/tx1.h4
-rw-r--r--src/mame/includes/ultratnk.h4
-rw-r--r--src/mame/includes/unico.h2
-rw-r--r--src/mame/includes/vendetta.h1
-rw-r--r--src/mame/includes/vertigo.h2
-rw-r--r--src/mame/includes/videopin.h3
-rw-r--r--src/mame/includes/vsnes.h6
-rw-r--r--src/mame/includes/warpwarp.h2
-rw-r--r--src/mame/includes/wc90b.h1
-rw-r--r--src/mame/includes/wecleman.h7
-rw-r--r--src/mame/includes/wolfpack.h2
-rw-r--r--src/mame/includes/wwfwfest.h1
-rw-r--r--src/mame/includes/xorworld.h3
-rw-r--r--src/mame/includes/yiear.h5
-rw-r--r--src/mame/includes/yunsung8.h1
-rw-r--r--src/mame/includes/zaccaria.h9
-rw-r--r--src/mame/machine/mcr68.c2
-rw-r--r--src/mame/video/taxidriv.c5
497 files changed, 3892 insertions, 2963 deletions
diff --git a/src/mame/drivers/40love.c b/src/mame/drivers/40love.c
index 55580786ee1..e1873e15053 100644
--- a/src/mame/drivers/40love.c
+++ b/src/mame/drivers/40love.c
@@ -291,13 +291,12 @@ WRITE8_MEMBER(fortyl_state::pix1_w)
m_pix1 = data;
}
-static WRITE8_DEVICE_HANDLER( pix1_mcu_w )
+WRITE8_MEMBER(fortyl_state::pix1_mcu_w)
{
- fortyl_state *state = device->machine().driver_data<fortyl_state>();
// if (data > 7)
// logerror("pix1 = %2x\n", data);
- state->m_pix1 = data;
+ m_pix1 = data;
}
WRITE8_MEMBER(fortyl_state::pix2_w)
@@ -630,7 +629,7 @@ 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_LEGACY("bmcu", buggychl_mcu_r, buggychl_mcu_w)
- AM_RANGE(0x8801, 0x8801) AM_DEVREADWRITE_LEGACY("bmcu", buggychl_mcu_status_r, pix1_mcu_w) //pixel layer related
+ AM_RANGE(0x8801, 0x8801) AM_DEVREAD_LEGACY("bmcu", buggychl_mcu_status_r) AM_WRITE(pix1_mcu_w) //pixel layer related
AM_RANGE(0x8802, 0x8802) AM_WRITE(bank_select_w)
AM_RANGE(0x8803, 0x8803) AM_READWRITE(pix2_r, pix2_w) //pixel layer related
AM_RANGE(0x8804, 0x8804) AM_READWRITE(from_snd_r, sound_command_w)
@@ -701,52 +700,51 @@ static MACHINE_RESET( ta7630 )
*/
}
-static WRITE8_DEVICE_HANDLER( sound_control_0_w )
+WRITE8_MEMBER(fortyl_state::sound_control_0_w)
{
- fortyl_state *state = device->machine().driver_data<fortyl_state>();
- state->m_snd_ctrl0 = data & 0xff;
-// popmessage("SND0 0=%02x 1=%02x 2=%02x 3=%02x", state->m_snd_ctrl0, state->m_snd_ctrl1, state->m_snd_ctrl2, state->m_snd_ctrl3);
+ device_t *device = machine().device("msm");
+ m_snd_ctrl0 = data & 0xff;
+// popmessage("SND0 0=%02x 1=%02x 2=%02x 3=%02x", m_snd_ctrl0, m_snd_ctrl1, m_snd_ctrl2, m_snd_ctrl3);
/* this definitely controls main melody voice on 2'-1 and 4'-1 outputs */
device_sound_interface *sound;
device->interface(sound);
- sound->set_output_gain(0, state->m_vol_ctrl[(state->m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
- sound->set_output_gain(1, state->m_vol_ctrl[(state->m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
- sound->set_output_gain(2, state->m_vol_ctrl[(state->m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
- sound->set_output_gain(3, state->m_vol_ctrl[(state->m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
+ sound->set_output_gain(0, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
+ sound->set_output_gain(1, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
+ sound->set_output_gain(2, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
+ sound->set_output_gain(3, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
}
-static WRITE8_DEVICE_HANDLER( sound_control_1_w )
+WRITE8_MEMBER(fortyl_state::sound_control_1_w)
{
- fortyl_state *state = device->machine().driver_data<fortyl_state>();
- state->m_snd_ctrl1 = data & 0xff;
-// popmessage("SND1 0=%02x 1=%02x 2=%02x 3=%02x", state->m_snd_ctrl0, state->m_snd_ctrl1, state->m_snd_ctrl2, state->m_snd_ctrl3);
+ device_t *device = machine().device("msm");
+ m_snd_ctrl1 = data & 0xff;
+// popmessage("SND1 0=%02x 1=%02x 2=%02x 3=%02x", m_snd_ctrl0, m_snd_ctrl1, m_snd_ctrl2, m_snd_ctrl3);
device_sound_interface *sound;
device->interface(sound);
- sound->set_output_gain(4, state->m_vol_ctrl[(state->m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
- sound->set_output_gain(5, state->m_vol_ctrl[(state->m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
- sound->set_output_gain(6, state->m_vol_ctrl[(state->m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
- sound->set_output_gain(7, state->m_vol_ctrl[(state->m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
+ sound->set_output_gain(4, m_vol_ctrl[(m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
+ sound->set_output_gain(5, m_vol_ctrl[(m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
+ sound->set_output_gain(6, m_vol_ctrl[(m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
+ sound->set_output_gain(7, m_vol_ctrl[(m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
}
-static WRITE8_DEVICE_HANDLER( sound_control_2_w )
+WRITE8_MEMBER(fortyl_state::sound_control_2_w)
{
- fortyl_state *state = device->machine().driver_data<fortyl_state>();
+ device_t *device = machine().device("aysnd");
int i;
- state->m_snd_ctrl2 = data & 0xff;
-// popmessage("SND2 0=%02x 1=%02x 2=%02x 3=%02x", state->m_snd_ctrl0, state->m_snd_ctrl1, state->m_snd_ctrl2, state->m_snd_ctrl3);
+ m_snd_ctrl2 = data & 0xff;
+// popmessage("SND2 0=%02x 1=%02x 2=%02x 3=%02x", m_snd_ctrl0, m_snd_ctrl1, m_snd_ctrl2, m_snd_ctrl3);
device_sound_interface *sound;
device->interface(sound);
for (i = 0; i < 3; i++)
- sound->set_output_gain(i, state->m_vol_ctrl[(state->m_snd_ctrl2 >> 4) & 15] / 100.0); /* ym2149f all */
+ sound->set_output_gain(i, m_vol_ctrl[(m_snd_ctrl2 >> 4) & 15] / 100.0); /* ym2149f all */
}
-static WRITE8_DEVICE_HANDLER( sound_control_3_w ) /* unknown */
+WRITE8_MEMBER(fortyl_state::sound_control_3_w)/* unknown */
{
- fortyl_state *state = device->machine().driver_data<fortyl_state>();
- state->m_snd_ctrl3 = data & 0xff;
-// 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);
+ m_snd_ctrl3 = data & 0xff;
+// popmessage("SND3 0=%02x 1=%02x 2=%02x 3=%02x", m_snd_ctrl0, m_snd_ctrl1, m_snd_ctrl2, m_snd_ctrl3);
}
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, fortyl_state )
@@ -754,8 +752,8 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, fortyl_state )
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc801) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w)
AM_RANGE(0xca00, 0xca0d) AM_DEVWRITE_LEGACY("msm", msm5232_w)
- AM_RANGE(0xcc00, 0xcc00) AM_DEVWRITE_LEGACY("msm", sound_control_0_w)
- AM_RANGE(0xce00, 0xce00) AM_DEVWRITE_LEGACY("msm", sound_control_1_w)
+ AM_RANGE(0xcc00, 0xcc00) AM_WRITE(sound_control_0_w)
+ AM_RANGE(0xce00, 0xce00) AM_WRITE(sound_control_1_w)
AM_RANGE(0xd800, 0xd800) AM_READ(soundlatch_byte_r) AM_WRITE(to_main_w)
AM_RANGE(0xda00, 0xda00) AM_READNOP AM_WRITE(nmi_enable_w) /* unknown read */
AM_RANGE(0xdc00, 0xdc00) AM_WRITE(nmi_disable_w)
@@ -968,8 +966,8 @@ static const ay8910_interface ay8910_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_DEVICE_HANDLER("aysnd", sound_control_2_w),
- DEVCB_HANDLER(sound_control_3_w)
+ DEVCB_DRIVER_MEMBER(fortyl_state,sound_control_2_w),
+ DEVCB_DRIVER_MEMBER(fortyl_state,sound_control_3_w)
};
static const msm5232_interface msm5232_config =
diff --git a/src/mame/drivers/4enraya.c b/src/mame/drivers/4enraya.c
index 0b50147c233..32db05853f4 100644
--- a/src/mame/drivers/4enraya.c
+++ b/src/mame/drivers/4enraya.c
@@ -67,14 +67,14 @@ WRITE8_MEMBER(_4enraya_state::sound_data_w)
m_soundlatch = data;
}
-static WRITE8_DEVICE_HANDLER( sound_control_w )
+WRITE8_MEMBER(_4enraya_state::sound_control_w)
{
- _4enraya_state *state = device->machine().driver_data<_4enraya_state>();
+ device_t *device = machine().device("aysnd");
- if ((state->m_last_snd_ctrl & state->m_snd_latch_bit ) == state->m_snd_latch_bit && (data & state->m_snd_latch_bit) == 0x00)
- ay8910_data_address_w(device, state->m_last_snd_ctrl, state->m_soundlatch);
+ if ((m_last_snd_ctrl & m_snd_latch_bit ) == m_snd_latch_bit && (data & m_snd_latch_bit) == 0x00)
+ ay8910_data_address_w(device, m_last_snd_ctrl, m_soundlatch);
- state->m_last_snd_ctrl = data;
+ m_last_snd_ctrl = data;
}
READ8_MEMBER(_4enraya_state::fenraya_custom_map_r)
@@ -153,7 +153,7 @@ static ADDRESS_MAP_START( main_portmap, AS_IO, 8, _4enraya_state )
AM_RANGE(0x01, 0x01) AM_READ_PORT("INPUTS")
AM_RANGE(0x02, 0x02) AM_READ_PORT("SYSTEM")
AM_RANGE(0x23, 0x23) AM_WRITE(sound_data_w)
- AM_RANGE(0x33, 0x33) AM_DEVWRITE_LEGACY("aysnd", sound_control_w)
+ AM_RANGE(0x33, 0x33) AM_WRITE(sound_control_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( unkpacg_main_map, AS_PROGRAM, 8, _4enraya_state )
@@ -169,7 +169,7 @@ static ADDRESS_MAP_START( unkpacg_main_portmap, AS_IO, 8, _4enraya_state )
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2")
AM_RANGE(0x20, 0x20) AM_WRITE(sound_data_w)
- AM_RANGE(0x30, 0x30) AM_DEVWRITE_LEGACY("aysnd", sound_control_w)
+ AM_RANGE(0x30, 0x30) AM_WRITE(sound_control_w)
ADDRESS_MAP_END
static INPUT_PORTS_START( 4enraya )
diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c
index 32e9a9c2e32..09c2f12aaac 100644
--- a/src/mame/drivers/aerofgt.c
+++ b/src/mame/drivers/aerofgt.c
@@ -111,15 +111,17 @@ WRITE8_MEMBER(aerofgt_state::aerofgt_sh_bankswitch_w)
}
-static WRITE16_DEVICE_HANDLER( pspikesb_oki_banking_w )
+WRITE16_MEMBER(aerofgt_state::pspikesb_oki_banking_w)
{
+ device_t *device = machine().device("oki");
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base(0x40000 * (data & 3));
}
/*TODO: sound banking. */
-static WRITE16_DEVICE_HANDLER( aerfboo2_okim6295_banking_w )
+WRITE16_MEMBER(aerofgt_state::aerfboo2_okim6295_banking_w)
{
+// device_t *device = machine().device("oki");
// if(ACCESSING_BITS_8_15)
// {
// okim6295_device *oki = downcast<okim6295_device *>(device);
@@ -163,7 +165,7 @@ static ADDRESS_MAP_START( pspikesb_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1")
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") AM_WRITE(aerofgt_bg1scrolly_w)
AM_RANGE(0xfff006, 0xfff007) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0xfff008, 0xfff009) AM_DEVWRITE_LEGACY("oki", pspikesb_oki_banking_w)
+ AM_RANGE(0xfff008, 0xfff009) AM_WRITE(pspikesb_oki_banking_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( spikes91_map, AS_PROGRAM, 16, aerofgt_state )
@@ -352,7 +354,7 @@ static ADDRESS_MAP_START( aerfboo2_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x0fe008, 0x0fe00b) AM_WRITE(turbofrc_gfxbank_w)
AM_RANGE(0x0fe006, 0x0fe007) AM_DEVREAD8("oki", okim6295_device, read, 0xff00)
AM_RANGE(0x0fe00e, 0x0fe00f) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00)
- AM_RANGE(0x0fe01e, 0x0fe01f) AM_DEVWRITE_LEGACY("oki", aerfboo2_okim6295_banking_w)
+ AM_RANGE(0x0fe01e, 0x0fe01f) AM_WRITE(aerfboo2_okim6295_banking_w)
// AM_RANGE(0x0fe010, 0x0fe011) AM_WRITENOP
// AM_RANGE(0x0fe012, 0x0fe013) AM_WRITE(aerfboot_soundlatch_w)
AM_RANGE(0x0fe400, 0x0fe401) AM_WRITENOP // data for a crtc?
diff --git a/src/mame/drivers/ajax.c b/src/mame/drivers/ajax.c
index 1b48cd8cc02..1b406f63a02 100644
--- a/src/mame/drivers/ajax.c
+++ b/src/mame/drivers/ajax.c
@@ -20,7 +20,7 @@
#include "includes/ajax.h"
#include "includes/konamipt.h"
-static WRITE8_DEVICE_HANDLER( k007232_extvol_w );
+
/****************************************************************************/
@@ -53,7 +53,7 @@ static ADDRESS_MAP_START( ajax_sound_map, AS_PROGRAM, 8, ajax_state )
AM_RANGE(0x9000, 0x9000) AM_WRITE(sound_bank_w) /* 007232 bankswitch */
AM_RANGE(0xa000, 0xa00d) AM_DEVREADWRITE_LEGACY("k007232_1", k007232_r, k007232_w) /* 007232 registers (chip 1) */
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232_2", k007232_r, k007232_w) /* 007232 registers (chip 2) */
- AM_RANGE(0xb80c, 0xb80c) AM_DEVWRITE_LEGACY("k007232_2", k007232_extvol_w) /* extra volume, goes to the 007232 w/ A11 */
+ AM_RANGE(0xb80c, 0xb80c) AM_WRITE(k007232_extvol_w) /* extra volume, goes to the 007232 w/ A11 */
/* selecting a different latch for the external port */
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w) /* YM2151 */
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */
@@ -156,8 +156,9 @@ static void volume_callback0(device_t *device, int v)
k007232_set_volume(device, 1, 0, (v & 0x0f) * 0x11);
}
-static WRITE8_DEVICE_HANDLER( k007232_extvol_w )
+WRITE8_MEMBER(ajax_state::k007232_extvol_w)
{
+ device_t *device = machine().device("k007232_2");
/* channel A volume (mono) */
k007232_set_volume(device, 0, (data & 0x0f) * 0x11/2, (data & 0x0f) * 0x11/2);
}
diff --git a/src/mame/drivers/aliens.c b/src/mame/drivers/aliens.c
index 59ffc39d35a..6357df5c8b8 100644
--- a/src/mame/drivers/aliens.c
+++ b/src/mame/drivers/aliens.c
@@ -73,9 +73,8 @@ WRITE8_MEMBER(aliens_state::aliens_sh_irqtrigger_w)
device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
-static WRITE8_DEVICE_HANDLER( aliens_snd_bankswitch_w )
+WRITE8_MEMBER(aliens_state::aliens_snd_bankswitch_w)
{
- aliens_state *state = device->machine().driver_data<aliens_state>();
/* b1: bank for chanel A */
/* b0: bank for chanel B */
@@ -83,7 +82,7 @@ static WRITE8_DEVICE_HANDLER( aliens_snd_bankswitch_w )
int bank_A = BIT(data, 1);
int bank_B = BIT(data, 0);
- k007232_set_bank(state->m_k007232, bank_A, bank_B);
+ k007232_set_bank(m_k007232, bank_A, bank_B);
}
@@ -207,7 +206,7 @@ static const k007232_interface k007232_config =
static const ym2151_interface ym2151_config =
{
DEVCB_NULL,
- DEVCB_HANDLER(aliens_snd_bankswitch_w)
+ DEVCB_DRIVER_MEMBER(aliens_state,aliens_snd_bankswitch_w)
};
diff --git a/src/mame/drivers/amspdwy.c b/src/mame/drivers/amspdwy.c
index 6784a449dcb..4cf0abe6621 100644
--- a/src/mame/drivers/amspdwy.c
+++ b/src/mame/drivers/amspdwy.c
@@ -62,9 +62,10 @@ READ8_MEMBER(amspdwy_state::amspdwy_wheel_1_r)
return amspdwy_wheel_r(machine(), 1);
}
-static READ8_DEVICE_HANDLER( amspdwy_sound_r )
+READ8_MEMBER(amspdwy_state::amspdwy_sound_r)
{
- return (ym2151_status_port_r(device, 0) & ~ 0x30) | device->machine().root_device().ioport("IN0")->read();
+ device_t *device = machine().device("ymsnd");
+ return (ym2151_status_port_r(device, 0) & ~ 0x30) | machine().root_device().ioport("IN0")->read();
}
WRITE8_MEMBER(amspdwy_state::amspdwy_sound_w)
@@ -85,7 +86,7 @@ static ADDRESS_MAP_START( amspdwy_map, AS_PROGRAM, 8, amspdwy_state )
AM_RANGE(0xa800, 0xa800) AM_READ(amspdwy_wheel_0_r) // Player 1
AM_RANGE(0xac00, 0xac00) AM_READ(amspdwy_wheel_1_r) // Player 2
AM_RANGE(0xb000, 0xb000) AM_WRITENOP // ? Exiting IRQ
- AM_RANGE(0xb400, 0xb400) AM_DEVREAD_LEGACY("ymsnd", amspdwy_sound_r) AM_WRITE(amspdwy_sound_w) // YM2151 status, To Sound CPU
+ AM_RANGE(0xb400, 0xb400) AM_READ(amspdwy_sound_r) AM_WRITE(amspdwy_sound_w) // YM2151 status, To Sound CPU
AM_RANGE(0xc000, 0xc0ff) AM_RAM AM_SHARE("spriteram")// Sprites
AM_RANGE(0xe000, 0xe7ff) AM_RAM // Work RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/arabian.c b/src/mame/drivers/arabian.c
index bbfc979faf2..eb9a3667d85 100644
--- a/src/mame/drivers/arabian.c
+++ b/src/mame/drivers/arabian.c
@@ -58,9 +58,8 @@
*
*************************************/
-static WRITE8_DEVICE_HANDLER( ay8910_porta_w )
+WRITE8_MEMBER(arabian_state::ay8910_porta_w)
{
- arabian_state *state = device->machine().driver_data<arabian_state>();
/*
bit 7 = ENA
@@ -69,11 +68,11 @@ static WRITE8_DEVICE_HANDLER( ay8910_porta_w )
bit 4 = /AGHF
bit 3 = /ARHF
*/
- state->m_video_control = data;
+ m_video_control = data;
}
-static WRITE8_DEVICE_HANDLER( ay8910_portb_w )
+WRITE8_MEMBER(arabian_state::ay8910_portb_w)
{
/*
bit 5 = /IREQ to custom CPU
@@ -82,12 +81,12 @@ static WRITE8_DEVICE_HANDLER( ay8910_portb_w )
bit 0 = coin 1 counter
*/
- cputag_set_input_line(device->machine(), "mcu", MB88_IRQ_LINE, data & 0x20 ? CLEAR_LINE : ASSERT_LINE);
- cputag_set_input_line(device->machine(), "mcu", INPUT_LINE_RESET, data & 0x10 ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "mcu", MB88_IRQ_LINE, data & 0x20 ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "mcu", INPUT_LINE_RESET, data & 0x10 ? CLEAR_LINE : ASSERT_LINE);
/* clock the coin counters */
- coin_counter_w(device->machine(), 1, ~data & 0x02);
- coin_counter_w(device->machine(), 0, ~data & 0x01);
+ coin_counter_w(machine(), 1, ~data & 0x02);
+ coin_counter_w(machine(), 0, ~data & 0x01);
}
@@ -329,8 +328,8 @@ static const ay8910_interface ay8910_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(ay8910_porta_w),
- DEVCB_HANDLER(ay8910_portb_w)
+ DEVCB_DRIVER_MEMBER(arabian_state,ay8910_porta_w),
+ DEVCB_DRIVER_MEMBER(arabian_state,ay8910_portb_w)
};
diff --git a/src/mame/drivers/ashnojoe.c b/src/mame/drivers/ashnojoe.c
index abdd6ebf8ff..38f320f28d8 100644
--- a/src/mame/drivers/ashnojoe.c
+++ b/src/mame/drivers/ashnojoe.c
@@ -276,8 +276,9 @@ static void ym2203_irq_handler( device_t *device, int irq )
device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
}
-static WRITE8_DEVICE_HANDLER( ym2203_write_a )
+WRITE8_MEMBER(ashnojoe_state::ym2203_write_a)
{
+ device_t *device = machine().device("msm");
/* This gets called at 8910 startup with 0xff before the 5205 exists, causing a crash */
if (data == 0xff)
return;
@@ -285,9 +286,9 @@ static WRITE8_DEVICE_HANDLER( ym2203_write_a )
msm5205_reset_w(device, !(data & 0x01));
}
-static WRITE8_DEVICE_HANDLER( ym2203_write_b )
+WRITE8_MEMBER(ashnojoe_state::ym2203_write_b)
{
- device->machine().root_device().membank("bank4")->set_entry(data & 0x0f);
+ machine().root_device().membank("bank4")->set_entry(data & 0x0f);
}
static const ym2203_interface ym2203_config =
@@ -297,8 +298,8 @@ static const ym2203_interface ym2203_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_DEVICE_HANDLER("msm", ym2203_write_a),
- DEVCB_HANDLER(ym2203_write_b),
+ DEVCB_DRIVER_MEMBER(ashnojoe_state,ym2203_write_a),
+ DEVCB_DRIVER_MEMBER(ashnojoe_state,ym2203_write_b),
},
ym2203_irq_handler
};
diff --git a/src/mame/drivers/asterix.c b/src/mame/drivers/asterix.c
index c75ab45f14d..6c06b41ac8c 100644
--- a/src/mame/drivers/asterix.c
+++ b/src/mame/drivers/asterix.c
@@ -64,8 +64,9 @@ static INTERRUPT_GEN( asterix_interrupt )
device_set_input_line(device, 5, HOLD_LINE); /* ??? All irqs have the same vector, and the mask used is 0 or 7 */
}
-static READ8_DEVICE_HANDLER( asterix_sound_r )
+READ8_MEMBER(asterix_state::asterix_sound_r)
{
+ device_t *device = machine().device("k053260");
return k053260_r(device, 2 + offset);
}
@@ -179,7 +180,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, asterix_state )
AM_RANGE(0x380000, 0x380001) AM_READ_PORT("IN0")
AM_RANGE(0x380002, 0x380003) AM_READ_PORT("IN1")
AM_RANGE(0x380100, 0x380101) AM_WRITE(control2_w)
- AM_RANGE(0x380200, 0x380203) AM_DEVREADWRITE8_LEGACY("k053260", asterix_sound_r, k053260_w, 0x00ff)
+ AM_RANGE(0x380200, 0x380203) AM_READ8(asterix_sound_r, 0x00ff) AM_DEVWRITE8_LEGACY("k053260", k053260_w, 0x00ff)
AM_RANGE(0x380300, 0x380301) AM_WRITE(sound_irq_w)
AM_RANGE(0x380400, 0x380401) AM_WRITE(asterix_spritebank_w)
AM_RANGE(0x380500, 0x38051f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
diff --git a/src/mame/drivers/asuka.c b/src/mame/drivers/asuka.c
index cbea2526435..faf078486a2 100644
--- a/src/mame/drivers/asuka.c
+++ b/src/mame/drivers/asuka.c
@@ -252,9 +252,9 @@ WRITE8_MEMBER(asuka_state::sound_bankswitch_w)
membank("bank1")->set_entry(data & 0x03);
}
-static WRITE8_DEVICE_HANDLER( sound_bankswitch_2151_w )
+WRITE8_MEMBER(asuka_state::sound_bankswitch_2151_w)
{
- device->machine().root_device().membank("bank1")->set_entry(data & 0x03);
+ machine().root_device().membank("bank1")->set_entry(data & 0x03);
}
@@ -281,16 +281,17 @@ WRITE8_MEMBER(asuka_state::asuka_msm5205_address_w)
m_adpcm_pos = (m_adpcm_pos & 0x00ff) | (data << 8);
}
-static WRITE8_DEVICE_HANDLER( asuka_msm5205_start_w )
+WRITE8_MEMBER(asuka_state::asuka_msm5205_start_w)
{
+ device_t *device = machine().device("msm");
msm5205_reset_w(device, 0);
}
-static WRITE8_DEVICE_HANDLER( asuka_msm5205_stop_w )
+WRITE8_MEMBER(asuka_state::asuka_msm5205_stop_w)
{
- asuka_state *state = device->machine().driver_data<asuka_state>();
+ device_t *device = machine().device("msm");
msm5205_reset_w(device, 1);
- state->m_adpcm_pos &= 0xff00;
+ m_adpcm_pos &= 0xff00;
}
static UINT8 *cadash_shared_ram;
@@ -400,8 +401,8 @@ static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8, asuka_state )
AM_RANGE(0xa000, 0xa000) AM_DEVWRITE_LEGACY("tc0140syt", tc0140syt_slave_port_w)
AM_RANGE(0xa001, 0xa001) AM_DEVREADWRITE_LEGACY("tc0140syt", tc0140syt_slave_comm_r, tc0140syt_slave_comm_w)
AM_RANGE(0xb000, 0xb000) AM_WRITE(asuka_msm5205_address_w)
- AM_RANGE(0xc000, 0xc000) AM_DEVWRITE_LEGACY("msm", asuka_msm5205_start_w)
- AM_RANGE(0xd000, 0xd000) AM_DEVWRITE_LEGACY("msm", asuka_msm5205_stop_w)
+ AM_RANGE(0xc000, 0xc000) AM_WRITE(asuka_msm5205_start_w)
+ AM_RANGE(0xd000, 0xd000) AM_WRITE(asuka_msm5205_stop_w)
ADDRESS_MAP_END
/* no MSM5205 */
@@ -782,7 +783,7 @@ static const ym2610_interface ym2610_config =
static const ym2151_interface ym2151_config =
{
DEVCB_LINE(irq_handler),
- DEVCB_HANDLER(sound_bankswitch_2151_w)
+ DEVCB_DRIVER_MEMBER(asuka_state,sound_bankswitch_2151_w)
};
static const msm5205_interface msm5205_config =
diff --git a/src/mame/drivers/atarisy1.c b/src/mame/drivers/atarisy1.c
index 05706303f9e..86baf0b296e 100644
--- a/src/mame/drivers/atarisy1.c
+++ b/src/mame/drivers/atarisy1.c
@@ -401,43 +401,47 @@ READ8_MEMBER(atarisy1_state::switch_6502_r)
* D5 = LED (out)
*/
-static WRITE8_DEVICE_HANDLER( via_pa_w )
+WRITE8_MEMBER(atarisy1_state::via_pa_w)
{
- tms5220_data_w(device->machine().device("tms"), 0, data);
+ device_t *device = machine().device("tms");
+ tms5220_data_w(device, 0, data);
}
-static READ8_DEVICE_HANDLER( via_pa_r )
+READ8_MEMBER(atarisy1_state::via_pa_r)
{
- return tms5220_status_r(device->machine().device("tms"), 0);
+ device_t *device = machine().device("tms");
+ return tms5220_status_r(device, 0);
}
-static WRITE8_DEVICE_HANDLER( via_pb_w )
+WRITE8_MEMBER(atarisy1_state::via_pb_w)
{
+ device_t *device = machine().device("tms");
/* write strobe */
- tms5220_wsq_w(device->machine().device("tms"), data & 1);
+ tms5220_wsq_w(device, data & 1);
/* read strobe */
- tms5220_rsq_w(device->machine().device("tms"), (data & 2)>>1);
+ tms5220_rsq_w(device, (data & 2)>>1);
/* bit 4 is connected to an up-counter, clocked by SYCLKB */
data = 5 | ((data >> 3) & 2);
- tms5220_set_frequency(device->machine().device("tms"), ATARI_CLOCK_14MHz/2 / (16 - data));
+ tms5220_set_frequency(device, ATARI_CLOCK_14MHz/2 / (16 - data));
}
-static READ8_DEVICE_HANDLER( via_pb_r )
+READ8_MEMBER(atarisy1_state::via_pb_r)
{
- return (tms5220_readyq_r(device->machine().device("tms")) << 2) | (tms5220_intq_r(device->machine().device("tms")) << 3);
+ device_t *device = machine().device("tms");
+ return (tms5220_readyq_r(device) << 2) | (tms5220_intq_r(device) << 3);
}
static const via6522_interface via_interface =
{
- /*inputs : A/B */ DEVCB_HANDLER(via_pa_r), DEVCB_DEVICE_HANDLER("tms", via_pb_r),
+ /*inputs : A/B */ DEVCB_DRIVER_MEMBER(atarisy1_state,via_pa_r), DEVCB_DRIVER_MEMBER(atarisy1_state,via_pb_r),
/*inputs : CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
- /*outputs: A/B */ DEVCB_HANDLER(via_pa_w), DEVCB_DEVICE_HANDLER("tms", via_pb_w),
+ /*outputs: A/B */ DEVCB_DRIVER_MEMBER(atarisy1_state,via_pa_w), DEVCB_DRIVER_MEMBER(atarisy1_state,via_pb_w),
/*outputs: CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
/*irq */ DEVCB_NULL
};
diff --git a/src/mame/drivers/bagman.c b/src/mame/drivers/bagman.c
index a8980eb842e..dc76a4306c8 100644
--- a/src/mame/drivers/bagman.c
+++ b/src/mame/drivers/bagman.c
@@ -67,31 +67,30 @@ DIP locations verified for:
#include "includes/bagman.h"
-static WRITE8_DEVICE_HANDLER( bagman_ls259_w )
+WRITE8_MEMBER(bagman_state::bagman_ls259_w)
{
- bagman_state *state = device->machine().driver_data<bagman_state>();
- address_space *space = device->machine().device("maincpu")->memory().space(AS_PROGRAM);
- state->bagman_pal16r6_w(*space, offset,data); /*this is just a simulation*/
+ device_t *device = machine().device("tmsprom");
+ bagman_pal16r6_w(space, offset,data); /*this is just a simulation*/
- if (state->m_ls259_buf[offset] != (data&1) )
+ if (m_ls259_buf[offset] != (data&1) )
{
- state->m_ls259_buf[offset] = data&1;
+ m_ls259_buf[offset] = data&1;
switch (offset)
{
case 0:
case 1:
case 2:
- tmsprom_bit_w(device, 0, 7 - ((state->m_ls259_buf[0]<<2) | (state->m_ls259_buf[1]<<1) | (state->m_ls259_buf[2]<<0)));
+ tmsprom_bit_w(device, 0, 7 - ((m_ls259_buf[0]<<2) | (m_ls259_buf[1]<<1) | (m_ls259_buf[2]<<0)));
break;
case 3:
- tmsprom_enable_w(device, state->m_ls259_buf[offset]);
+ tmsprom_enable_w(device, m_ls259_buf[offset]);
break;
case 4:
- tmsprom_rom_csq_w(device, 0, state->m_ls259_buf[offset]);
+ tmsprom_rom_csq_w(device, 0, m_ls259_buf[offset]);
break;
case 5:
- tmsprom_rom_csq_w(device, 1, state->m_ls259_buf[offset]);
+ tmsprom_rom_csq_w(device, 1, m_ls259_buf[offset]);
break;
}
}
@@ -123,7 +122,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bagman_state )
AM_RANGE(0x9800, 0x981f) AM_WRITEONLY AM_SHARE("spriteram") /* hidden portion of color RAM */
/* here only to initialize the pointer, */
/* writes are handled by bagman_colorram_w */
- AM_RANGE(0xa800, 0xa805) AM_DEVWRITE_LEGACY("tmsprom", bagman_ls259_w) /* TMS5110 driving state machine */
+ AM_RANGE(0xa800, 0xa805) AM_WRITE(bagman_ls259_w) /* TMS5110 driving state machine */
AM_RANGE(0xa004, 0xa004) AM_WRITE(bagman_coin_counter_w)
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW")
AM_RANGE(0xb800, 0xb800) AM_READNOP /* looks like watchdog from schematics */
@@ -374,54 +373,52 @@ static const ay8910_interface ay8910_config =
/* squaitsa doesn't map the dial directly, instead it polls the results of the dial through an external circuitry.
I don't know if the following is correct, there can possbily be multiple solutions for the same problem. */
-static READ8_DEVICE_HANDLER( dial_input_p1_r )
+READ8_MEMBER(bagman_state::dial_input_p1_r)
{
- bagman_state *state = device->machine().driver_data<bagman_state>();
UINT8 dial_val;
- dial_val = state->ioport("DIAL_P1")->read();
+ dial_val = ioport("DIAL_P1")->read();
- if(state->m_p1_res != 0x60)
- state->m_p1_res = 0x60;
- else if(dial_val > state->m_p1_old_val)
- state->m_p1_res = 0x40;
- else if(dial_val < state->m_p1_old_val)
- state->m_p1_res = 0x20;
+ if(m_p1_res != 0x60)
+ m_p1_res = 0x60;
+ else if(dial_val > m_p1_old_val)
+ m_p1_res = 0x40;
+ else if(dial_val < m_p1_old_val)
+ m_p1_res = 0x20;
else
- state->m_p1_res = 0x60;
+ m_p1_res = 0x60;
- state->m_p1_old_val = dial_val;
+ m_p1_old_val = dial_val;
- return (state->ioport("P1")->read() & 0x9f) | (state->m_p1_res);
+ return (ioport("P1")->read() & 0x9f) | (m_p1_res);
}
-static READ8_DEVICE_HANDLER( dial_input_p2_r )
+READ8_MEMBER(bagman_state::dial_input_p2_r)
{
- bagman_state *state = device->machine().driver_data<bagman_state>();
UINT8 dial_val;
- dial_val = state->ioport("DIAL_P2")->read();
+ dial_val = ioport("DIAL_P2")->read();
- if(state->m_p2_res != 0x60)
- state->m_p2_res = 0x60;
- else if(dial_val > state->m_p2_old_val)
- state->m_p2_res = 0x40;
- else if(dial_val < state->m_p2_old_val)
- state->m_p2_res = 0x20;
+ if(m_p2_res != 0x60)
+ m_p2_res = 0x60;
+ else if(dial_val > m_p2_old_val)
+ m_p2_res = 0x40;
+ else if(dial_val < m_p2_old_val)
+ m_p2_res = 0x20;
else
- state->m_p2_res = 0x60;
+ m_p2_res = 0x60;
- state->m_p2_old_val = dial_val;
+ m_p2_old_val = dial_val;
- return (state->ioport("P2")->read() & 0x9f) | (state->m_p2_res);
+ return (ioport("P2")->read() & 0x9f) | (m_p2_res);
}
static const ay8910_interface ay8910_dial_config =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(dial_input_p1_r),
- DEVCB_HANDLER(dial_input_p2_r),
+ DEVCB_DRIVER_MEMBER(bagman_state,dial_input_p1_r),
+ DEVCB_DRIVER_MEMBER(bagman_state,dial_input_p2_r),
DEVCB_NULL,
DEVCB_NULL
};
diff --git a/src/mame/drivers/battlera.c b/src/mame/drivers/battlera.c
index 84eaa9872cf..b45190d896e 100644
--- a/src/mame/drivers/battlera.c
+++ b/src/mame/drivers/battlera.c
@@ -100,8 +100,9 @@ WRITE8_MEMBER(battlera_state::battlera_adpcm_data_w)
m_msm5205next = data;
}
-static WRITE8_DEVICE_HANDLER( battlera_adpcm_reset_w )
+WRITE8_MEMBER(battlera_state::battlera_adpcm_reset_w)
{
+ device_t *device = machine().device("msm");
msm5205_reset_w(device, 0);
}
@@ -111,7 +112,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, battlera_state )
AM_RANGE(0x080000, 0x080001) AM_WRITE(battlera_adpcm_data_w)
AM_RANGE(0x1fe800, 0x1fe80f) AM_DEVWRITE_LEGACY("c6280", c6280_w)
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank7") /* Main ram */
- AM_RANGE(0x1ff000, 0x1ff001) AM_READ(soundlatch_byte_r) AM_DEVWRITE_LEGACY("msm", battlera_adpcm_reset_w)
+ AM_RANGE(0x1ff000, 0x1ff001) AM_READ(soundlatch_byte_r) AM_WRITE(battlera_adpcm_reset_w)
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/bking.c b/src/mame/drivers/bking.c
index e3ccd09b61e..48dc6a163cd 100644
--- a/src/mame/drivers/bking.c
+++ b/src/mame/drivers/bking.c
@@ -63,7 +63,7 @@ READ8_MEMBER(bking_state::bking3_extrarom_r)
return rom[m_addr_h * 256 + m_addr_l];
}
-static WRITE8_DEVICE_HANDLER( unk_w )
+WRITE8_MEMBER(bking_state::unk_w)
{
/*
0 = finished reading extra rom
@@ -119,7 +119,7 @@ static ADDRESS_MAP_START( bking3_io_map, AS_IO, 8, bking_state )
AM_RANGE(0x0d, 0x0d) AM_WRITE(bking_hitclr_w)
AM_RANGE(0x07, 0x1f) AM_READ(bking_pos_r)
AM_RANGE(0x2f, 0x2f) AM_DEVREADWRITE_LEGACY("bmcu", buggychl_mcu_r, buggychl_mcu_w)
- AM_RANGE(0x4f, 0x4f) AM_DEVREADWRITE_LEGACY("bmcu", buggychl_mcu_status_r, unk_w)
+ AM_RANGE(0x4f, 0x4f) AM_DEVREAD_LEGACY("bmcu", buggychl_mcu_status_r) AM_WRITE(unk_w)
AM_RANGE(0x60, 0x60) AM_READ(bking3_extrarom_r)
AM_RANGE(0x6f, 0x6f) AM_READWRITE(bking3_ext_check_r, bking3_addr_h_w)
AM_RANGE(0x8f, 0x8f) AM_WRITE(bking3_addr_l_w)
@@ -371,7 +371,7 @@ static GFXDECODE_START( bking )
GFXDECODE_END
-static WRITE8_DEVICE_HANDLER( port_b_w )
+WRITE8_MEMBER(bking_state::port_b_w)
{
/* don't know what this is... could be a filter */
if (data != 0x00)
@@ -385,7 +385,7 @@ static const ay8910_interface ay8910_config =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_HANDLER("dac", dac_signed_w),
- DEVCB_HANDLER(port_b_w)
+ DEVCB_DRIVER_MEMBER(bking_state,port_b_w)
};
static MACHINE_START( bking )
diff --git a/src/mame/drivers/bladestl.c b/src/mame/drivers/bladestl.c
index 1d059b6ed0d..53410508c9b 100644
--- a/src/mame/drivers/bladestl.c
+++ b/src/mame/drivers/bladestl.c
@@ -95,19 +95,22 @@ WRITE8_MEMBER(bladestl_state::bladestl_sh_irqtrigger_w)
//logerror("(sound) write %02x\n", data);
}
-static WRITE8_DEVICE_HANDLER( bladestl_port_B_w )
+WRITE8_MEMBER(bladestl_state::bladestl_port_B_w)
{
+ device_t *device = machine().device("upd");
/* bit 1, 2 unknown */
upd7759_set_bank_base(device, ((data & 0x38) >> 3) * 0x20000);
}
-static READ8_DEVICE_HANDLER( bladestl_speech_busy_r )
+READ8_MEMBER(bladestl_state::bladestl_speech_busy_r)
{
+ device_t *device = machine().device("upd");
return upd7759_busy_r(device) ? 1 : 0;
}
-static WRITE8_DEVICE_HANDLER( bladestl_speech_ctrl_w )
+WRITE8_MEMBER(bladestl_state::bladestl_speech_ctrl_w)
{
+ device_t *device = machine().device("upd");
upd7759_reset_w(device, data & 1);
upd7759_start_w(device, data & 2);
}
@@ -143,8 +146,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, bladestl_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x1000, 0x1001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w) /* YM2203 */
- AM_RANGE(0x3000, 0x3000) AM_DEVWRITE_LEGACY("upd", bladestl_speech_ctrl_w) /* UPD7759 */
- AM_RANGE(0x4000, 0x4000) AM_DEVREAD_LEGACY("upd", bladestl_speech_busy_r) /* UPD7759 */
+ AM_RANGE(0x3000, 0x3000) AM_WRITE(bladestl_speech_ctrl_w) /* UPD7759 */
+ AM_RANGE(0x4000, 0x4000) AM_READ(bladestl_speech_busy_r) /* UPD7759 */
AM_RANGE(0x5000, 0x5000) AM_WRITENOP /* ??? */
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */
AM_RANGE(0x8000, 0xffff) AM_ROM
@@ -282,7 +285,7 @@ static const ym2203_interface ym2203_config =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_HANDLER("upd", upd7759_port_w),
- DEVCB_DEVICE_HANDLER("upd", bladestl_port_B_w)
+ DEVCB_DRIVER_MEMBER(bladestl_state,bladestl_port_B_w)
},
NULL
};
diff --git a/src/mame/drivers/blueprnt.c b/src/mame/drivers/blueprnt.c
index 35170ae5f22..d1b6459d879 100644
--- a/src/mame/drivers/blueprnt.c
+++ b/src/mame/drivers/blueprnt.c
@@ -57,10 +57,9 @@
*
*************************************/
-static WRITE8_DEVICE_HANDLER( dipsw_w )
+WRITE8_MEMBER(blueprnt_state::dipsw_w)
{
- blueprnt_state *state = device->machine().driver_data<blueprnt_state>();
- state->m_dipsw = data;
+ m_dipsw = data;
}
READ8_MEMBER(blueprnt_state::blueprnt_sh_dipsw_r)
@@ -255,7 +254,7 @@ static const ay8910_interface ay8910_interface_1 =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_HANDLER(dipsw_w),
+ DEVCB_DRIVER_MEMBER(blueprnt_state,dipsw_w),
DEVCB_NULL
};
diff --git a/src/mame/drivers/bogeyman.c b/src/mame/drivers/bogeyman.c
index f26f57a9830..5015c513830 100644
--- a/src/mame/drivers/bogeyman.c
+++ b/src/mame/drivers/bogeyman.c
@@ -218,14 +218,13 @@ static MACHINE_RESET( bogeyman )
state->m_last_write = 0;
}
-static WRITE8_DEVICE_HANDLER( bogeyman_colbank_w )
+WRITE8_MEMBER(bogeyman_state::bogeyman_colbank_w)
{
- bogeyman_state *state = device->machine().driver_data<bogeyman_state>();
- if((data & 1) != (state->m_colbank & 1))
+ if((data & 1) != (m_colbank & 1))
{
- state->m_colbank = data & 1;
- state->m_fg_tilemap->mark_all_dirty();
+ m_colbank = data & 1;
+ m_fg_tilemap->mark_all_dirty();
}
}
@@ -235,7 +234,7 @@ static const ay8910_interface ay8910_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(bogeyman_colbank_w),
+ DEVCB_DRIVER_MEMBER(bogeyman_state,bogeyman_colbank_w),
DEVCB_NULL
};
diff --git a/src/mame/drivers/boogwing.c b/src/mame/drivers/boogwing.c
index 1d90c1e30cf..8bacd2134ce 100644
--- a/src/mame/drivers/boogwing.c
+++ b/src/mame/drivers/boogwing.c
@@ -281,17 +281,16 @@ static void sound_irq(device_t *device, int state)
device_set_input_line(driver_state->m_audiocpu, 1, state); /* IRQ 2 */
}
-static WRITE8_DEVICE_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(boogwing_state::sound_bankswitch_w)
{
- boogwing_state *state = device->machine().driver_data<boogwing_state>();
- state->m_oki2->set_bank_base(((data & 2) >> 1) * 0x40000);
- state->m_oki1->set_bank_base((data & 1) * 0x40000);
+ m_oki2->set_bank_base(((data & 2) >> 1) * 0x40000);
+ m_oki1->set_bank_base((data & 1) * 0x40000);
}
static const ym2151_interface ym2151_config =
{
DEVCB_LINE(sound_irq),
- DEVCB_HANDLER(sound_bankswitch_w)
+ DEVCB_DRIVER_MEMBER(boogwing_state,sound_bankswitch_w)
};
diff --git a/src/mame/drivers/btime.c b/src/mame/drivers/btime.c
index c44e7169712..650e5086ba6 100644
--- a/src/mame/drivers/btime.c
+++ b/src/mame/drivers/btime.c
@@ -177,15 +177,14 @@ WRITE8_MEMBER(btime_state::audio_nmi_enable_w)
}
}
-static WRITE8_DEVICE_HANDLER( ay_audio_nmi_enable_w )
+WRITE8_MEMBER(btime_state::ay_audio_nmi_enable_w)
{
- btime_state *state = device->machine().driver_data<btime_state>();
/* port A bit 0, when 1, inhibits the NMI */
- if (state->m_audio_nmi_enable_type == AUDIO_ENABLE_AY8910)
+ if (m_audio_nmi_enable_type == AUDIO_ENABLE_AY8910)
{
- state->m_audio_nmi_enabled = ~data & 1;
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, (state->m_audio_nmi_enabled && state->m_audio_nmi_state) ? ASSERT_LINE : CLEAR_LINE);
+ m_audio_nmi_enabled = ~data & 1;
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, (m_audio_nmi_enabled && m_audio_nmi_state) ? ASSERT_LINE : CLEAR_LINE);
}
}
@@ -1319,7 +1318,7 @@ static const ay8910_interface ay1_intf =
{
AY8910_DISCRETE_OUTPUT,
{RES_K(5), RES_K(5), RES_K(5)},
- DEVCB_NULL, DEVCB_NULL, DEVCB_HANDLER(ay_audio_nmi_enable_w), DEVCB_NULL
+ DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(btime_state,ay_audio_nmi_enable_w), DEVCB_NULL
};
static const ay8910_interface ay2_intf =
diff --git a/src/mame/drivers/buggychl.c b/src/mame/drivers/buggychl.c
index 7eaeed9de36..52f6823e649 100644
--- a/src/mame/drivers/buggychl.c
+++ b/src/mame/drivers/buggychl.c
@@ -312,19 +312,19 @@ GFXDECODE_END
-static WRITE8_DEVICE_HANDLER( port_a_0_w )
+WRITE8_MEMBER(buggychl_state::port_a_0_w)
{
/* VOL/BAL for the 7630 on this 8910 output */
}
-static WRITE8_DEVICE_HANDLER( port_b_0_w )
+WRITE8_MEMBER(buggychl_state::port_b_0_w)
{
/* TRBL/BASS for the 7630 on this 8910 output */
}
-static WRITE8_DEVICE_HANDLER( port_a_1_w )
+WRITE8_MEMBER(buggychl_state::port_a_1_w)
{
/* VOL/BAL for the 7630 on this 8910 output */
}
-static WRITE8_DEVICE_HANDLER( port_b_1_w )
+WRITE8_MEMBER(buggychl_state::port_b_1_w)
{
/* TRBL/BASS for the 7630 on this 8910 output */
}
@@ -336,8 +336,8 @@ static const ay8910_interface ay8910_interface_1 =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(port_a_0_w),
- DEVCB_HANDLER(port_b_0_w)
+ DEVCB_DRIVER_MEMBER(buggychl_state,port_a_0_w),
+ DEVCB_DRIVER_MEMBER(buggychl_state,port_b_0_w)
};
static const ay8910_interface ay8910_interface_2 =
@@ -346,8 +346,8 @@ static const ay8910_interface ay8910_interface_2 =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(port_a_1_w),
- DEVCB_HANDLER(port_b_1_w)
+ DEVCB_DRIVER_MEMBER(buggychl_state,port_a_1_w),
+ DEVCB_DRIVER_MEMBER(buggychl_state,port_b_1_w)
};
static const msm5232_interface msm5232_config =
diff --git a/src/mame/drivers/bzone.c b/src/mame/drivers/bzone.c
index 4922911e7a4..76d6c91c16a 100644
--- a/src/mame/drivers/bzone.c
+++ b/src/mame/drivers/bzone.c
@@ -275,16 +275,15 @@ WRITE8_MEMBER(bzone_state::bzone_coin_counter_w)
*
*************************************/
-static READ8_DEVICE_HANDLER( redbaron_joy_r )
+READ8_MEMBER(bzone_state::redbaron_joy_r)
{
- bzone_state *state = device->machine().driver_data<bzone_state>();
- return state->ioport(state->m_rb_input_select ? "FAKE1" : "FAKE2")->read();
+ return ioport(m_rb_input_select ? "FAKE1" : "FAKE2")->read();
}
-static WRITE8_DEVICE_HANDLER( redbaron_joysound_w )
+WRITE8_MEMBER(bzone_state::redbaron_joysound_w)
{
- bzone_state *state = device->machine().driver_data<bzone_state>();
- state->m_rb_input_select = data & 1;
+ device_t *device = machine().device("custom");
+ m_rb_input_select = data & 1;
redbaron_sounds_w(device, offset, data);
}
@@ -330,7 +329,7 @@ static ADDRESS_MAP_START( redbaron_map, AS_PROGRAM, 8, bzone_state )
AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN4")
AM_RANGE(0x1804, 0x1804) AM_DEVREAD_LEGACY("mathbox", mathbox_lo_r)
AM_RANGE(0x1806, 0x1806) AM_DEVREAD_LEGACY("mathbox", mathbox_hi_r)
- AM_RANGE(0x1808, 0x1808) AM_DEVWRITE_LEGACY("custom", redbaron_joysound_w) /* and select joystick pot also */
+ AM_RANGE(0x1808, 0x1808) AM_WRITE(redbaron_joysound_w) /* and select joystick pot also */
AM_RANGE(0x180a, 0x180a) AM_WRITENOP /* sound reset, yet todo */
AM_RANGE(0x180c, 0x180c) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
AM_RANGE(0x1810, 0x181f) AM_DEVREADWRITE("pokey", pokeyn_device, read, write)
@@ -536,7 +535,7 @@ INPUT_PORTS_END
static const pokey_interface redbaron_pokey_interface =
{
{ DEVCB_NULL },
- DEVCB_HANDLER(redbaron_joy_r)
+ DEVCB_DRIVER_MEMBER(bzone_state,redbaron_joy_r)
};
diff --git a/src/mame/drivers/cabal.c b/src/mame/drivers/cabal.c
index 5dec9211884..97efee36151 100644
--- a/src/mame/drivers/cabal.c
+++ b/src/mame/drivers/cabal.c
@@ -213,15 +213,24 @@ ADDRESS_MAP_END
/* the bootleg has 2x z80 sample players */
-static WRITE8_DEVICE_HANDLER( cabalbl_adpcm_w )
+WRITE8_MEMBER(cabal_state::cabalbl_1_adpcm_w)
{
+ device_t *device = machine().device("msm1");
+ msm5205_reset_w(device,(data>>7)&1);
+ /* ?? bit 6?? */
+ msm5205_data_w(device,data);
+ msm5205_vclk_w(device,1);
+ msm5205_vclk_w(device,0);
+}
+WRITE8_MEMBER(cabal_state::cabalbl_2_adpcm_w)
+{
+ device_t *device = machine().device("msm2");
msm5205_reset_w(device,(data>>7)&1);
/* ?? bit 6?? */
msm5205_data_w(device,data);
msm5205_vclk_w(device,1);
msm5205_vclk_w(device,0);
}
-
static ADDRESS_MAP_START( cabalbl_talk1_map, AS_PROGRAM, 8, cabal_state )
AM_RANGE(0x0000, 0xffff) AM_ROM AM_WRITENOP
ADDRESS_MAP_END
@@ -229,7 +238,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cabalbl_talk1_portmap, AS_IO, 8, cabal_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch3_byte_r)
- AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("msm1", cabalbl_adpcm_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(cabalbl_1_adpcm_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( cabalbl_talk2_map, AS_PROGRAM, 8, cabal_state )
@@ -239,7 +248,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cabalbl_talk2_portmap, AS_IO, 8, cabal_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch4_byte_r)
- AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("msm2", cabalbl_adpcm_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(cabalbl_2_adpcm_w)
ADDRESS_MAP_END
/***************************************************************************/
diff --git a/src/mame/drivers/calomega.c b/src/mame/drivers/calomega.c
index 71ccd12a7f5..79ce07f6605 100644
--- a/src/mame/drivers/calomega.c
+++ b/src/mame/drivers/calomega.c
@@ -657,86 +657,82 @@
* Read/Write Handlers *
**************************************************/
-static WRITE_LINE_DEVICE_HANDLER( tx_rx_clk )
+WRITE_LINE_MEMBER(calomega_state::tx_rx_clk)
{
int trx_clk;
- UINT8 dsw2 = device->machine().root_device().ioport("SW2")->read();
+ UINT8 dsw2 = machine().root_device().ioport("SW2")->read();
trx_clk = UART_CLOCK * dsw2 / 128;
- acia6850_device *acia = downcast<acia6850_device *>(device);
+ acia6850_device *acia = machine().device<acia6850_device>("acia6850_0");
acia->set_rx_clock(trx_clk);
acia->set_tx_clock(trx_clk);
}
-static READ8_DEVICE_HANDLER( s903_mux_port_r )
+READ8_MEMBER(calomega_state::s903_mux_port_r)
{
- calomega_state *state = device->machine().driver_data<calomega_state>();
- switch( state->m_s903_mux_data & 0xf0 ) /* bits 4-7 */
+ switch( m_s903_mux_data & 0xf0 ) /* bits 4-7 */
{
- case 0x10: return state->ioport("IN0-0")->read();
- case 0x20: return state->ioport("IN0-1")->read();
- case 0x40: return state->ioport("IN0-2")->read();
- case 0x80: return state->ioport("IN0-3")->read();
+ case 0x10: return ioport("IN0-0")->read();
+ case 0x20: return ioport("IN0-1")->read();
+ case 0x40: return ioport("IN0-2")->read();
+ case 0x80: return ioport("IN0-3")->read();
}
- return device->machine().root_device().ioport("FRQ")->read(); /* bit7 used for 50/60 Hz selector */
+ return machine().root_device().ioport("FRQ")->read(); /* bit7 used for 50/60 Hz selector */
}
-static WRITE8_DEVICE_HANDLER( s903_mux_w )
+WRITE8_MEMBER(calomega_state::s903_mux_w)
{
- calomega_state *state = device->machine().driver_data<calomega_state>();
- state->m_s903_mux_data = data ^ 0xff; /* inverted */
+ m_s903_mux_data = data ^ 0xff; /* inverted */
}
-static READ8_DEVICE_HANDLER( s905_mux_port_r )
+READ8_MEMBER(calomega_state::s905_mux_port_r)
{
- calomega_state *state = device->machine().driver_data<calomega_state>();
- switch( state->m_s905_mux_data & 0x0f ) /* bits 0-3 */
+ switch( m_s905_mux_data & 0x0f ) /* bits 0-3 */
{
- case 0x01: return state->ioport("IN0-0")->read();
- case 0x02: return state->ioport("IN0-1")->read();
- case 0x04: return state->ioport("IN0-2")->read();
- case 0x08: return state->ioport("IN0-3")->read();
+ case 0x01: return ioport("IN0-0")->read();
+ case 0x02: return ioport("IN0-1")->read();
+ case 0x04: return ioport("IN0-2")->read();
+ case 0x08: return ioport("IN0-3")->read();
}
- return device->machine().root_device().ioport("FRQ")->read(); /* bit6 used for 50/60 Hz selector */
+ return machine().root_device().ioport("FRQ")->read(); /* bit6 used for 50/60 Hz selector */
}
-static WRITE8_DEVICE_HANDLER( s905_mux_w )
+WRITE8_MEMBER(calomega_state::s905_mux_w)
{
- calomega_state *state = device->machine().driver_data<calomega_state>();
- state->m_s905_mux_data = data ^ 0xff; /* inverted */
+ m_s905_mux_data = data ^ 0xff; /* inverted */
}
/********* 906III PIAs debug *********/
-static READ8_DEVICE_HANDLER( pia0_ain_r )
+READ8_MEMBER(calomega_state::pia0_ain_r)
{
/* Valid input port. Each polled value is stored at $0538 */
logerror("PIA0: Port A in\n");
- return device->machine().root_device().ioport("IN0")->read();
+ return machine().root_device().ioport("IN0")->read();
}
-static READ8_DEVICE_HANDLER( pia0_bin_r )
+READ8_MEMBER(calomega_state::pia0_bin_r)
{
logerror("PIA0: Port B in\n");
return 0xff;
}
-static WRITE8_DEVICE_HANDLER( pia0_aout_w )
+WRITE8_MEMBER(calomega_state::pia0_aout_w)
{
logerror("PIA0: Port A out: %02X\n", data);
}
-static WRITE8_DEVICE_HANDLER( pia0_bout_w )
+WRITE8_MEMBER(calomega_state::pia0_bout_w)
{
logerror("PIA0: Port B out: %02X\n", data);
}
-static WRITE8_DEVICE_HANDLER( pia0_ca2_w )
+WRITE8_MEMBER(calomega_state::pia0_ca2_w)
{
/* Seems a kind of "heartbit" watchdog, switching 1's and 0's */
logerror("PIA0: CA2: %02X\n", data);
@@ -744,35 +740,35 @@ static WRITE8_DEVICE_HANDLER( pia0_ca2_w )
-static READ8_DEVICE_HANDLER( pia1_ain_r )
+READ8_MEMBER(calomega_state::pia1_ain_r)
{
logerror("PIA1: Port A in\n");
return 0xff;
}
-static READ8_DEVICE_HANDLER( pia1_bin_r )
+READ8_MEMBER(calomega_state::pia1_bin_r)
{
logerror("PIA1: Port B in\n");
return 0xff;
}
-static WRITE8_DEVICE_HANDLER( pia1_aout_w )
+WRITE8_MEMBER(calomega_state::pia1_aout_w)
{
logerror("PIA1: Port A out: %02X\n", data);
}
-static WRITE8_DEVICE_HANDLER( pia1_bout_w )
+WRITE8_MEMBER(calomega_state::pia1_bout_w)
{
logerror("PIA1: Port B out: %02X\n", data);
}
-static WRITE8_DEVICE_HANDLER( ay_aout_w )
+WRITE8_MEMBER(calomega_state::ay_aout_w)
{
logerror("AY8910: Port A out: %02X\n", data);
}
-static WRITE8_DEVICE_HANDLER( ay_bout_w )
+WRITE8_MEMBER(calomega_state::ay_bout_w)
{
logerror("AY8910: Port B out: %02X\n", data);
}
@@ -798,7 +794,7 @@ static WRITE8_DEVICE_HANDLER( ay_bout_w )
0xff 0x7b = Take
*/
-static WRITE8_DEVICE_HANDLER( lamps_903a_w )
+WRITE8_MEMBER(calomega_state::lamps_903a_w)
{
/* First 5 bits of PIA0 port B */
output_set_lamp_value(1, 1-((data) & 1)); /* L1 (Hold 1) */
@@ -808,7 +804,7 @@ static WRITE8_DEVICE_HANDLER( lamps_903a_w )
output_set_lamp_value(5, 1-((data >> 4) & 1)); /* L5 (Hold 5) */
}
-static WRITE8_DEVICE_HANDLER( lamps_903b_w )
+WRITE8_MEMBER(calomega_state::lamps_903b_w)
{
/* First 4 bits of PIA1 port A */
output_set_lamp_value(6, 1-((data) & 1)); /* L6 (Cancel) */
@@ -817,7 +813,7 @@ static WRITE8_DEVICE_HANDLER( lamps_903b_w )
output_set_lamp_value(9, 1-((data >> 3) & 1)); /* L9 (Door?) */
}
-static WRITE8_DEVICE_HANDLER( lamps_905_w )
+WRITE8_MEMBER(calomega_state::lamps_905_w)
{
/* Whole 8 bits of PIA0 port B */
output_set_lamp_value(1, 1-((data) & 1)); /* L1 (Hold 1) */
@@ -2415,14 +2411,14 @@ GFXDECODE_END
*/
static const pia6821_interface sys903_pia0_intf =
{
- DEVCB_HANDLER(s903_mux_port_r), /* port A in */
+ DEVCB_DRIVER_MEMBER(calomega_state,s903_mux_port_r), /* port A in */
DEVCB_NULL, /* port B in */
DEVCB_NULL, /* line CA1 in */
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
DEVCB_NULL, /* port A out */
- DEVCB_HANDLER(lamps_903a_w), /* port B out */
+ DEVCB_DRIVER_MEMBER(calomega_state,lamps_903a_w), /* port B out */
DEVCB_NULL, /* line CA2 out */
DEVCB_NULL, /* port CB2 out */
DEVCB_NULL, /* IRQA */
@@ -2483,8 +2479,8 @@ static const pia6821_interface sys903_pia1_intf =
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
- DEVCB_HANDLER(lamps_903b_w), /* port A out */
- DEVCB_HANDLER(s903_mux_w), /* port B out */
+ DEVCB_DRIVER_MEMBER(calomega_state,lamps_903b_w), /* port A out */
+ DEVCB_DRIVER_MEMBER(calomega_state,s903_mux_w), /* port B out */
DEVCB_NULL, /* line CA2 out */
DEVCB_NULL, /* port CB2 out */
DEVCB_NULL, /* IRQA */
@@ -2539,14 +2535,14 @@ static const pia6821_interface sys903_pia1_intf =
*/
static const pia6821_interface sys905_pia0_intf =
{
- DEVCB_HANDLER(s905_mux_port_r), /* port A in */
+ DEVCB_DRIVER_MEMBER(calomega_state,s905_mux_port_r), /* port A in */
DEVCB_NULL, /* port B in */
DEVCB_NULL, /* line CA1 in */
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
DEVCB_NULL, /* port A out */
- DEVCB_HANDLER(lamps_905_w), /* port B out */
+ DEVCB_DRIVER_MEMBER(calomega_state,lamps_905_w), /* port B out */
DEVCB_NULL, /* line CA2 out */
DEVCB_NULL, /* port CB2 out */
DEVCB_NULL, /* IRQA */
@@ -2608,7 +2604,7 @@ static const pia6821_interface sys905_pia1_intf =
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
DEVCB_NULL, /* port A out */
- DEVCB_HANDLER(s905_mux_w), /* port B out */
+ DEVCB_DRIVER_MEMBER(calomega_state,s905_mux_w), /* port B out */
DEVCB_NULL, /* line CA2 out */
DEVCB_NULL, /* port CB2 out */
DEVCB_NULL, /* IRQA */
@@ -2619,15 +2615,15 @@ static const pia6821_interface sys905_pia1_intf =
/********** System 906 PIA-0 **********/
static const pia6821_interface sys906_pia0_intf =
{
- DEVCB_HANDLER(pia0_ain_r), /* port A in */ /* Valid input port. Each polled value is stored at $0538 */
- DEVCB_HANDLER(pia0_bin_r), /* port B in */
+ DEVCB_DRIVER_MEMBER(calomega_state,pia0_ain_r), /* port A in */ /* Valid input port. Each polled value is stored at $0538 */
+ DEVCB_DRIVER_MEMBER(calomega_state,pia0_bin_r), /* port B in */
DEVCB_NULL, /* line CA1 in */
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
- DEVCB_HANDLER(pia0_aout_w), /* port A out */
- DEVCB_HANDLER(pia0_bout_w), /* port B out */
- DEVCB_HANDLER(pia0_ca2_w), /* line CA2 out */ /* Seems a kind of "heartbit" watchdog, switching 1's and 0's */
+ DEVCB_DRIVER_MEMBER(calomega_state,pia0_aout_w), /* port A out */
+ DEVCB_DRIVER_MEMBER(calomega_state,pia0_bout_w), /* port B out */
+ DEVCB_DRIVER_MEMBER(calomega_state,pia0_ca2_w), /* line CA2 out */ /* Seems a kind of "heartbit" watchdog, switching 1's and 0's */
DEVCB_NULL, /* port CB2 out */
DEVCB_NULL, /* IRQA */
DEVCB_NULL /* IRQB */
@@ -2636,14 +2632,14 @@ static const pia6821_interface sys906_pia0_intf =
/********** System 906 PIA-1 **********/
static const pia6821_interface sys906_pia1_intf =
{
- DEVCB_HANDLER(pia1_ain_r), /* port A in */
- DEVCB_HANDLER(pia1_bin_r), /* port B in */
+ DEVCB_DRIVER_MEMBER(calomega_state,pia1_ain_r), /* port A in */
+ DEVCB_DRIVER_MEMBER(calomega_state,pia1_bin_r), /* port B in */
DEVCB_NULL, /* line CA1 in */
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
- DEVCB_HANDLER(pia1_aout_w), /* port A out */
- DEVCB_HANDLER(pia1_bout_w), /* port B out */
+ DEVCB_DRIVER_MEMBER(calomega_state,pia1_aout_w), /* port A out */
+ DEVCB_DRIVER_MEMBER(calomega_state,pia1_bout_w), /* port B out */
DEVCB_NULL, /* line CA2 out */
DEVCB_NULL, /* port CB2 out */
DEVCB_NULL, /* IRQA */
@@ -2655,28 +2651,26 @@ static const pia6821_interface sys906_pia1_intf =
* ACIA Interface *
*************************************************/
-static READ_LINE_DEVICE_HANDLER( acia_rx_r )
+READ_LINE_MEMBER(calomega_state::acia_rx_r)
{
- calomega_state *state = device->machine().driver_data<calomega_state>();
- return state->m_rx_line;
+ return m_rx_line;
}
-static WRITE_LINE_DEVICE_HANDLER( acia_tx_w )
+WRITE_LINE_MEMBER(calomega_state::acia_tx_w)
{
- calomega_state *drvstate = device->machine().driver_data<calomega_state>();
- drvstate->m_tx_line = state;
+ m_tx_line = state;
}
static ACIA6850_INTERFACE( acia6850_intf )
{
UART_CLOCK,
UART_CLOCK,
- DEVCB_LINE(acia_rx_r), /*&rx_line,*/
- DEVCB_LINE(acia_tx_w), /*&tx_line,*/
+ DEVCB_DRIVER_LINE_MEMBER(calomega_state,acia_rx_r), /*&rx_line,*/
+ DEVCB_DRIVER_LINE_MEMBER(calomega_state,acia_tx_w), /*&tx_line,*/
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_LINE(tx_rx_clk)
+ DEVCB_DRIVER_LINE_MEMBER(calomega_state,tx_rx_clk)
};
@@ -2710,8 +2704,8 @@ static const ay8910_interface sys906_ay8912_intf =
AY8910_DEFAULT_LOADS,
DEVCB_INPUT_PORT("SW2"), /* From PCB pic. Value is stored at $0539 */
DEVCB_NULL,
- DEVCB_HANDLER(ay_aout_w),
- DEVCB_HANDLER(ay_bout_w)
+ DEVCB_DRIVER_MEMBER(calomega_state,ay_aout_w),
+ DEVCB_DRIVER_MEMBER(calomega_state,ay_bout_w)
};
diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c
index 6fe83ed495d..7b405e8f245 100644
--- a/src/mame/drivers/cave.c
+++ b/src/mame/drivers/cave.c
@@ -289,17 +289,18 @@ WRITE8_MEMBER(cave_state::soundlatch_ack_w)
***************************************************************************/
-static WRITE16_DEVICE_HANDLER( cave_eeprom_msb_w )
+WRITE16_MEMBER(cave_state::cave_eeprom_msb_w)
{
+ device_t *device = machine().device("eeprom");
if (data & ~0xfe00)
- logerror("%s: Unknown EEPROM bit written %04X\n", device->machine().describe_context(), data);
+ logerror("%s: Unknown EEPROM bit written %04X\n", machine().describe_context(), data);
if (ACCESSING_BITS_8_15) // even address
{
- coin_lockout_w(device->machine(), 1,~data & 0x8000);
- coin_lockout_w(device->machine(), 0,~data & 0x4000);
- coin_counter_w(device->machine(), 1, data & 0x2000);
- coin_counter_w(device->machine(), 0, data & 0x1000);
+ coin_lockout_w(machine(), 1,~data & 0x8000);
+ coin_lockout_w(machine(), 0,~data & 0x4000);
+ coin_counter_w(machine(), 1, data & 0x2000);
+ coin_counter_w(machine(), 0, data & 0x1000);
// latch the bit
eeprom_device *eeprom = downcast<eeprom_device *>(device);
@@ -313,14 +314,15 @@ static WRITE16_DEVICE_HANDLER( cave_eeprom_msb_w )
}
}
-static WRITE16_DEVICE_HANDLER( sailormn_eeprom_msb_w )
+WRITE16_MEMBER(cave_state::sailormn_eeprom_msb_w)
{
- sailormn_tilebank_w(device->machine(), data & 0x0100);
- cave_eeprom_msb_w(device, offset, data & ~0x0100, mem_mask);
+ sailormn_tilebank_w(machine(), data & 0x0100);
+ cave_eeprom_msb_w(space, offset, data & ~0x0100, mem_mask);
}
-static WRITE16_DEVICE_HANDLER( hotdogst_eeprom_msb_w )
+WRITE16_MEMBER(cave_state::hotdogst_eeprom_msb_w)
{
+ device_t *device = machine().device("eeprom");
if (ACCESSING_BITS_8_15) // even address
{
// latch the bit
@@ -335,17 +337,18 @@ static WRITE16_DEVICE_HANDLER( hotdogst_eeprom_msb_w )
}
}
-static WRITE16_DEVICE_HANDLER( cave_eeprom_lsb_w )
+WRITE16_MEMBER(cave_state::cave_eeprom_lsb_w)
{
+ device_t *device = machine().device("eeprom");
if (data & ~0x00ef)
- logerror("%s: Unknown EEPROM bit written %04X\n",device->machine().describe_context(),data);
+ logerror("%s: Unknown EEPROM bit written %04X\n",machine().describe_context(),data);
if (ACCESSING_BITS_0_7) // odd address
{
- coin_lockout_w(device->machine(), 1, ~data & 0x0008);
- coin_lockout_w(device->machine(), 0, ~data & 0x0004);
- coin_counter_w(device->machine(), 1, data & 0x0002);
- coin_counter_w(device->machine(), 0, data & 0x0001);
+ coin_lockout_w(machine(), 1, ~data & 0x0008);
+ coin_lockout_w(machine(), 0, ~data & 0x0004);
+ coin_counter_w(machine(), 1, data & 0x0002);
+ coin_counter_w(machine(), 0, data & 0x0001);
// latch the bit
eeprom_device *eeprom = downcast<eeprom_device *>(device);
@@ -371,15 +374,16 @@ WRITE16_MEMBER(cave_state::gaia_coin_lsb_w)
/* - No coin lockouts
- Writing 0xcf00 shouldn't send a 1 bit to the eeprom */
-static WRITE16_DEVICE_HANDLER( metmqstr_eeprom_msb_w )
+WRITE16_MEMBER(cave_state::metmqstr_eeprom_msb_w)
{
+ device_t *device = machine().device("eeprom");
if (data & ~0xff00)
- logerror("%s: Unknown EEPROM bit written %04X\n", device->machine().describe_context(), data);
+ logerror("%s: Unknown EEPROM bit written %04X\n", machine().describe_context(), data);
if (ACCESSING_BITS_8_15) // even address
{
- coin_counter_w(device->machine(), 1, data & 0x2000);
- coin_counter_w(device->machine(), 0, data & 0x1000);
+ coin_counter_w(machine(), 1, data & 0x2000);
+ coin_counter_w(machine(), 0, data & 0x1000);
if (~data & 0x0100)
{
@@ -445,7 +449,7 @@ static ADDRESS_MAP_START( dfeveron_map, AS_PROGRAM, 16, cave_state )
/**/AM_RANGE(0xa00000, 0xa00005) AM_RAM AM_SHARE("vctrl.1") // Layer 1 Control
AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("IN0") // Inputs
AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("IN1") // Inputs + EEPROM
- AM_RANGE(0xc00000, 0xc00001) AM_DEVWRITE_LEGACY("eeprom", cave_eeprom_msb_w) // EEPROM
+ AM_RANGE(0xc00000, 0xc00001) AM_WRITE(cave_eeprom_msb_w) // EEPROM
ADDRESS_MAP_END
@@ -470,7 +474,7 @@ static ADDRESS_MAP_START( ddonpach_map, AS_PROGRAM, 16, cave_state )
/**/AM_RANGE(0xc00000, 0xc0ffff) AM_RAM AM_SHARE("paletteram") // Palette
AM_RANGE(0xd00000, 0xd00001) AM_READ_PORT("IN0") // Inputs
AM_RANGE(0xd00002, 0xd00003) AM_READ_PORT("IN1") // Inputs + EEPROM
- AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE_LEGACY("eeprom", cave_eeprom_msb_w) // EEPROM
+ AM_RANGE(0xe00000, 0xe00001) AM_WRITE(cave_eeprom_msb_w) // EEPROM
ADDRESS_MAP_END
@@ -521,7 +525,7 @@ static ADDRESS_MAP_START( donpachi_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0xb00020, 0xb0002f) AM_DEVWRITE_LEGACY("nmk112", nmk112_okibank_lsb_w) //
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") // Inputs
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // Inputs + EEPROM
- AM_RANGE(0xd00000, 0xd00001) AM_DEVWRITE_LEGACY("eeprom", cave_eeprom_msb_w) // EEPROM
+ AM_RANGE(0xd00000, 0xd00001) AM_WRITE(cave_eeprom_msb_w) // EEPROM
ADDRESS_MAP_END
@@ -546,7 +550,7 @@ static ADDRESS_MAP_START( esprade_map, AS_PROGRAM, 16, cave_state )
/**/AM_RANGE(0xc00000, 0xc0ffff) AM_RAM AM_SHARE("paletteram") // Palette
AM_RANGE(0xd00000, 0xd00001) AM_READ_PORT("IN0" ) // Inputs
AM_RANGE(0xd00002, 0xd00003) AM_READ_PORT("IN1" ) // Inputs + EEPROM
- AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE_LEGACY("eeprom", cave_eeprom_msb_w) // EEPROM
+ AM_RANGE(0xe00000, 0xe00001) AM_WRITE(cave_eeprom_msb_w) // EEPROM
ADDRESS_MAP_END
@@ -600,7 +604,7 @@ static ADDRESS_MAP_START( guwange_map, AS_PROGRAM, 16, cave_state )
/**/AM_RANGE(0xb00000, 0xb00005) AM_RAM AM_SHARE("vctrl.2") // Layer 2 Control
/**/AM_RANGE(0xc00000, 0xc0ffff) AM_RAM AM_SHARE("paletteram") // Palette
AM_RANGE(0xd00010, 0xd00011) AM_READ_PORT("IN0") // Inputs
- AM_RANGE(0xd00010, 0xd00011) AM_DEVWRITE_LEGACY("eeprom", cave_eeprom_lsb_w) // EEPROM
+ AM_RANGE(0xd00010, 0xd00011) AM_WRITE(cave_eeprom_lsb_w) // EEPROM
AM_RANGE(0xd00012, 0xd00013) AM_READ_PORT("IN1") // Inputs + EEPROM
// AM_RANGE(0xd00012, 0xd00013) AM_WRITENOP // ?
// AM_RANGE(0xd00014, 0xd00015) AM_WRITENOP // ? $800068 in dfeveron ? probably Watchdog
@@ -627,7 +631,7 @@ static ADDRESS_MAP_START( hotdogst_map, AS_PROGRAM, 16, cave_state )
/**/AM_RANGE(0xc00000, 0xc00005) AM_RAM AM_SHARE("vctrl.2") // Layer 2 Control
AM_RANGE(0xc80000, 0xc80001) AM_READ_PORT("IN0") // Inputs
AM_RANGE(0xc80002, 0xc80003) AM_READ_PORT("IN1") // Inputs + EEPROM
- AM_RANGE(0xd00000, 0xd00001) AM_DEVWRITE_LEGACY("eeprom", hotdogst_eeprom_msb_w) // EEPROM
+ AM_RANGE(0xd00000, 0xd00001) AM_WRITE(hotdogst_eeprom_msb_w) // EEPROM
AM_RANGE(0xd00002, 0xd00003) AM_WRITENOP // ???
/**/AM_RANGE(0xf00000, 0xf07fff) AM_RAM AM_SHARE("spriteram") // Sprites
/**/AM_RANGE(0xf08000, 0xf0ffff) AM_RAM AM_SHARE("spriteram_2") // Sprites?
@@ -670,19 +674,19 @@ WRITE16_MEMBER(cave_state::korokoro_leds_w)
}
-static WRITE16_DEVICE_HANDLER( korokoro_eeprom_msb_w )
+WRITE16_MEMBER(cave_state::korokoro_eeprom_msb_w)
{
- cave_state *state = device->machine().driver_data<cave_state>();
+ device_t *device = machine().device("eeprom");
if (data & ~0x7000)
{
- logerror("%s: Unknown EEPROM bit written %04X\n",device->machine().describe_context(),data);
- COMBINE_DATA(&state->m_leds[1]);
- show_leds(device->machine());
+ logerror("%s: Unknown EEPROM bit written %04X\n",machine().describe_context(),data);
+ COMBINE_DATA(&m_leds[1]);
+ show_leds(machine());
}
if (ACCESSING_BITS_8_15) // even address
{
- state->m_hopper = data & 0x0100; // ???
+ m_hopper = data & 0x0100; // ???
// latch the bit
eeprom_device *eeprom = downcast<eeprom_device *>(device);
@@ -715,7 +719,7 @@ static ADDRESS_MAP_START( korokoro_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x280000, 0x280001) AM_READ_PORT("IN0") // Inputs + ???
AM_RANGE(0x280002, 0x280003) AM_READ_PORT("IN1") // Inputs + EEPROM
AM_RANGE(0x280008, 0x280009) AM_WRITE(korokoro_leds_w) // Leds
- AM_RANGE(0x28000a, 0x28000b) AM_DEVWRITE_LEGACY("eeprom", korokoro_eeprom_msb_w) // EEPROM
+ AM_RANGE(0x28000a, 0x28000b) AM_WRITE(korokoro_eeprom_msb_w) // EEPROM
AM_RANGE(0x28000c, 0x28000d) AM_WRITENOP // 0 (watchdog?)
AM_RANGE(0x300000, 0x30ffff) AM_RAM // RAM
ADDRESS_MAP_END
@@ -730,7 +734,7 @@ static ADDRESS_MAP_START( crusherm_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x280000, 0x280001) AM_READ_PORT("IN0") // Inputs + ???
AM_RANGE(0x280002, 0x280003) AM_READ_PORT("IN1") // Inputs + EEPROM
AM_RANGE(0x280008, 0x280009) AM_WRITE(korokoro_leds_w) // Leds
- AM_RANGE(0x28000a, 0x28000b) AM_DEVWRITE_LEGACY("eeprom", korokoro_eeprom_msb_w) // EEPROM
+ AM_RANGE(0x28000a, 0x28000b) AM_WRITE(korokoro_eeprom_msb_w) // EEPROM
AM_RANGE(0x28000c, 0x28000d) AM_WRITENOP // 0 (watchdog?)
AM_RANGE(0x300000, 0x300007) AM_READ(cave_irq_cause_r) // IRQ Cause
AM_RANGE(0x300000, 0x30007f) AM_WRITEONLY AM_SHARE("videoregs") // Video Regs
@@ -756,7 +760,7 @@ static ADDRESS_MAP_START( mazinger_map, AS_PROGRAM, 16, cave_state )
/**/AM_RANGE(0x700000, 0x700005) AM_RAM AM_SHARE("vctrl.0") // Layer 0 Control
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN0") // Inputs
AM_RANGE(0x800002, 0x800003) AM_READ_PORT("IN1") // Inputs + EEPROM
- AM_RANGE(0x900000, 0x900001) AM_DEVWRITE_LEGACY("eeprom", cave_eeprom_msb_w) // EEPROM
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(cave_eeprom_msb_w) // EEPROM
/**/AM_RANGE(0xc08000, 0xc0ffff) AM_RAM AM_SHARE("paletteram") // Palette
AM_RANGE(0xd00000, 0xd7ffff) AM_ROMBANK("bank1") // ROM
ADDRESS_MAP_END
@@ -788,7 +792,7 @@ static ADDRESS_MAP_START( metmqstr_map, AS_PROGRAM, 16, cave_state )
/**/AM_RANGE(0xc00000, 0xc00005) AM_RAM AM_SHARE("vctrl.0") // Layer 0 Control
AM_RANGE(0xc80000, 0xc80001) AM_READ_PORT("IN0") // Inputs
AM_RANGE(0xc80002, 0xc80003) AM_READ_PORT("IN1") // Inputs + EEPROM
- AM_RANGE(0xd00000, 0xd00001) AM_DEVWRITE_LEGACY("eeprom", metmqstr_eeprom_msb_w) // EEPROM
+ AM_RANGE(0xd00000, 0xd00001) AM_WRITE(metmqstr_eeprom_msb_w) // EEPROM
AM_RANGE(0xf00000, 0xf07fff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0xf08000, 0xf0ffff) AM_RAM AM_SHARE("spriteram_2") // RAM
ADDRESS_MAP_END
@@ -798,8 +802,9 @@ ADDRESS_MAP_END
Power Instinct 2
***************************************************************************/
-static READ16_DEVICE_HANDLER( pwrinst2_eeprom_r )
+READ16_MEMBER(cave_state::pwrinst2_eeprom_r)
{
+ device_t *device = machine().device("eeprom");
eeprom_device *eeprom = downcast<eeprom_device *>(device);
return ~8 + ((eeprom->read_bit() & 1) ? 8 : 0);
}
@@ -832,7 +837,7 @@ static ADDRESS_MAP_START( pwrinst2_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("IN0") // Inputs
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("IN1") //
AM_RANGE(0x600000, 0x6fffff) AM_ROM AM_REGION("user1", 0) // extra data ROM space
- AM_RANGE(0x700000, 0x700001) AM_DEVWRITE_LEGACY("eeprom", cave_eeprom_msb_w) // EEPROM
+ AM_RANGE(0x700000, 0x700001) AM_WRITE(cave_eeprom_msb_w) // EEPROM
AM_RANGE(0x800000, 0x807fff) AM_RAM_WRITE(cave_vram_2_w) AM_SHARE("vram.2") // Layer 2
AM_RANGE(0x880000, 0x887fff) AM_RAM_WRITE(cave_vram_0_w) AM_SHARE("vram.0") // Layer 0
AM_RANGE(0x900000, 0x907fff) AM_RAM_WRITE(cave_vram_1_w) AM_SHARE("vram.1") // Layer 1
@@ -847,7 +852,7 @@ static ADDRESS_MAP_START( pwrinst2_map, AS_PROGRAM, 16, cave_state )
/**/AM_RANGE(0xc80000, 0xc80005) AM_RAM_WRITE(pwrinst2_vctrl_3_w) AM_SHARE("vctrl.3") // Layer 3 Control
AM_RANGE(0xd80000, 0xd80001) AM_READ(soundlatch_ack_r) // ? From Sound CPU
AM_RANGE(0xe00000, 0xe00001) AM_WRITE(sound_cmd_w) // To Sound CPU
- AM_RANGE(0xe80000, 0xe80001) AM_DEVREAD_LEGACY("eeprom", pwrinst2_eeprom_r) // EEPROM
+ AM_RANGE(0xe80000, 0xe80001) AM_READ(pwrinst2_eeprom_r) // EEPROM
AM_RANGE(0xf00000, 0xf04fff) AM_RAM AM_SHARE("paletteram") // Palette
ADDRESS_MAP_END
@@ -876,7 +881,7 @@ static ADDRESS_MAP_START( sailormn_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x510000, 0x510001) AM_RAM // (agallet)
AM_RANGE(0x600000, 0x600001) AM_READ(sailormn_input0_r) // Inputs + Watchdog!
AM_RANGE(0x600002, 0x600003) AM_READ_PORT("IN1") // Inputs + EEPROM
- AM_RANGE(0x700000, 0x700001) AM_DEVWRITE_LEGACY("eeprom", sailormn_eeprom_msb_w) // EEPROM
+ AM_RANGE(0x700000, 0x700001) AM_WRITE(sailormn_eeprom_msb_w) // EEPROM
AM_RANGE(0x800000, 0x807fff) AM_RAM_WRITE(cave_vram_0_w) AM_SHARE("vram.0") // Layer 0
AM_RANGE(0x880000, 0x887fff) AM_RAM_WRITE(cave_vram_1_w) AM_SHARE("vram.1") // Layer 1
AM_RANGE(0x900000, 0x907fff) AM_RAM_WRITE(cave_vram_2_w) AM_SHARE("vram.2") // Layer 2
@@ -896,10 +901,11 @@ ADDRESS_MAP_END
Tobikose! Jumpman
***************************************************************************/
-static WRITE16_DEVICE_HANDLER( tjumpman_eeprom_lsb_w )
+WRITE16_MEMBER(cave_state::tjumpman_eeprom_lsb_w)
{
+ device_t *device = machine().device("eeprom");
if (data & ~0x0038)
- logerror("%s: Unknown EEPROM bit written %04X\n",device->machine().describe_context(),data);
+ logerror("%s: Unknown EEPROM bit written %04X\n",machine().describe_context(),data);
if (ACCESSING_BITS_0_7) // odd address
{
@@ -953,7 +959,7 @@ static ADDRESS_MAP_START( tjumpman_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x700000, 0x70007f) AM_WRITEONLY AM_SHARE("videoregs") // Video Regs
AM_RANGE(0x800000, 0x800001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff) // M6295
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(tjumpman_leds_w) // Leds + Hopper
- AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE_LEGACY("eeprom", tjumpman_eeprom_lsb_w) // EEPROM
+ AM_RANGE(0xe00000, 0xe00001) AM_WRITE(tjumpman_eeprom_lsb_w) // EEPROM
ADDRESS_MAP_END
@@ -992,7 +998,7 @@ static ADDRESS_MAP_START( pacslot_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("IN1") // Inputs
AM_RANGE(0x800000, 0x800001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff) // M6295
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(pacslot_leds_w) // Leds + Hopper
- AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE_LEGACY("eeprom", tjumpman_eeprom_lsb_w) // EEPROM
+ AM_RANGE(0xe00000, 0xe00001) AM_WRITE(tjumpman_eeprom_lsb_w) // EEPROM
ADDRESS_MAP_END
@@ -1013,7 +1019,7 @@ static ADDRESS_MAP_START( uopoko_map, AS_PROGRAM, 16, cave_state )
/**/AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_SHARE("paletteram") // Palette
AM_RANGE(0x900000, 0x900001) AM_READ_PORT("IN0") // Inputs
AM_RANGE(0x900002, 0x900003) AM_READ_PORT("IN1") // Inputs + EEPROM
- AM_RANGE(0xa00000, 0xa00001) AM_DEVWRITE_LEGACY("eeprom", cave_eeprom_msb_w) // EEPROM
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITE(cave_eeprom_msb_w) // EEPROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cchasm.c b/src/mame/drivers/cchasm.c
index 5afbc961f8a..48471f3f16a 100644
--- a/src/mame/drivers/cchasm.c
+++ b/src/mame/drivers/cchasm.c
@@ -67,9 +67,9 @@ static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, cchasm_state )
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("ctc", z80ctc_r, z80ctc_w)
ADDRESS_MAP_END
-static WRITE_LINE_DEVICE_HANDLER( cchasm_6840_irq )
+WRITE_LINE_MEMBER(cchasm_state::cchasm_6840_irq)
{
- cputag_set_input_line(device->machine(), "maincpu", 4, state ? ASSERT_LINE : CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 4, state ? ASSERT_LINE : CLEAR_LINE);
}
static const ptm6840_interface cchasm_6840_intf =
@@ -77,7 +77,7 @@ static const ptm6840_interface cchasm_6840_intf =
CCHASM_68K_CLOCK/10,
{ 0, CCHASM_68K_CLOCK / 10, 0 },
{ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL },
- DEVCB_LINE(cchasm_6840_irq)
+ DEVCB_DRIVER_LINE_MEMBER(cchasm_state,cchasm_6840_irq)
};
/*************************************
diff --git a/src/mame/drivers/cd32.c b/src/mame/drivers/cd32.c
index f6ef8eed6c7..6e247c1592a 100644
--- a/src/mame/drivers/cd32.c
+++ b/src/mame/drivers/cd32.c
@@ -83,15 +83,16 @@ WRITE32_MEMBER(cd32_state::aga_overlay_w)
*
*************************************/
-static WRITE8_DEVICE_HANDLER( cd32_cia_0_porta_w )
+WRITE8_MEMBER(cd32_state::cd32_cia_0_porta_w)
{
+ device_t *device = machine().device("cia_0");
/* bit 1 = cd audio mute */
- device->machine().device<cdda_device>("cdda")->set_output_gain( 0, ( data & 1 ) ? 0.0 : 1.0 );
+ machine().device<cdda_device>("cdda")->set_output_gain( 0, ( data & 1 ) ? 0.0 : 1.0 );
/* bit 2 = Power Led on Amiga */
- set_led_status(device->machine(), 0, (data & 2) ? 0 : 1);
+ set_led_status(machine(), 0, (data & 2) ? 0 : 1);
- handle_cd32_joystick_cia(device->machine(), data, mos6526_r(device, 2));
+ handle_cd32_joystick_cia(machine(), data, mos6526_r(device, 2));
}
/*************************************
@@ -109,17 +110,17 @@ static WRITE8_DEVICE_HANDLER( cd32_cia_0_porta_w )
*
*************************************/
-static READ8_DEVICE_HANDLER( cd32_cia_0_portb_r )
+READ8_MEMBER(cd32_state::cd32_cia_0_portb_r)
{
/* parallel port */
- logerror("%s:CIA0_portb_r\n", device->machine().describe_context());
+ logerror("%s:CIA0_portb_r\n", machine().describe_context());
return 0xff;
}
-static WRITE8_DEVICE_HANDLER( cd32_cia_0_portb_w )
+WRITE8_MEMBER(cd32_state::cd32_cia_0_portb_w)
{
/* parallel port */
- logerror("%s:CIA0_portb_w(%02x)\n", device->machine().describe_context(), data);
+ logerror("%s:CIA0_portb_w(%02x)\n", machine().describe_context(), data);
}
static ADDRESS_MAP_START( cd32_map, AS_PROGRAM, 32, cd32_state )
@@ -732,9 +733,9 @@ static const mos6526_interface cia_0_intf =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_INPUT_PORT("CIA0PORTA"),
- DEVCB_HANDLER(cd32_cia_0_porta_w), /* port A */
- DEVCB_HANDLER(cd32_cia_0_portb_r),
- DEVCB_HANDLER(cd32_cia_0_portb_w) /* port B */
+ DEVCB_DRIVER_MEMBER(cd32_state,cd32_cia_0_porta_w), /* port A */
+ DEVCB_DRIVER_MEMBER(cd32_state,cd32_cia_0_portb_r),
+ DEVCB_DRIVER_MEMBER(cd32_state,cd32_cia_0_portb_w) /* port B */
};
static const mos6526_interface cia_1_intf =
diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c
index d04fb950d2c..a75c094ced9 100644
--- a/src/mame/drivers/centiped.c
+++ b/src/mame/drivers/centiped.c
@@ -635,9 +635,9 @@ WRITE8_MEMBER(centiped_state::led_w)
}
-static READ8_DEVICE_HANDLER( caterplr_rand_r )
+READ8_MEMBER(centiped_state::caterplr_rand_r)
{
- return device->machine().rand() % 0xff;
+ return machine().rand() % 0xff;
}
@@ -660,15 +660,17 @@ WRITE8_MEMBER(centiped_state::bullsdrt_coin_count_w)
*
*************************************/
-static WRITE8_DEVICE_HANDLER( caterplr_AY8910_w )
+WRITE8_MEMBER(centiped_state::caterplr_AY8910_w)
{
+ device_t *device = machine().device("pokey");
ay8910_address_w(device, 0, offset);
ay8910_data_w(device, 0, data);
}
-static READ8_DEVICE_HANDLER( caterplr_AY8910_r )
+READ8_MEMBER(centiped_state::caterplr_AY8910_r)
{
+ device_t *device = machine().device("pokey");
ay8910_address_w(device, 0, offset);
return ay8910_r(device, 0);
}
@@ -1557,7 +1559,7 @@ static const ay8910_interface centipdb_ay8910_interface =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(caterplr_rand_r)
+ DEVCB_DRIVER_MEMBER(centiped_state,caterplr_rand_r)
};
@@ -1978,10 +1980,10 @@ ROM_END
static DRIVER_INIT( caterplr )
{
+ centiped_state *state = machine.driver_data<centiped_state>();
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- device_t *device = machine.device("pokey");
- space->install_legacy_readwrite_handler(*device, 0x1000, 0x100f, FUNC(caterplr_AY8910_r), FUNC(caterplr_AY8910_w));
- space->install_legacy_read_handler(*device, 0x1780, 0x1780, FUNC(caterplr_rand_r));
+ space->install_readwrite_handler(0x1000, 0x100f, read8_delegate(FUNC(centiped_state::caterplr_AY8910_r),state), write8_delegate(FUNC(centiped_state::caterplr_AY8910_w),state));
+ space->install_read_handler(0x1780, 0x1780, read8_delegate(FUNC(centiped_state::caterplr_rand_r),state));
}
diff --git a/src/mame/drivers/chaknpop.c b/src/mame/drivers/chaknpop.c
index cfccfc7190b..92f8b831fb0 100644
--- a/src/mame/drivers/chaknpop.c
+++ b/src/mame/drivers/chaknpop.c
@@ -118,14 +118,14 @@ Notes:
***************************************************************************/
-static WRITE8_DEVICE_HANDLER ( unknown_port_1_w )
+WRITE8_MEMBER(chaknpop_state::unknown_port_1_w)
{
- //logerror("%s: write to unknow port 1: 0x%02x\n", device->machine().describe_context(), data);
+ //logerror("%s: write to unknow port 1: 0x%02x\n", machine().describe_context(), data);
}
-static WRITE8_DEVICE_HANDLER ( unknown_port_2_w )
+WRITE8_MEMBER(chaknpop_state::unknown_port_2_w)
{
- //logerror("%s: write to unknow port 2: 0x%02x\n", device->machine().describe_context(), data);
+ //logerror("%s: write to unknow port 2: 0x%02x\n", machine().describe_context(), data);
}
WRITE8_MEMBER(chaknpop_state::coinlock_w)
@@ -177,8 +177,8 @@ static const ay8910_interface ay8910_interface_2 =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(unknown_port_1_w), // ??
- DEVCB_HANDLER(unknown_port_2_w) // ??
+ DEVCB_DRIVER_MEMBER(chaknpop_state,unknown_port_1_w), // ??
+ DEVCB_DRIVER_MEMBER(chaknpop_state,unknown_port_2_w) // ??
};
diff --git a/src/mame/drivers/champbas.c b/src/mame/drivers/champbas.c
index e047f447529..0a8fb0c96cd 100644
--- a/src/mame/drivers/champbas.c
+++ b/src/mame/drivers/champbas.c
@@ -142,11 +142,23 @@ static TIMER_CALLBACK( exctsccr_fm_callback )
}
// Champion Baseball has only one DAC
-static WRITE8_DEVICE_HANDLER( champbas_dac_w )
+WRITE8_MEMBER(champbas_state::champbas_dac_w)
{
+ device_t *device = machine().device("dac");
dac_signed_data_w(device, data << 2);
}
+WRITE8_MEMBER(champbas_state::champbas_dac1_w)
+{
+ device_t *device = machine().device("dac1");
+ dac_signed_data_w(device, data << 2);
+}
+
+WRITE8_MEMBER(champbas_state::champbas_dac2_w)
+{
+ device_t *device = machine().device("dac2");
+ dac_signed_data_w(device, data << 2);
+}
/*************************************
*
@@ -329,7 +341,7 @@ static ADDRESS_MAP_START( champbas_sub_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0x6000, 0x7fff) AM_READ(soundlatch_byte_r)
AM_RANGE(0x8000, 0x9fff) AM_WRITENOP // 4-bit return code to main CPU (not used)
AM_RANGE(0xa000, 0xbfff) AM_WRITE(soundlatch_clear_byte_w)
- AM_RANGE(0xc000, 0xdfff) AM_DEVWRITE_LEGACY("dac", champbas_dac_w)
+ AM_RANGE(0xc000, 0xdfff) AM_WRITE(champbas_dac_w)
AM_RANGE(0xe000, 0xe3ff) AM_MIRROR(0x1c00) AM_RAM
ADDRESS_MAP_END
@@ -337,8 +349,8 @@ ADDRESS_MAP_END
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_LEGACY("dac1", champbas_dac_w)
- AM_RANGE(0xc009, 0xc009) AM_DEVWRITE_LEGACY("dac2", champbas_dac_w)
+ AM_RANGE(0xc008, 0xc008) AM_WRITE(champbas_dac1_w)
+ AM_RANGE(0xc009, 0xc009) AM_WRITE(champbas_dac2_w)
AM_RANGE(0xc00c, 0xc00c) AM_WRITE(soundlatch_clear_byte_w)
AM_RANGE(0xc00d, 0xc00d) AM_READ(soundlatch_byte_r)
// AM_RANGE(0xc00f, 0xc00f) AM_WRITENOP /* ??? */
diff --git a/src/mame/drivers/chqflag.c b/src/mame/drivers/chqflag.c
index 84e4f04c4ff..a96093a79b5 100644
--- a/src/mame/drivers/chqflag.c
+++ b/src/mame/drivers/chqflag.c
@@ -24,7 +24,7 @@
#include "chqflag.lh"
-static WRITE8_DEVICE_HANDLER( k007232_extvolume_w );
+
static TIMER_DEVICE_CALLBACK( chqflag_scanline )
{
@@ -184,7 +184,7 @@ static ADDRESS_MAP_START( chqflag_sound_map, AS_PROGRAM, 8, chqflag_state )
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
AM_RANGE(0x9000, 0x9000) AM_WRITE(k007232_bankswitch_w) /* 007232 bankswitch */
AM_RANGE(0xa000, 0xa00d) AM_DEVREADWRITE_LEGACY("k007232_1", k007232_r, k007232_w) /* 007232 (chip 1) */
- AM_RANGE(0xa01c, 0xa01c) AM_DEVWRITE_LEGACY("k007232_2", k007232_extvolume_w) /* extra volume, goes to the 007232 w/ A11 */
+ AM_RANGE(0xa01c, 0xa01c) AM_WRITE(k007232_extvolume_w) /* extra volume, goes to the 007232 w/ A11 */
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232_2", k007232_r, k007232_w) /* 007232 (chip 2) */
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w) /* YM2151 */
AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */
@@ -275,8 +275,9 @@ static void volume_callback0( device_t *device, int v )
k007232_set_volume(device, 1, 0, (v >> 4) * 0x11);
}
-static WRITE8_DEVICE_HANDLER( k007232_extvolume_w )
+WRITE8_MEMBER(chqflag_state::k007232_extvolume_w)
{
+ device_t *device = machine().device("k007232_2");
k007232_set_volume(device, 1, (data & 0x0f) * 0x11/2, (data >> 4) * 0x11/2);
}
diff --git a/src/mame/drivers/cischeat.c b/src/mame/drivers/cischeat.c
index 778184c75bd..58fc0ea0790 100644
--- a/src/mame/drivers/cischeat.c
+++ b/src/mame/drivers/cischeat.c
@@ -701,16 +701,23 @@ ADDRESS_MAP_END
Cisco Heat
**************************************************************************/
-static WRITE16_DEVICE_HANDLER( cischeat_soundbank_w )
+WRITE16_MEMBER(cischeat_state::cischeat_soundbank_1_w)
{
+ device_t *device = machine().device("oki1");
okim6295_device *oki = downcast<okim6295_device *>(device);
if (ACCESSING_BITS_0_7) oki->set_bank_base(0x40000 * (data & 1) );
}
+WRITE16_MEMBER(cischeat_state::cischeat_soundbank_2_w)
+{
+ device_t *device = machine().device("oki2");
+ okim6295_device *oki = downcast<okim6295_device *>(device);
+ if (ACCESSING_BITS_0_7) oki->set_bank_base(0x40000 * (data & 1) );
+}
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_LEGACY("oki1", cischeat_soundbank_w) // Sample Banking
- AM_RANGE(0x040004, 0x040005) AM_DEVWRITE_LEGACY("oki2", cischeat_soundbank_w) // Sample Banking
+ AM_RANGE(0x040002, 0x040003) AM_WRITE(cischeat_soundbank_1_w) // Sample Banking
+ AM_RANGE(0x040004, 0x040005) AM_WRITE(cischeat_soundbank_2_w) // Sample Banking
AM_RANGE(0x060002, 0x060003) AM_WRITE(soundlatch2_word_w) // To Main CPU
AM_RANGE(0x060004, 0x060005) AM_READ(soundlatch_word_r) // From Main CPU
AM_RANGE(0x080000, 0x080003) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2151_r, ym2151_w, 0x00ff)
@@ -726,8 +733,8 @@ ADDRESS_MAP_END
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_LEGACY("oki1", cischeat_soundbank_w) // Sample Banking (cischeat: 40002)
- AM_RANGE(0x040008, 0x040009) AM_DEVWRITE_LEGACY("oki2", cischeat_soundbank_w) // Sample Banking (cischeat: 40004)
+ AM_RANGE(0x040004, 0x040005) AM_WRITE(cischeat_soundbank_1_w) // Sample Banking (cischeat: 40002)
+ AM_RANGE(0x040008, 0x040009) AM_WRITE(cischeat_soundbank_2_w) // Sample Banking (cischeat: 40004)
AM_RANGE(0x060000, 0x060001) AM_READWRITE(soundlatch_word_r, soundlatch2_word_w) // From Main CPU (cischeat: 60004)
AM_RANGE(0x080000, 0x080003) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2151_r, ym2151_w, 0x00ff)
AM_RANGE(0x0a0000, 0x0a0003) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff)
@@ -742,8 +749,8 @@ ADDRESS_MAP_END
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_LEGACY("oki1", cischeat_soundbank_w) // Sample Banking
- AM_RANGE(0x040008, 0x040009) AM_DEVWRITE_LEGACY("oki2", cischeat_soundbank_w) // Sample Banking
+ AM_RANGE(0x040004, 0x040005) AM_WRITE(cischeat_soundbank_1_w) // Sample Banking
+ AM_RANGE(0x040008, 0x040009) AM_WRITE(cischeat_soundbank_2_w) // Sample Banking
AM_RANGE(0x04000e, 0x04000f) AM_WRITENOP // ? 0 (f1gpstar: no)
AM_RANGE(0x060004, 0x060005) AM_READWRITE(soundlatch_word_r, soundlatch2_word_w) // From Main CPU (f1gpstar: 60000)
AM_RANGE(0x080000, 0x080003) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2151_r, ym2151_w, 0x00ff)
diff --git a/src/mame/drivers/cninja.c b/src/mame/drivers/cninja.c
index 7b11a5f2c2b..e8558a24191 100644
--- a/src/mame/drivers/cninja.c
+++ b/src/mame/drivers/cninja.c
@@ -721,18 +721,17 @@ static void sound_irq2(device_t *device, int state)
device_set_input_line(driver_state->m_audiocpu, 0, state);
}
-static WRITE8_DEVICE_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(cninja_state::sound_bankswitch_w)
{
- cninja_state *state = device->machine().driver_data<cninja_state>();
/* the second OKIM6295 ROM is bank switched */
- state->m_oki2->set_bank_base((data & 1) * 0x40000);
+ m_oki2->set_bank_base((data & 1) * 0x40000);
}
static const ym2151_interface ym2151_config =
{
DEVCB_LINE(sound_irq),
- DEVCB_HANDLER(sound_bankswitch_w)
+ DEVCB_DRIVER_MEMBER(cninja_state,sound_bankswitch_w)
};
static const ym2151_interface ym2151_interface2 =
diff --git a/src/mame/drivers/combatsc.c b/src/mame/drivers/combatsc.c
index ff4199ae0a0..399bcc97f4b 100644
--- a/src/mame/drivers/combatsc.c
+++ b/src/mame/drivers/combatsc.c
@@ -325,42 +325,45 @@ WRITE8_MEMBER(combatsc_state::combatsc_sh_irqtrigger_w)
device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
}
-static READ8_DEVICE_HANDLER( combatsc_busy_r )
+READ8_MEMBER(combatsc_state::combatsc_busy_r)
{
+ device_t *device = machine().device("upd");
return upd7759_busy_r(device) ? 1 : 0;
}
-static WRITE8_DEVICE_HANDLER( combatsc_play_w )
+WRITE8_MEMBER(combatsc_state::combatsc_play_w)
{
+ device_t *device = machine().device("upd");
upd7759_start_w(device, data & 2);
}
-static WRITE8_DEVICE_HANDLER( combatsc_voice_reset_w )
+WRITE8_MEMBER(combatsc_state::combatsc_voice_reset_w)
{
+ device_t *device = machine().device("upd");
upd7759_reset_w(device,data & 1);
}
-static WRITE8_DEVICE_HANDLER( combatsc_portA_w )
+WRITE8_MEMBER(combatsc_state::combatsc_portA_w)
{
/* unknown. always write 0 */
}
-static READ8_DEVICE_HANDLER ( combatsc_ym2203_r )
+READ8_MEMBER(combatsc_state::combatsc_ym2203_r)
{
- combatsc_state *state = device->machine().driver_data<combatsc_state>();
+ device_t *device = machine().device("ymsnd");
int status = ym2203_r(device,offset);
- if (cpu_get_pc(state->m_audiocpu) == 0x334)
+ if (cpu_get_pc(m_audiocpu) == 0x334)
{
- if (state->m_boost)
+ if (m_boost)
{
- state->m_boost = 0;
- state->m_interleave_timer->adjust(attotime::zero, 0, state->m_audiocpu->cycles_to_attotime(80));
+ m_boost = 0;
+ m_interleave_timer->adjust(attotime::zero, 0, m_audiocpu->cycles_to_attotime(80));
}
else if (status & 2)
{
- state->m_boost = 1;
- state->m_interleave_timer->adjust(attotime::zero);
+ m_boost = 1;
+ m_interleave_timer->adjust(attotime::zero);
}
}
@@ -414,17 +417,18 @@ 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 */
- AM_RANGE(0x9000, 0x9000) AM_DEVWRITE_LEGACY("upd", combatsc_play_w) /* upd7759 play voice */
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(combatsc_play_w) /* upd7759 play voice */
AM_RANGE(0xa000, 0xa000) AM_DEVWRITE_LEGACY("upd", upd7759_port_w) /* upd7759 voice select */
- AM_RANGE(0xb000, 0xb000) AM_DEVREAD_LEGACY("upd", combatsc_busy_r) /* upd7759 busy? */
- AM_RANGE(0xc000, 0xc000) AM_DEVWRITE_LEGACY("upd", combatsc_voice_reset_w) /* upd7759 reset? */
+ AM_RANGE(0xb000, 0xb000) AM_READ(combatsc_busy_r) /* upd7759 busy? */
+ AM_RANGE(0xc000, 0xc000) AM_WRITE(combatsc_voice_reset_w) /* upd7759 reset? */
AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r? */
- AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE_LEGACY("ymsnd", combatsc_ym2203_r, ym2203_w) /* YM 2203 intercepted */
+ AM_RANGE(0xe000, 0xe001) AM_READ(combatsc_ym2203_r) AM_DEVWRITE_LEGACY("ymsnd", ym2203_w) /* YM 2203 intercepted */
ADDRESS_MAP_END
-static WRITE8_DEVICE_HANDLER( combatscb_dac_w )
+WRITE8_MEMBER(combatsc_state::combatscb_dac_w)
{
+ device_t *device = machine().device("msm5205");
if(data & 0xe0)
printf("%02x\n",data);
@@ -439,7 +443,7 @@ static ADDRESS_MAP_START( combatscb_sound_map, AS_PROGRAM, 8, combatsc_state )
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w) /* YM 2203 */
AM_RANGE(0x9008, 0x9009) AM_DEVREAD_LEGACY("ymsnd", ym2203_r) /* ??? */
- AM_RANGE(0x9800, 0x9800) AM_DEVWRITE_LEGACY("msm5205",combatscb_dac_w)
+ AM_RANGE(0x9800, 0x9800) AM_WRITE(combatscb_dac_w)
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r? */
ADDRESS_MAP_END
@@ -668,7 +672,7 @@ static const ym2203_interface ym2203_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(combatsc_portA_w),
+ DEVCB_DRIVER_MEMBER(combatsc_state,combatsc_portA_w),
DEVCB_NULL
},
NULL
diff --git a/src/mame/drivers/compgolf.c b/src/mame/drivers/compgolf.c
index 2da4c355ac9..a87beb5e9ee 100644
--- a/src/mame/drivers/compgolf.c
+++ b/src/mame/drivers/compgolf.c
@@ -22,16 +22,14 @@
*
*************************************/
-static WRITE8_DEVICE_HANDLER( compgolf_scrollx_lo_w )
+WRITE8_MEMBER(compgolf_state::compgolf_scrollx_lo_w)
{
- compgolf_state *state = device->machine().driver_data<compgolf_state>();
- state->m_scrollx_lo = data;
+ m_scrollx_lo = data;
}
-static WRITE8_DEVICE_HANDLER( compgolf_scrolly_lo_w )
+WRITE8_MEMBER(compgolf_state::compgolf_scrolly_lo_w)
{
- compgolf_state *state = device->machine().driver_data<compgolf_state>();
- state->m_scrolly_lo = data;
+ m_scrolly_lo = data;
}
WRITE8_MEMBER(compgolf_state::compgolf_ctrl_w)
@@ -212,8 +210,8 @@ static const ym2203_interface ym2203_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(compgolf_scrollx_lo_w),
- DEVCB_HANDLER(compgolf_scrolly_lo_w),
+ DEVCB_DRIVER_MEMBER(compgolf_state,compgolf_scrollx_lo_w),
+ DEVCB_DRIVER_MEMBER(compgolf_state,compgolf_scrolly_lo_w),
},
sound_irq
};
diff --git a/src/mame/drivers/coolpool.c b/src/mame/drivers/coolpool.c
index 2a6630580c8..a55efb9731f 100644
--- a/src/mame/drivers/coolpool.c
+++ b/src/mame/drivers/coolpool.c
@@ -556,8 +556,9 @@ WRITE16_MEMBER(coolpool_state::dsp_romaddr_w)
}
-static WRITE16_DEVICE_HANDLER( dsp_dac_w )
+WRITE16_MEMBER(coolpool_state::dsp_dac_w)
{
+ device_t *device = machine().device("dac");
dac_signed_data_16_w(device, (INT16)(data << 4) + 0x8000);
}
@@ -688,7 +689,7 @@ ADDRESS_MAP_END
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_LEGACY("dac", dsp_dac_w)
+ AM_RANGE(0x03, 0x03) AM_WRITE(dsp_dac_w)
AM_RANGE(0x04, 0x04) AM_READ(dsp_rom_r)
AM_RANGE(0x05, 0x05) AM_READ_PORT("IN0")
AM_RANGE(0x06, 0x06) AM_READ(amerdart_trackball_r)
@@ -706,7 +707,7 @@ ADDRESS_MAP_END
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_LEGACY("dac", dsp_dac_w)
+ AM_RANGE(0x03, 0x03) AM_WRITE(dsp_dac_w)
AM_RANGE(0x04, 0x04) AM_READ(dsp_rom_r)
AM_RANGE(0x05, 0x05) AM_READ_PORT("IN0")
AM_RANGE(0x07, 0x07) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c
index 595f2bb1c2c..e785e0c1b17 100644
--- a/src/mame/drivers/cps1.c
+++ b/src/mame/drivers/cps1.c
@@ -284,8 +284,9 @@ WRITE8_MEMBER(cps_state::cps1_snd_bankswitch_w)
membank("bank1")->set_entry(data & 0x01);
}
-static WRITE8_DEVICE_HANDLER( cps1_oki_pin7_w )
+WRITE8_MEMBER(cps_state::cps1_oki_pin7_w)
{
+ device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_pin7(data & 1);
}
@@ -581,7 +582,7 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, cps_state )
AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE_LEGACY("2151", ym2151_r, ym2151_w)
AM_RANGE(0xf002, 0xf002) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xf004, 0xf004) AM_WRITE(cps1_snd_bankswitch_w)
- AM_RANGE(0xf006, 0xf006) AM_DEVWRITE_LEGACY("oki", cps1_oki_pin7_w) /* controls pin 7 of OKI chip */
+ AM_RANGE(0xf006, 0xf006) AM_WRITE(cps1_oki_pin7_w) /* controls pin 7 of OKI chip */
AM_RANGE(0xf008, 0xf008) AM_READ(soundlatch_byte_r) /* Sound command */
AM_RANGE(0xf00a, 0xf00a) AM_READ(soundlatch2_byte_r) /* Sound timer fade */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/crgolf.c b/src/mame/drivers/crgolf.c
index 2eded4e109d..f1183de8b0b 100644
--- a/src/mame/drivers/crgolf.c
+++ b/src/mame/drivers/crgolf.c
@@ -212,9 +212,9 @@ static void vck_callback( device_t *device )
}
-static WRITE8_DEVICE_HANDLER( crgolfhi_sample_w )
+WRITE8_MEMBER(crgolf_state::crgolfhi_sample_w)
{
- crgolf_state *state = device->machine().driver_data<crgolf_state>();
+ device_t *device = machine().device("msm");
switch (offset)
{
@@ -225,12 +225,12 @@ static WRITE8_DEVICE_HANDLER( crgolfhi_sample_w )
/* offset 1 is the length/256 nibbles */
case 1:
- state->m_sample_count = data;
+ m_sample_count = data;
break;
/* offset 2 is the offset/256 nibbles */
case 2:
- state->m_sample_offset = data << 8;
+ m_sample_offset = data << 8;
break;
/* offset 3 turns on playback */
@@ -595,8 +595,8 @@ ROM_END
static DRIVER_INIT( crgolfhi )
{
- device_t *msm = machine.device("msm");
- machine.device("audiocpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(*msm, 0xa000, 0xa003, FUNC(crgolfhi_sample_w));
+ crgolf_state *state = machine.driver_data<crgolf_state>();
+ machine.device("audiocpu")->memory().space(AS_PROGRAM)->install_write_handler(0xa000, 0xa003, write8_delegate(FUNC(crgolf_state::crgolfhi_sample_w),state));
}
diff --git a/src/mame/drivers/crimfght.c b/src/mame/drivers/crimfght.c
index 40b5e369871..b635abaa319 100644
--- a/src/mame/drivers/crimfght.c
+++ b/src/mame/drivers/crimfght.c
@@ -43,16 +43,15 @@ WRITE8_MEMBER(crimfght_state::crimfght_sh_irqtrigger_w)
device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
-static WRITE8_DEVICE_HANDLER( crimfght_snd_bankswitch_w )
+WRITE8_MEMBER(crimfght_state::crimfght_snd_bankswitch_w)
{
/* b1: bank for channel A */
/* b0: bank for channel B */
- crimfght_state *state = device->machine().driver_data<crimfght_state>();
int bank_A = BIT(data, 1);
int bank_B = BIT(data, 0);
- k007232_set_bank(state->m_k007232, bank_A, bank_B );
+ k007232_set_bank(m_k007232, bank_A, bank_B );
}
READ8_MEMBER(crimfght_state::k052109_051960_r)
@@ -228,7 +227,7 @@ INPUT_PORTS_END
static const ym2151_interface ym2151_config =
{
DEVCB_NULL,
- DEVCB_HANDLER(crimfght_snd_bankswitch_w)
+ DEVCB_DRIVER_MEMBER(crimfght_state,crimfght_snd_bankswitch_w)
};
static void volume_callback( device_t *device, int v )
diff --git a/src/mame/drivers/cvs.c b/src/mame/drivers/cvs.c
index 5c3a82103fa..22c425bce9c 100644
--- a/src/mame/drivers/cvs.c
+++ b/src/mame/drivers/cvs.c
@@ -287,8 +287,9 @@ READ8_MEMBER(cvs_state::cvs_393hz_clock_r)
}
#endif
-static READ8_DEVICE_HANDLER( tms_clock_r )
+READ8_MEMBER(cvs_state::tms_clock_r)
{
+ device_t *device = machine().device("tms");
return tms5110_romclk_hack_r(device, 0) ? 0x80 : 0;
}
@@ -321,9 +322,9 @@ static void start_393hz_timer(running_machine &machine)
*
*************************************/
-static WRITE8_DEVICE_HANDLER( cvs_4_bit_dac_data_w )
+WRITE8_MEMBER(cvs_state::cvs_4_bit_dac_data_w)
{
- cvs_state *state = device->machine().driver_data<cvs_state>();
+ device_t *device = machine().device("dac2");
UINT8 dac_value;
static int old_data[4] = {0,0,0,0};
@@ -332,22 +333,20 @@ static WRITE8_DEVICE_HANDLER( cvs_4_bit_dac_data_w )
LOG(("4BIT: %02x %02x\n", offset, data));
old_data[offset] = data;
}
- state->m_cvs_4_bit_dac_data[offset] = data >> 7;
+ m_cvs_4_bit_dac_data[offset] = data >> 7;
/* merge into D0-D3 */
- dac_value = (state->m_cvs_4_bit_dac_data[0] << 0) |
- (state->m_cvs_4_bit_dac_data[1] << 1) |
- (state->m_cvs_4_bit_dac_data[2] << 2) |
- (state->m_cvs_4_bit_dac_data[3] << 3);
+ dac_value = (m_cvs_4_bit_dac_data[0] << 0) |
+ (m_cvs_4_bit_dac_data[1] << 1) |
+ (m_cvs_4_bit_dac_data[2] << 2) |
+ (m_cvs_4_bit_dac_data[3] << 3);
/* scale up to a full byte and output */
dac_data_w(device, (dac_value << 4) | dac_value);
}
-static WRITE8_DEVICE_HANDLER( cvs_unknown_w )
+WRITE8_MEMBER(cvs_state::cvs_unknown_w)
{
- cvs_state *state = device->machine().driver_data<cvs_state>();
-
/* offset 2 is used in 8ball
* offset 0 is used in spacefrt
* offset 3 is used in darkwar
@@ -355,11 +354,11 @@ static WRITE8_DEVICE_HANDLER( cvs_unknown_w )
* offset 1 is not used (no trace in disassembly)
*/
- if (data != state->m_dac3_state[offset])
+ if (data != m_dac3_state[offset])
{
if (offset != 2)
popmessage("Unknown: %02x %02x\n", offset, data);
- state->m_dac3_state[offset] = data;
+ m_dac3_state[offset] = data;
}
}
@@ -395,27 +394,28 @@ READ8_MEMBER(cvs_state::cvs_speech_command_r)
}
-static WRITE8_DEVICE_HANDLER( cvs_tms5110_ctl_w )
+WRITE8_MEMBER(cvs_state::cvs_tms5110_ctl_w)
{
- cvs_state *state = device->machine().driver_data<cvs_state>();
+ device_t *device = machine().device("tms");
UINT8 ctl;
/*
* offset 0: CS ?
*/
- state->m_tms5110_ctl_data[offset] = (~data >> 7) & 0x01;
+ m_tms5110_ctl_data[offset] = (~data >> 7) & 0x01;
ctl = 0 | /* CTL1 */
- (state->m_tms5110_ctl_data[1] << 1) | /* CTL2 */
- (state->m_tms5110_ctl_data[2] << 2) | /* CTL4 */
- (state->m_tms5110_ctl_data[1] << 3); /* CTL8 */
+ (m_tms5110_ctl_data[1] << 1) | /* CTL2 */
+ (m_tms5110_ctl_data[2] << 2) | /* CTL4 */
+ (m_tms5110_ctl_data[1] << 3); /* CTL8 */
LOG(("CVS: Speech CTL = %04x %02x %02x\n", ctl, offset, data));
tms5110_ctl_w(device, 0, ctl);
}
-static WRITE8_DEVICE_HANDLER( cvs_tms5110_pdc_w )
+WRITE8_MEMBER(cvs_state::cvs_tms5110_pdc_w)
{
+ device_t *device = machine().device("tms");
UINT8 out = ((~data) >> 7) & 1;
LOG(("CVS: Speech PDC = %02x %02x\n", offset, out));
tms5110_pdc_w(device, out);
@@ -507,8 +507,8 @@ static ADDRESS_MAP_START( cvs_dac_cpu_map, AS_PROGRAM, 8, cvs_state )
AM_RANGE(0x1000, 0x107f) AM_RAM
AM_RANGE(0x1800, 0x1800) AM_READ(soundlatch_byte_r)
AM_RANGE(0x1840, 0x1840) AM_DEVWRITE_LEGACY("dac1", dac_w)
- AM_RANGE(0x1880, 0x1883) AM_DEVWRITE_LEGACY("dac2", cvs_4_bit_dac_data_w) AM_SHARE("4bit_dac")
- AM_RANGE(0x1884, 0x1887) AM_DEVWRITE_LEGACY("dac3", cvs_unknown_w) AM_SHARE("dac3_state") /* ???? not connected to anything */
+ AM_RANGE(0x1880, 0x1883) AM_WRITE(cvs_4_bit_dac_data_w) AM_SHARE("4bit_dac")
+ AM_RANGE(0x1884, 0x1887) AM_WRITE(cvs_unknown_w) AM_SHARE("dac3_state") /* ???? not connected to anything */
ADDRESS_MAP_END
@@ -531,15 +531,15 @@ static ADDRESS_MAP_START( cvs_speech_cpu_map, AS_PROGRAM, 8, cvs_state )
AM_RANGE(0x1d00, 0x1d00) AM_WRITE(cvs_speech_rom_address_lo_w)
AM_RANGE(0x1d40, 0x1d40) AM_WRITE(cvs_speech_rom_address_hi_w)
AM_RANGE(0x1d80, 0x1d80) AM_READ(cvs_speech_command_r)
- AM_RANGE(0x1ddc, 0x1dde) AM_DEVWRITE_LEGACY("tms", cvs_tms5110_ctl_w) AM_SHARE("tms5110_ctl")
- AM_RANGE(0x1ddf, 0x1ddf) AM_DEVWRITE_LEGACY("tms", cvs_tms5110_pdc_w)
+ AM_RANGE(0x1ddc, 0x1dde) AM_WRITE(cvs_tms5110_ctl_w) AM_SHARE("tms5110_ctl")
+ AM_RANGE(0x1ddf, 0x1ddf) AM_WRITE(cvs_tms5110_pdc_w)
ADDRESS_MAP_END
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_LEGACY("tms", tms_clock_r)
+ AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(tms_clock_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/darius.c b/src/mame/drivers/darius.c
index cffcc293a91..4ca57a80410 100644
--- a/src/mame/drivers/darius.c
+++ b/src/mame/drivers/darius.c
@@ -422,57 +422,53 @@ WRITE8_MEMBER(darius_state::darius_da_pan)
/**** Mixer Control ****/
-static WRITE8_DEVICE_HANDLER( darius_write_portA0 )
+WRITE8_MEMBER(darius_state::darius_write_portA0)
{
- darius_state *state = device->machine().driver_data<darius_state>();
// volume control FM #0 PSG #0 A
- //popmessage(" pan %02x %02x %02x %02x %02x", state->m_pan[0], state->m_pan[1], state->m_pan[2], state->m_pan[3], state->m_pan[4] );
+ //popmessage(" pan %02x %02x %02x %02x %02x", m_pan[0], m_pan[1], m_pan[2], m_pan[3], m_pan[4] );
//popmessage(" A0 %02x A1 %02x B0 %02x B1 %02x", port[0], port[1], port[2], port[3] );
- state->m_vol[0] = state->m_def_vol[(data >> 4) & 0x0f];
- state->m_vol[6] = state->m_def_vol[(data >> 0) & 0x0f];
- update_fm0(device->machine());
- update_psg0(device->machine(), 0);
+ m_vol[0] = m_def_vol[(data >> 4) & 0x0f];
+ m_vol[6] = m_def_vol[(data >> 0) & 0x0f];
+ update_fm0(machine());
+ update_psg0(machine(), 0);
}
-static WRITE8_DEVICE_HANDLER( darius_write_portA1 )
+WRITE8_MEMBER(darius_state::darius_write_portA1)
{
- darius_state *state = device->machine().driver_data<darius_state>();
// volume control FM #1 PSG #1 A
- //popmessage(" pan %02x %02x %02x %02x %02x", state->m_pan[0], state->m_pan[1], state->m_pan[2], state->m_pan[3], state->m_pan[4] );
+ //popmessage(" pan %02x %02x %02x %02x %02x", m_pan[0], m_pan[1], m_pan[2], m_pan[3], m_pan[4] );
- state->m_vol[3] = state->m_def_vol[(data >> 4) & 0x0f];
- state->m_vol[7] = state->m_def_vol[(data >> 0) & 0x0f];
- update_fm1(device->machine());
- update_psg1(device->machine(), 0);
+ m_vol[3] = m_def_vol[(data >> 4) & 0x0f];
+ m_vol[7] = m_def_vol[(data >> 0) & 0x0f];
+ update_fm1(machine());
+ update_psg1(machine(), 0);
}
-static WRITE8_DEVICE_HANDLER( darius_write_portB0 )
+WRITE8_MEMBER(darius_state::darius_write_portB0)
{
- darius_state *state = device->machine().driver_data<darius_state>();
// volume control PSG #0 B/C
- //popmessage(" pan %02x %02x %02x %02x %02x", state->m_pan[0], state->m_pan[1], state->m_pan[2], state->m_pan[3], state->m_pan[4] );
+ //popmessage(" pan %02x %02x %02x %02x %02x", m_pan[0], m_pan[1], m_pan[2], m_pan[3], m_pan[4] );
- state->m_vol[1] = state->m_def_vol[(data >> 4) & 0x0f];
- state->m_vol[2] = state->m_def_vol[(data >> 0) & 0x0f];
- update_psg0(device->machine(), 1);
- update_psg0(device->machine(), 2);
+ m_vol[1] = m_def_vol[(data >> 4) & 0x0f];
+ m_vol[2] = m_def_vol[(data >> 0) & 0x0f];
+ update_psg0(machine(), 1);
+ update_psg0(machine(), 2);
}
-static WRITE8_DEVICE_HANDLER( darius_write_portB1 )
+WRITE8_MEMBER(darius_state::darius_write_portB1)
{
- darius_state *state = device->machine().driver_data<darius_state>();
// volume control PSG #1 B/C
- //popmessage(" pan %02x %02x %02x %02x %02x", state->m_pan[0], state->m_pan[1], state->m_pan[2], state->m_pan[3], state->m_pan[4] );
+ //popmessage(" pan %02x %02x %02x %02x %02x", m_pan[0], m_pan[1], m_pan[2], m_pan[3], m_pan[4] );
- state->m_vol[4] = state->m_def_vol[(data >> 4) & 0x0f];
- state->m_vol[5] = state->m_def_vol[(data >> 0) & 0x0f];
- update_psg1(device->machine(), 1);
- update_psg1(device->machine(), 2);
+ m_vol[4] = m_def_vol[(data >> 4) & 0x0f];
+ m_vol[5] = m_def_vol[(data >> 0) & 0x0f];
+ update_psg1(machine(), 1);
+ update_psg1(machine(), 2);
}
@@ -547,8 +543,9 @@ WRITE8_MEMBER(darius_state::adpcm_nmi_enable)
/* logerror("write port 1: NMI ENABLE PC=%4x\n", cpu_get_pc(&space.device()) ); */
}
-static WRITE8_DEVICE_HANDLER( adpcm_data_w )
+WRITE8_MEMBER(darius_state::adpcm_data_w)
{
+ device_t *device = machine().device("msm");
msm5205_data_w(device, data);
msm5205_reset_w(device, !(data & 0x20)); /* my best guess, but it could be output enable as well */
}
@@ -557,7 +554,7 @@ 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)
- AM_RANGE(0x02, 0x02) AM_READ(readport2) AM_DEVWRITE_LEGACY("msm", adpcm_data_w) /* readport2 ??? */
+ AM_RANGE(0x02, 0x02) AM_READ(readport2) AM_WRITE(adpcm_data_w) /* readport2 ??? */
AM_RANGE(0x03, 0x03) AM_READ(readport3) /* ??? */
ADDRESS_MAP_END
@@ -798,8 +795,8 @@ static const ym2203_interface ym2203_interface_1 =
AY8910_DEFAULT_LOADS,
DEVCB_NULL, /* portA read */
DEVCB_NULL,
- DEVCB_HANDLER(darius_write_portA0), /* portA write */
- DEVCB_HANDLER(darius_write_portB0), /* portB write */
+ DEVCB_DRIVER_MEMBER(darius_state,darius_write_portA0), /* portA write */
+ DEVCB_DRIVER_MEMBER(darius_state,darius_write_portB0), /* portB write */
},
irqhandler
};
@@ -811,8 +808,8 @@ static const ym2203_interface ym2203_interface_2 =
AY8910_DEFAULT_LOADS,
DEVCB_NULL, /* portA read */
DEVCB_NULL,
- DEVCB_HANDLER(darius_write_portA1), /* portA write */
- DEVCB_HANDLER(darius_write_portB1) /* portB write */
+ DEVCB_DRIVER_MEMBER(darius_state,darius_write_portA1), /* portA write */
+ DEVCB_DRIVER_MEMBER(darius_state,darius_write_portB1) /* portB write */
},
};
diff --git a/src/mame/drivers/dassault.c b/src/mame/drivers/dassault.c
index 2702d286e72..4c2cbaf21d1 100644
--- a/src/mame/drivers/dassault.c
+++ b/src/mame/drivers/dassault.c
@@ -508,18 +508,17 @@ static void sound_irq(device_t *device, int state)
device_set_input_line(driver_state->m_audiocpu, 1, state);
}
-static WRITE8_DEVICE_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(dassault_state::sound_bankswitch_w)
{
- dassault_state *state = device->machine().driver_data<dassault_state>();
/* the second OKIM6295 ROM is bank switched */
- state->m_oki2->set_bank_base((data & 1) * 0x40000);
+ m_oki2->set_bank_base((data & 1) * 0x40000);
}
static const ym2151_interface ym2151_config =
{
DEVCB_LINE(sound_irq),
- DEVCB_HANDLER(sound_bankswitch_w)
+ DEVCB_DRIVER_MEMBER(dassault_state,sound_bankswitch_w)
};
/**********************************************************************************/
diff --git a/src/mame/drivers/dbz.c b/src/mame/drivers/dbz.c
index 8f3565aa868..3c596f26b82 100644
--- a/src/mame/drivers/dbz.c
+++ b/src/mame/drivers/dbz.c
@@ -324,9 +324,9 @@ static const k053936_interface dbz_k053936_intf =
1, -46, -16
};
-static WRITE_LINE_DEVICE_HANDLER( dbz_irq2_ack_w )
+WRITE_LINE_MEMBER(dbz_state::dbz_irq2_ack_w)
{
- cputag_set_input_line(device->machine(), "maincpu", M68K_IRQ_2, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", M68K_IRQ_2, CLEAR_LINE);
}
@@ -335,7 +335,7 @@ static const k053252_interface dbz_k053252_intf =
"screen",
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_LINE(dbz_irq2_ack_w),
+ DEVCB_DRIVER_LINE_MEMBER(dbz_state,dbz_irq2_ack_w),
DEVCB_NULL,
0, 0
};
diff --git a/src/mame/drivers/ddragon3.c b/src/mame/drivers/ddragon3.c
index 60d7c77a91b..3a7c4111266 100644
--- a/src/mame/drivers/ddragon3.c
+++ b/src/mame/drivers/ddragon3.c
@@ -154,8 +154,9 @@ ROMs (All ROMs are 27C010 EPROM. - means not populated)
*
*************************************/
-static WRITE8_DEVICE_HANDLER( oki_bankswitch_w )
+WRITE8_MEMBER(ddragon3_state::oki_bankswitch_w)
{
+ device_t *device = machine().device("oki");
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base((data & 1) * 0x40000);
}
@@ -258,7 +259,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, ddragon3_state )
AM_RANGE(0xc800, 0xc801) AM_DEVREADWRITE_LEGACY("ym2151", ym2151_r, ym2151_w)
AM_RANGE(0xd800, 0xd800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_byte_r)
- AM_RANGE(0xe800, 0xe800) AM_DEVWRITE_LEGACY("oki", oki_bankswitch_w)
+ AM_RANGE(0xe800, 0xe800) AM_WRITE(oki_bankswitch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( ctribe_sound_map, AS_PROGRAM, 8, ddragon3_state )
diff --git a/src/mame/drivers/ddribble.c b/src/mame/drivers/ddribble.c
index 6f692d74b61..ca4dddc3aaf 100644
--- a/src/mame/drivers/ddribble.c
+++ b/src/mame/drivers/ddribble.c
@@ -69,9 +69,10 @@ WRITE8_MEMBER(ddribble_state::ddribble_coin_counter_w)
coin_counter_w(machine(), 1,(data >> 1) & 0x01);
}
-static READ8_DEVICE_HANDLER( ddribble_vlm5030_busy_r )
+READ8_MEMBER(ddribble_state::ddribble_vlm5030_busy_r)
{
- return device->machine().rand(); /* patch */
+// device_t *device = machine().device("vlm");
+ return machine().rand(); /* patch */
/* FIXME: remove ? */
#if 0
if (vlm5030_bsy(device)) return 1;
@@ -79,10 +80,10 @@ static READ8_DEVICE_HANDLER( ddribble_vlm5030_busy_r )
#endif
}
-static WRITE8_DEVICE_HANDLER( ddribble_vlm5030_ctrl_w )
+WRITE8_MEMBER(ddribble_state::ddribble_vlm5030_ctrl_w)
{
- ddribble_state *state = device->machine().driver_data<ddribble_state>();
- UINT8 *SPEECH_ROM = state->memregion("vlm")->base();
+ device_t *device = machine().device("vlm");
+ UINT8 *SPEECH_ROM = memregion("vlm")->base();
/* b7 : vlm data bus OE */
@@ -99,13 +100,13 @@ static WRITE8_DEVICE_HANDLER( ddribble_vlm5030_ctrl_w )
vlm5030_set_rom(device, &SPEECH_ROM[data & 0x08 ? 0x10000 : 0]);
/* b2 : SSG-C rc filter enable */
- filter_rc_set_RC(state->m_filter3, FLT_RC_LOWPASS, 1000, 2200, 1000, data & 0x04 ? CAP_N(150) : 0); /* YM2203-SSG-C */
+ filter_rc_set_RC(m_filter3, FLT_RC_LOWPASS, 1000, 2200, 1000, data & 0x04 ? CAP_N(150) : 0); /* YM2203-SSG-C */
/* b1 : SSG-B rc filter enable */
- filter_rc_set_RC(state->m_filter2, FLT_RC_LOWPASS, 1000, 2200, 1000, data & 0x02 ? CAP_N(150) : 0); /* YM2203-SSG-B */
+ filter_rc_set_RC(m_filter2, FLT_RC_LOWPASS, 1000, 2200, 1000, data & 0x02 ? CAP_N(150) : 0); /* YM2203-SSG-B */
/* b0 : SSG-A rc filter enable */
- filter_rc_set_RC(state->m_filter1, FLT_RC_LOWPASS, 1000, 2200, 1000, data & 0x01 ? CAP_N(150) : 0); /* YM2203-SSG-A */
+ filter_rc_set_RC(m_filter1, FLT_RC_LOWPASS, 1000, 2200, 1000, data & 0x01 ? CAP_N(150) : 0); /* YM2203-SSG-A */
}
@@ -230,8 +231,8 @@ static const ym2203_interface ym2203_config =
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
- DEVCB_DEVICE_HANDLER("vlm", ddribble_vlm5030_busy_r),
- DEVCB_DEVICE_HANDLER("vlm", ddribble_vlm5030_ctrl_w),
+ DEVCB_DRIVER_MEMBER(ddribble_state,ddribble_vlm5030_busy_r),
+ DEVCB_DRIVER_MEMBER(ddribble_state,ddribble_vlm5030_ctrl_w),
DEVCB_NULL
},
NULL
diff --git a/src/mame/drivers/dec8.c b/src/mame/drivers/dec8.c
index 452e15b6fae..4f400f0cf0a 100644
--- a/src/mame/drivers/dec8.c
+++ b/src/mame/drivers/dec8.c
@@ -493,8 +493,9 @@ static void csilver_adpcm_int( device_t *device )
state->m_msm5205next <<= 4;
}
-static READ8_DEVICE_HANDLER( csilver_adpcm_reset_r )
+READ8_MEMBER(dec8_state::csilver_adpcm_reset_r)
{
+ device_t *device = machine().device("msm");
msm5205_reset_w(device, 0);
return 0;
}
@@ -903,7 +904,7 @@ static ADDRESS_MAP_START( csilver_s_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x1800, 0x1800) AM_WRITE(csilver_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
AM_RANGE(0x2000, 0x2000) AM_WRITE(csilver_sound_bank_w)
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_byte_r)
- AM_RANGE(0x3400, 0x3400) AM_DEVREAD_LEGACY("msm", csilver_adpcm_reset_r) /* ? not sure */
+ AM_RANGE(0x3400, 0x3400) AM_READ(csilver_adpcm_reset_r) /* ? not sure */
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank3")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c
index bafd9426a09..750edfc9fac 100644
--- a/src/mame/drivers/deco32.c
+++ b/src/mame/drivers/deco32.c
@@ -455,14 +455,16 @@ WRITE32_MEMBER(dragngun_state::dragngun_lightgun_w)
m_dragngun_lightgun_port=offset;
}
-static READ32_DEVICE_HANDLER( dragngun_eeprom_r )
+READ32_MEMBER(deco32_state::dragngun_eeprom_r)
{
+ device_t *device = machine().device("eeprom");
eeprom_device *eeprom = downcast<eeprom_device *>(device);
return 0xfffffffe | eeprom->read_bit();
}
-static WRITE32_DEVICE_HANDLER( dragngun_eeprom_w )
+WRITE32_MEMBER(deco32_state::dragngun_eeprom_w)
{
+ device_t *device = machine().device("eeprom");
if (ACCESSING_BITS_0_7) {
eeprom_device *eeprom = downcast<eeprom_device *>(device);
eeprom->set_clock_line((data & 0x2) ? ASSERT_LINE : CLEAR_LINE);
@@ -470,7 +472,7 @@ static WRITE32_DEVICE_HANDLER( dragngun_eeprom_w )
eeprom->set_cs_line((data & 0x4) ? CLEAR_LINE : ASSERT_LINE);
return;
}
- logerror("%s:Write control 1 %08x %08x\n",device->machine().describe_context(),offset,data);
+ logerror("%s:Write control 1 %08x %08x\n",machine().describe_context(),offset,data);
}
/**********************************************************************************/
@@ -857,7 +859,7 @@ static ADDRESS_MAP_START( dragngun_map, AS_PROGRAM, 32, dragngun_state )
AM_RANGE(0x400000, 0x400003) AM_DEVREADWRITE8("oki3", okim6295_device, read, write, 0x000000ff)
AM_RANGE(0x410000, 0x410003) AM_WRITENOP /* Some kind of serial bit-stream - digital volume control? */
- AM_RANGE(0x420000, 0x420003) AM_DEVREADWRITE_LEGACY("eeprom", dragngun_eeprom_r, dragngun_eeprom_w)
+ AM_RANGE(0x420000, 0x420003) AM_READWRITE(dragngun_eeprom_r, dragngun_eeprom_w)
AM_RANGE(0x438000, 0x438003) AM_READ(dragngun_lightgun_r)
AM_RANGE(0x430000, 0x43001f) AM_WRITE(dragngun_lightgun_w)
AM_RANGE(0x440000, 0x440003) AM_READ(dragngun_service_r)
@@ -904,7 +906,7 @@ static ADDRESS_MAP_START( lockload_map, AS_PROGRAM, 32, dragngun_state )
AM_RANGE(0x300000, 0x3fffff) AM_ROM
AM_RANGE(0x400000, 0x400003) AM_DEVREADWRITE8("oki3", okim6295_device, read, write, 0x000000ff)
- AM_RANGE(0x420000, 0x420003) AM_DEVREADWRITE_LEGACY("eeprom", dragngun_eeprom_r, dragngun_eeprom_w)
+ AM_RANGE(0x420000, 0x420003) AM_READWRITE(dragngun_eeprom_r, dragngun_eeprom_w)
// AM_RANGE(0x430000, 0x43001f) AM_WRITE(dragngun_lightgun_w)
// AM_RANGE(0x438000, 0x438003) AM_READ(dragngun_lightgun_r)
AM_RANGE(0x440000, 0x440003) AM_READ(dragngun_service_r)
@@ -1626,10 +1628,10 @@ static void sound_irq_nslasher(device_t *device, int state)
cputag_set_input_line(device->machine(), "audiocpu", 0, (drvstate->m_nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
}
-static WRITE8_DEVICE_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(deco32_state::sound_bankswitch_w)
{
- okim6295_device *oki1 = device->machine().device<okim6295_device>("oki1");
- okim6295_device *oki2 = device->machine().device<okim6295_device>("oki2");
+ okim6295_device *oki1 = machine().device<okim6295_device>("oki1");
+ okim6295_device *oki2 = machine().device<okim6295_device>("oki2");
oki1->set_bank_base(((data >> 0)& 1) * 0x40000);
oki2->set_bank_base(((data >> 1)& 1) * 0x40000);
}
@@ -1637,13 +1639,13 @@ static WRITE8_DEVICE_HANDLER( sound_bankswitch_w )
static const ym2151_interface ym2151_config =
{
DEVCB_LINE(sound_irq),
- DEVCB_HANDLER(sound_bankswitch_w)
+ DEVCB_DRIVER_MEMBER(deco32_state,sound_bankswitch_w)
};
static const ym2151_interface ym2151_interface_nslasher =
{
DEVCB_LINE(sound_irq_nslasher),
- DEVCB_HANDLER(sound_bankswitch_w)
+ DEVCB_DRIVER_MEMBER(deco32_state,sound_bankswitch_w)
};
static const eeprom_interface eeprom_interface_tattass =
diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c
index 8683af4c63d..bd92b5da13b 100644
--- a/src/mame/drivers/deco_mlc.c
+++ b/src/mame/drivers/deco_mlc.c
@@ -127,8 +127,9 @@ READ32_MEMBER(deco_mlc_state::test3_r)
return 0xffffffff;
}
-static WRITE32_DEVICE_HANDLER( avengrs_eprom_w )
+WRITE32_MEMBER(deco_mlc_state::avengrs_eprom_w)
{
+ device_t *device = machine().device("eeprom");
if (ACCESSING_BITS_8_15) {
UINT8 ebyte=(data>>8)&0xff;
// if (ebyte&0x80) {
@@ -142,7 +143,7 @@ static WRITE32_DEVICE_HANDLER( avengrs_eprom_w )
//volume control todo
}
else
- logerror("%s: eprom_w %08x mask %08x\n",device->machine().describe_context(),data,mem_mask);
+ logerror("%s: eprom_w %08x mask %08x\n",machine().describe_context(),data,mem_mask);
}
WRITE32_MEMBER(deco_mlc_state::avengrs_palette_w)
@@ -271,7 +272,7 @@ static ADDRESS_MAP_START( decomlc_map, AS_PROGRAM, 32, deco_mlc_state )
AM_RANGE(0x0400000, 0x0400003) AM_READ_PORT("INPUTS") AM_MIRROR(0xff000000)
AM_RANGE(0x0440000, 0x044001f) AM_READ(test3_r) AM_MIRROR(0xff000000)
AM_RANGE(0x044001c, 0x044001f) AM_WRITENOP AM_MIRROR(0xff000000)
- AM_RANGE(0x0500000, 0x0500003) AM_DEVWRITE_LEGACY("eeprom", avengrs_eprom_w) AM_MIRROR(0xff000000)
+ AM_RANGE(0x0500000, 0x0500003) AM_WRITE(avengrs_eprom_w) AM_MIRROR(0xff000000)
AM_RANGE(0x0600000, 0x0600007) AM_DEVREADWRITE8_LEGACY("ymz", ymz280b_r, ymz280b_w, 0xff000000) AM_MIRROR(0xff000000)
AM_RANGE(0x070f000, 0x070ffff) AM_READ(stadhr96_prot_146_r) AM_MIRROR(0xff000000)
// AM_RANGE(0x070f000, 0x070ffff) AM_READ_LEGACY(stadhr96_prot_146_w) AM_BASE_LEGACY(&deco32_prot_ram)
diff --git a/src/mame/drivers/deniam.c b/src/mame/drivers/deniam.c
index a7291fc9d22..5a3457eccb4 100644
--- a/src/mame/drivers/deniam.c
+++ b/src/mame/drivers/deniam.c
@@ -57,14 +57,16 @@ WRITE16_MEMBER(deniam_state::sound_command_w)
}
}
-static WRITE8_DEVICE_HANDLER( deniam16b_oki_rom_bank_w )
+WRITE8_MEMBER(deniam_state::deniam16b_oki_rom_bank_w)
{
+ device_t *device = machine().device("oki");
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base((data & 0x40) ? 0x40000 : 0x00000);
}
-static WRITE16_DEVICE_HANDLER( deniam16c_oki_rom_bank_w )
+WRITE16_MEMBER(deniam_state::deniam16c_oki_rom_bank_w)
{
+ device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
{
okim6295_device *oki = downcast<okim6295_device *>(device);
@@ -104,7 +106,7 @@ static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, deniam_state )
AM_RANGE(0x01, 0x01) AM_READ(soundlatch_byte_r)
AM_RANGE(0x02, 0x03) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0x05, 0x05) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x07, 0x07) AM_DEVWRITE_LEGACY("oki", deniam16b_oki_rom_bank_w)
+ AM_RANGE(0x07, 0x07) AM_WRITE(deniam16b_oki_rom_bank_w)
ADDRESS_MAP_END
/* identical to 16b, but handles sound directly */
@@ -120,7 +122,7 @@ static ADDRESS_MAP_START( deniam16c_map, AS_PROGRAM, 16, deniam_state )
AM_RANGE(0xc44000, 0xc44001) AM_READ_PORT("SYSTEM")
AM_RANGE(0xc44002, 0xc44003) AM_READ_PORT("P1")
AM_RANGE(0xc44004, 0xc44005) AM_READ_PORT("P2") AM_WRITENOP
- AM_RANGE(0xc44006, 0xc44007) AM_READNOP AM_DEVWRITE_LEGACY("oki", deniam16c_oki_rom_bank_w) /* read unused? */
+ AM_RANGE(0xc44006, 0xc44007) AM_READNOP AM_WRITE(deniam16c_oki_rom_bank_w) /* read unused? */
AM_RANGE(0xc40008, 0xc4000b) AM_DEVWRITE8_LEGACY("ymsnd", ym3812_w, 0xff00)
AM_RANGE(0xc4400a, 0xc4400b) AM_READ_PORT("DSW") /* probably YM3812 input port */
AM_RANGE(0xff0000, 0xffffff) AM_RAM
diff --git a/src/mame/drivers/djmain.c b/src/mame/drivers/djmain.c
index a027f2d9778..70119866466 100644
--- a/src/mame/drivers/djmain.c
+++ b/src/mame/drivers/djmain.c
@@ -276,16 +276,18 @@ WRITE32_MEMBER(djmain_state::turntable_select_w)
#define IDE_STD_OFFSET (0x1f0/2)
#define IDE_ALT_OFFSET (0x3f6/2)
-static READ32_DEVICE_HANDLER( ide_std_r )
+READ32_MEMBER(djmain_state::ide_std_r)
{
+ device_t *device = machine().device("ide");
if (ACCESSING_BITS_0_7)
return ide_controller16_r(device, IDE_STD_OFFSET + offset, 0xff00) >> 8;
else
return ide_controller16_r(device, IDE_STD_OFFSET + offset, 0xffff) << 16;
}
-static WRITE32_DEVICE_HANDLER( ide_std_w )
+WRITE32_MEMBER(djmain_state::ide_std_w)
{
+ device_t *device = machine().device("ide");
if (ACCESSING_BITS_0_7)
ide_controller16_w(device, IDE_STD_OFFSET + offset, data << 8, 0xff00);
else
@@ -293,16 +295,18 @@ static WRITE32_DEVICE_HANDLER( ide_std_w )
}
-static READ32_DEVICE_HANDLER( ide_alt_r )
+READ32_MEMBER(djmain_state::ide_alt_r)
{
+ device_t *device = machine().device("ide");
if (offset == 0)
return ide_controller16_r(device, IDE_ALT_OFFSET, 0x00ff) << 24;
return 0;
}
-static WRITE32_DEVICE_HANDLER( ide_alt_w )
+WRITE32_MEMBER(djmain_state::ide_alt_w)
{
+ device_t *device = machine().device("ide");
if (offset == 0 && ACCESSING_BITS_16_23)
ide_controller16_w(device, IDE_ALT_OFFSET, data >> 24, 0x00ff);
}
@@ -456,11 +460,11 @@ static ADDRESS_MAP_START( memory_map, AS_PROGRAM, 32, djmain_state )
AM_RANGE(0x803800, 0x803fff) AM_READ(obj_rom_r) // OBJECT ROM readthrough (for POST)
AM_RANGE(0xc00000, 0xc01fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_long_r, k056832_ram_long_w) // VIDEO RAM (tilemap) (beatmania)
AM_RANGE(0xc02000, 0xc02047) AM_WRITE(unknownc02000_w) // ??
- AM_RANGE(0xd00000, 0xd0000f) AM_DEVREADWRITE_LEGACY("ide", ide_std_r, ide_std_w) // IDE control regs (hiphopmania)
- AM_RANGE(0xd4000c, 0xd4000f) AM_DEVREADWRITE_LEGACY("ide", ide_alt_r, ide_alt_w) // IDE status control reg (hiphopmania)
+ AM_RANGE(0xd00000, 0xd0000f) AM_READWRITE(ide_std_r, ide_std_w) // IDE control regs (hiphopmania)
+ AM_RANGE(0xd4000c, 0xd4000f) AM_READWRITE(ide_alt_r, ide_alt_w) // IDE status control reg (hiphopmania)
AM_RANGE(0xe00000, 0xe01fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_long_r, k056832_ram_long_w) // VIDEO RAM (tilemap) (hiphopmania)
- AM_RANGE(0xf00000, 0xf0000f) AM_DEVREADWRITE_LEGACY("ide", ide_std_r, ide_std_w) // IDE control regs (beatmania)
- AM_RANGE(0xf4000c, 0xf4000f) AM_DEVREADWRITE_LEGACY("ide", ide_alt_r, ide_alt_w) // IDE status control reg (beatmania)
+ AM_RANGE(0xf00000, 0xf0000f) AM_READWRITE(ide_std_r, ide_std_w) // IDE control regs (beatmania)
+ AM_RANGE(0xf4000c, 0xf4000f) AM_READWRITE(ide_alt_r, ide_alt_w) // IDE status control reg (beatmania)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c
index eb3a3cb1d45..f5d47b4142f 100644
--- a/src/mame/drivers/dkong.c
+++ b/src/mame/drivers/dkong.c
@@ -338,8 +338,8 @@ Donkey Kong Junior Notes
-static READ8_DEVICE_HANDLER( p8257_ctl_r );
-static WRITE8_DEVICE_HANDLER( p8257_ctl_w );
+
+
/*************************************
*
@@ -368,8 +368,8 @@ static I8257_INTERFACE( dk_dma )
DEVCB_NULL,
DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, memory_read_byte),
DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, memory_write_byte),
- { DEVCB_NULL, DEVCB_HANDLER(p8257_ctl_r), DEVCB_NULL, DEVCB_NULL },
- { DEVCB_HANDLER(p8257_ctl_w), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL }
+ { DEVCB_NULL, DEVCB_DRIVER_MEMBER(dkong_state,p8257_ctl_r), DEVCB_NULL, DEVCB_NULL },
+ { DEVCB_DRIVER_MEMBER(dkong_state,p8257_ctl_w), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL }
};
static I8257_INTERFACE( hb_dma )
@@ -379,8 +379,8 @@ static I8257_INTERFACE( hb_dma )
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(dkong_state, hb_dma_read_byte),
DEVCB_DRIVER_MEMBER(dkong_state, hb_dma_write_byte),
- { DEVCB_NULL, DEVCB_HANDLER(p8257_ctl_r), DEVCB_NULL, DEVCB_NULL },
- { DEVCB_HANDLER(p8257_ctl_w), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL }
+ { DEVCB_NULL, DEVCB_DRIVER_MEMBER(dkong_state,p8257_ctl_r), DEVCB_NULL, DEVCB_NULL },
+ { DEVCB_DRIVER_MEMBER(dkong_state,p8257_ctl_w), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL }
};
/*************************************
@@ -543,16 +543,14 @@ WRITE8_MEMBER(dkong_state::hb_dma_write_byte)
space.write_byte(addr, data);
}
-static READ8_DEVICE_HANDLER( p8257_ctl_r )
+READ8_MEMBER(dkong_state::p8257_ctl_r)
{
- dkong_state *state = device->machine().driver_data<dkong_state>();
- return state->m_dma_latch;
+ return m_dma_latch;
}
-static WRITE8_DEVICE_HANDLER( p8257_ctl_w )
+WRITE8_MEMBER(dkong_state::p8257_ctl_w)
{
- dkong_state *state = device->machine().driver_data<dkong_state>();
- state->m_dma_latch = data;
+ m_dma_latch = data;
}
@@ -567,8 +565,9 @@ WRITE8_MEMBER(dkong_state::dkong3_coin_counter_w)
coin_counter_w(machine(), offset, data & 0x01);
}
-static WRITE8_DEVICE_HANDLER( p8257_drq_w )
+WRITE8_MEMBER(dkong_state::p8257_drq_w)
{
+ device_t *device = machine().device("dma8257");
i8257_drq0_w(device, data & 0x01);
i8257_drq1_w(device, data & 0x01);
}
@@ -751,8 +750,9 @@ READ8_MEMBER(dkong_state::strtheat_inputport_1_r)
}
}
-static WRITE8_DEVICE_HANDLER( dkong_z80dma_rdy_w )
+WRITE8_MEMBER(dkong_state::dkong_z80dma_rdy_w)
{
+ device_t *device = machine().device("z80dma");
z80dma_rdy_w(device, data & 0x01);
}
@@ -785,7 +785,7 @@ static ADDRESS_MAP_START( dkong_map, AS_PROGRAM, 8, dkong_state )
AM_RANGE(0x7d82, 0x7d82) AM_WRITE(dkong_flipscreen_w)
AM_RANGE(0x7d83, 0x7d83) AM_WRITE(dkong_spritebank_w) /* 2 PSL Signal */
AM_RANGE(0x7d84, 0x7d84) AM_WRITE(nmi_mask_w)
- AM_RANGE(0x7d85, 0x7d85) AM_DEVWRITE_LEGACY("dma8257", p8257_drq_w) /* P8257 ==> /DRQ0 /DRQ1 */
+ AM_RANGE(0x7d85, 0x7d85) AM_WRITE(p8257_drq_w) /* P8257 ==> /DRQ0 /DRQ1 */
AM_RANGE(0x7d86, 0x7d87) AM_WRITE(dkong_palettebank_w)
ADDRESS_MAP_END
@@ -809,7 +809,7 @@ static ADDRESS_MAP_START( dkongjr_map, AS_PROGRAM, 8, dkong_state )
AM_RANGE(0x7d82, 0x7d82) AM_WRITE(dkong_flipscreen_w)
AM_RANGE(0x7d83, 0x7d83) AM_WRITE(dkong_spritebank_w) /* 2 PSL Signal */
AM_RANGE(0x7d84, 0x7d84) AM_WRITE(nmi_mask_w)
- AM_RANGE(0x7d85, 0x7d85) AM_DEVWRITE_LEGACY("dma8257", p8257_drq_w) /* P8257 ==> /DRQ0 /DRQ1 */
+ AM_RANGE(0x7d85, 0x7d85) AM_WRITE(p8257_drq_w) /* P8257 ==> /DRQ0 /DRQ1 */
AM_RANGE(0x7d86, 0x7d87) AM_WRITE(dkong_palettebank_w)
AM_RANGE(0x7d80, 0x7d87) AM_DEVWRITE_LEGACY("ls259.5h", latch8_bit0_w) /* latch for sound and signals above*/
@@ -833,7 +833,7 @@ static ADDRESS_MAP_START( dkong3_map, AS_PROGRAM, 8, dkong_state )
AM_RANGE(0x7e82, 0x7e82) AM_WRITE(dkong_flipscreen_w)
AM_RANGE(0x7e83, 0x7e83) AM_WRITE(dkong_spritebank_w) /* 2 PSL Signal */
AM_RANGE(0x7e84, 0x7e84) AM_WRITE(nmi_mask_w)
- AM_RANGE(0x7e85, 0x7e85) AM_DEVWRITE_LEGACY("z80dma", dkong_z80dma_rdy_w) /* ==> DMA Chip */
+ AM_RANGE(0x7e85, 0x7e85) AM_WRITE(dkong_z80dma_rdy_w) /* ==> DMA Chip */
AM_RANGE(0x7e86, 0x7e87) AM_WRITE(dkong_palettebank_w)
AM_RANGE(0x8000, 0x9fff) AM_ROM /* DK3 and bootleg DKjr only */
ADDRESS_MAP_END
@@ -863,7 +863,7 @@ static ADDRESS_MAP_START( s2650_map, AS_PROGRAM, 8, dkong_state )
AM_RANGE(0x1582, 0x1582) AM_WRITE(dkong_flipscreen_w)
AM_RANGE(0x1583, 0x1583) AM_WRITE(dkong_spritebank_w) /* 2 PSL Signal */
AM_RANGE(0x1584, 0x1584) AM_NOP /* Possibly still interrupt enable */
- AM_RANGE(0x1585, 0x1585) AM_DEVWRITE_LEGACY("dma8257", p8257_drq_w) /* P8257 ==> /DRQ0 /DRQ1 */
+ AM_RANGE(0x1585, 0x1585) AM_WRITE(p8257_drq_w) /* P8257 ==> /DRQ0 /DRQ1 */
AM_RANGE(0x1586, 0x1587) AM_WRITE(dkong_palettebank_w)
AM_RANGE(0x1600, 0x17ff) AM_RAM /* 0x6400 spriteram location */
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(dkong_videoram_w) AM_SHARE("video_ram") /* 0x7400 */
@@ -1610,9 +1610,9 @@ static const eeprom_interface braze_eeprom_intf =
"*10011xxxxx", /* unlock command */
};
-static READ8_DEVICE_HANDLER( braze_eeprom_r )
+READ8_MEMBER(dkong_state::braze_eeprom_r)
{
- eeprom_device *eeprom = downcast<eeprom_device *>(device);
+ eeprom_device *eeprom = machine().device<eeprom_device>("eeprom");
return eeprom->read_bit();
}
@@ -1622,9 +1622,9 @@ WRITE8_MEMBER(dkong_state::braze_a15_w)
membank("bank2")->set_entry(data & 0x01);
}
-static WRITE8_DEVICE_HANDLER( braze_eeprom_w )
+WRITE8_MEMBER(dkong_state::braze_eeprom_w)
{
- eeprom_device *eeprom = downcast<eeprom_device *>(device);
+ eeprom_device *eeprom = machine().device<eeprom_device>("eeprom");
eeprom->write_bit(data & 0x01);
eeprom->set_cs_line(data & 0x04 ? CLEAR_LINE : ASSERT_LINE);
eeprom->set_clock_line(data & 0x02 ? ASSERT_LINE : CLEAR_LINE);
@@ -3159,7 +3159,6 @@ static DRIVER_INIT( dkongx )
{
UINT8 *decrypted;
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- device_t *eeprom = machine.device("eeprom");
decrypted = auto_alloc_array(machine, UINT8, 0x10000);
@@ -3169,8 +3168,8 @@ static DRIVER_INIT( dkongx )
dkong_state *state = machine.driver_data<dkong_state>();
space->install_write_handler(0xe000, 0xe000, write8_delegate(FUNC(dkong_state::braze_a15_w),state));
- space->install_legacy_read_handler(*eeprom, 0xc800, 0xc800, FUNC(braze_eeprom_r));
- space->install_legacy_write_handler(*eeprom, 0xc800, 0xc800, FUNC(braze_eeprom_w));
+ space->install_read_handler(0xc800, 0xc800, read8_delegate(FUNC(dkong_state::braze_eeprom_r),state));
+ space->install_write_handler(0xc800, 0xc800, write8_delegate(FUNC(dkong_state::braze_eeprom_w),state));
braze_decrypt_rom(machine, decrypted);
diff --git a/src/mame/drivers/docastle.c b/src/mame/drivers/docastle.c
index 5379095633d..9dbfc28f0d4 100644
--- a/src/mame/drivers/docastle.c
+++ b/src/mame/drivers/docastle.c
@@ -181,28 +181,26 @@ static void idsoccer_adpcm_int( device_t *device )
}
}
-static READ8_DEVICE_HANDLER( idsoccer_adpcm_status_r )
+READ8_MEMBER(docastle_state::idsoccer_adpcm_status_r)
{
- docastle_state *state = device->machine().driver_data<docastle_state>();
-
// this is wrong, but the samples work anyway!!
- state->m_adpcm_status ^= 0x80;
- return state->m_adpcm_status;
+ m_adpcm_status ^= 0x80;
+ return m_adpcm_status;
}
-static WRITE8_DEVICE_HANDLER( idsoccer_adpcm_w )
+WRITE8_MEMBER(docastle_state::idsoccer_adpcm_w)
{
- docastle_state *state = device->machine().driver_data<docastle_state>();
+ device_t *device = machine().device("msm");
if (data & 0x80)
{
- state->m_adpcm_idle = 1;
+ m_adpcm_idle = 1;
msm5205_reset_w(device, 1);
}
else
{
- state->m_adpcm_pos = (data & 0x7f) * 0x200;
- state->m_adpcm_idle = 0;
+ m_adpcm_pos = (data & 0x7f) * 0x200;
+ m_adpcm_idle = 0;
msm5205_reset_w(device, 0);
}
}
@@ -290,7 +288,7 @@ static ADDRESS_MAP_START( idsoccer_map, AS_PROGRAM, 8, docastle_state )
AM_RANGE(0xa800, 0xa800) AM_WRITE(watchdog_reset_w)
AM_RANGE(0xb000, 0xb3ff) AM_MIRROR(0x0800) AM_RAM_WRITE(docastle_videoram_w) AM_SHARE("videoram")
AM_RANGE(0xb400, 0xb7ff) AM_MIRROR(0x0800) AM_RAM_WRITE(docastle_colorram_w) AM_SHARE("colorram")
- AM_RANGE(0xc000, 0xc000) AM_DEVREADWRITE_LEGACY("msm", idsoccer_adpcm_status_r, idsoccer_adpcm_w)
+ AM_RANGE(0xc000, 0xc000) AM_READWRITE(idsoccer_adpcm_status_r, idsoccer_adpcm_w)
AM_RANGE(0xe000, 0xe000) AM_WRITE(docastle_nmitrigger_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/dooyong.c b/src/mame/drivers/dooyong.c
index 67fe0f8f31f..ac3cdf12eed 100644
--- a/src/mame/drivers/dooyong.c
+++ b/src/mame/drivers/dooyong.c
@@ -769,7 +769,7 @@ static GFXDECODE_START( popbingo )
GFXDECODE_ENTRY( "gfx2", 0, popbingo_tilelayout, 256, 1 )
GFXDECODE_END
-static READ8_DEVICE_HANDLER( unk_r )
+READ8_MEMBER(dooyong_state::unk_r)
{
return 0;
}
@@ -798,7 +798,7 @@ static const ym2203_interface ym2203_interface_1 =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(unk_r), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
+ DEVCB_DRIVER_MEMBER(dooyong_state,unk_r), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
},
irqhandler_2203_1
};
@@ -808,7 +808,7 @@ static const ym2203_interface ym2203_interface_2 =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(unk_r), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
+ DEVCB_DRIVER_MEMBER(dooyong_state,unk_r), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
},
irqhandler_2203_2
};
diff --git a/src/mame/drivers/dribling.c b/src/mame/drivers/dribling.c
index 48d04b12c83..035cdce7d07 100644
--- a/src/mame/drivers/dribling.c
+++ b/src/mame/drivers/dribling.c
@@ -53,26 +53,24 @@ static INTERRUPT_GEN( dribling_irq_gen )
*
*************************************/
-static READ8_DEVICE_HANDLER( dsr_r )
+READ8_MEMBER(dribling_state::dsr_r)
{
- dribling_state *state = device->machine().driver_data<dribling_state>();
/* return DSR0-7 */
- return (state->m_ds << state->m_sh) | (state->m_dr >> (8 - state->m_sh));
+ return (m_ds << m_sh) | (m_dr >> (8 - m_sh));
}
-static READ8_DEVICE_HANDLER( input_mux0_r )
+READ8_MEMBER(dribling_state::input_mux0_r)
{
- dribling_state *state = device->machine().driver_data<dribling_state>();
/* low value in the given bit selects */
- if (!(state->m_input_mux & 0x01))
- return state->ioport("MUX0")->read();
- else if (!(state->m_input_mux & 0x02))
- return state->ioport("MUX1")->read();
- else if (!(state->m_input_mux & 0x04))
- return state->ioport("MUX2")->read();
+ if (!(m_input_mux & 0x01))
+ return ioport("MUX0")->read();
+ else if (!(m_input_mux & 0x02))
+ return ioport("MUX1")->read();
+ else if (!(m_input_mux & 0x04))
+ return ioport("MUX2")->read();
return 0xff;
}
@@ -84,19 +82,18 @@ static READ8_DEVICE_HANDLER( input_mux0_r )
*
*************************************/
-static WRITE8_DEVICE_HANDLER( misc_w )
+WRITE8_MEMBER(dribling_state::misc_w)
{
- dribling_state *state = device->machine().driver_data<dribling_state>();
/* bit 7 = di */
- state->m_di = (data >> 7) & 1;
- if (!state->m_di)
- device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
+ m_di = (data >> 7) & 1;
+ if (!m_di)
+ device_set_input_line(m_maincpu, 0, CLEAR_LINE);
/* bit 6 = parata */
/* bit 5 = ab. campo */
- state->m_abca = (data >> 5) & 1;
+ m_abca = (data >> 5) & 1;
/* bit 4 = ab. a.b.f. */
/* bit 3 = n/c */
@@ -104,12 +101,12 @@ static WRITE8_DEVICE_HANDLER( misc_w )
/* bit 2 = (9) = PC2 */
/* bit 1 = (10) = PC1 */
/* bit 0 = (32) = PC0 */
- state->m_input_mux = data & 7;
- logerror("%s:misc_w(%02X)\n", device->machine().describe_context(), data);
+ m_input_mux = data & 7;
+ logerror("%s:misc_w(%02X)\n", machine().describe_context(), data);
}
-static WRITE8_DEVICE_HANDLER( sound_w )
+WRITE8_MEMBER(dribling_state::sound_w)
{
/* bit 7 = stop palla */
/* bit 6 = contrasto */
@@ -119,27 +116,26 @@ static WRITE8_DEVICE_HANDLER( sound_w )
/* bit 2 = folla a */
/* bit 1 = folla m */
/* bit 0 = folla b */
- logerror("%s:sound_w(%02X)\n", device->machine().describe_context(), data);
+ logerror("%s:sound_w(%02X)\n", machine().describe_context(), data);
}
-static WRITE8_DEVICE_HANDLER( pb_w )
+WRITE8_MEMBER(dribling_state::pb_w)
{
/* write PB0-7 */
- logerror("%s:pb_w(%02X)\n", device->machine().describe_context(), data);
+ logerror("%s:pb_w(%02X)\n", machine().describe_context(), data);
}
-static WRITE8_DEVICE_HANDLER( shr_w )
+WRITE8_MEMBER(dribling_state::shr_w)
{
- dribling_state *state = device->machine().driver_data<dribling_state>();
/* bit 3 = watchdog */
if (data & 0x08)
- device->machine().watchdog_reset();
+ machine().watchdog_reset();
/* bit 2-0 = SH0-2 */
- state->m_sh = data & 0x07;
+ m_sh = data & 0x07;
}
@@ -185,22 +181,22 @@ WRITE8_MEMBER(dribling_state::iowrite)
static I8255A_INTERFACE( ppi8255_0_intf )
{
- DEVCB_HANDLER(dsr_r), /* Port A read */
+ DEVCB_DRIVER_MEMBER(dribling_state,dsr_r), /* Port A read */
DEVCB_NULL, /* Port A write */
- DEVCB_HANDLER(input_mux0_r), /* Port B read */
+ DEVCB_DRIVER_MEMBER(dribling_state,input_mux0_r), /* Port B read */
DEVCB_NULL, /* Port B write */
DEVCB_NULL, /* Port C read */
- DEVCB_HANDLER(misc_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(dribling_state,misc_w) /* Port C write */
};
static I8255A_INTERFACE( ppi8255_1_intf )
{
DEVCB_NULL, /* Port A read */
- DEVCB_HANDLER(sound_w), /* Port A write */
+ DEVCB_DRIVER_MEMBER(dribling_state,sound_w), /* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(pb_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(dribling_state,pb_w), /* Port B write */
DEVCB_INPUT_PORT("IN0"), /* Port C read */
- DEVCB_HANDLER(shr_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(dribling_state,shr_w) /* Port C write */
};
diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c
index d18608c24d1..cb9565583d3 100644
--- a/src/mame/drivers/dynax.c
+++ b/src/mame/drivers/dynax.c
@@ -431,10 +431,10 @@ WRITE8_MEMBER(dynax_state::adpcm_data_w)
m_msm5205next = data;
}
-static WRITE8_DEVICE_HANDLER( adpcm_reset_w )
+WRITE8_MEMBER(dynax_state::adpcm_reset_w)
{
- dynax_state *state = device->machine().driver_data<dynax_state>();
- state->m_resetkludge = data & 1;
+ device_t *device = machine().device("msm");
+ m_resetkludge = data & 1;
msm5205_reset_w(device, ~data & 1);
}
@@ -534,7 +534,7 @@ static ADDRESS_MAP_START( hanamai_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x6c, 0x6c ) AM_WRITE(dynax_blit_palette01_w) // Layers Palettes (Low Bits)
AM_RANGE( 0x6d, 0x6d ) AM_WRITE(dynax_blit_palette23_w) //
AM_RANGE( 0x6e, 0x6e ) AM_WRITE(dynax_blit_backpen_w) // Background Color
- AM_RANGE( 0x70, 0x70 ) AM_DEVWRITE_LEGACY("msm", adpcm_reset_w) // MSM5205 reset
+ AM_RANGE( 0x70, 0x70 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x71, 0x71 ) AM_WRITE(dynax_flipscreen_w) // Flip Screen
AM_RANGE( 0x72, 0x72 ) AM_WRITE(dynax_coincounter_0_w) // Coin Counters
AM_RANGE( 0x73, 0x73 ) AM_WRITE(dynax_coincounter_1_w) //
@@ -561,7 +561,7 @@ static ADDRESS_MAP_START( hnoridur_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x24, 0x24 ) AM_READ_PORT("DSW1") // DSW2
AM_RANGE( 0x25, 0x25 ) AM_READ_PORT("DSW3") // DSW4
AM_RANGE( 0x26, 0x26 ) AM_READ_PORT("DSW2") // DSW3
- AM_RANGE( 0x30, 0x30 ) AM_DEVWRITE_LEGACY("msm", adpcm_reset_w) // MSM5205 reset
+ AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x32, 0x32 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) //
AM_RANGE( 0x36, 0x36 ) AM_DEVREAD_LEGACY("aysnd", ay8910_r) // AY8910, DSW1
@@ -646,7 +646,7 @@ static ADDRESS_MAP_START( hjingi_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x25, 0x25 ) AM_READ_PORT("DSW3") // DSW3
AM_RANGE( 0x26, 0x26 ) AM_READ_PORT("DSW2") // DSW2
- AM_RANGE( 0x30, 0x30 ) AM_DEVWRITE_LEGACY("msm", adpcm_reset_w) // MSM5205 reset
+ AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x32, 0x32 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) //
@@ -787,7 +787,7 @@ static ADDRESS_MAP_START( yarunara_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x00, 0x01 ) AM_WRITE(yarunara_input_w) // Controls
AM_RANGE( 0x02, 0x03 ) AM_READ(yarunara_input_r) //
AM_RANGE( 0x11, 0x17 ) AM_WRITE(dynax_blitter_rev2_w) // Blitter
- AM_RANGE( 0x20, 0x20 ) AM_DEVWRITE_LEGACY("msm", adpcm_reset_w) // MSM5205 reset
+ AM_RANGE( 0x20, 0x20 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x22, 0x22 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x24, 0x25 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) //
AM_RANGE( 0x28, 0x28 ) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_w) // AY8910
@@ -826,7 +826,7 @@ static ADDRESS_MAP_START( mcnpshnt_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x23, 0x23 ) AM_READ(hanamai_keyboard_0_r) // P1
AM_RANGE( 0x24, 0x24 ) AM_READ_PORT("DSW0") // DSW2
AM_RANGE( 0x26, 0x26 ) AM_READ_PORT("DSW1") // DSW3
- AM_RANGE( 0x30, 0x30 ) AM_DEVWRITE_LEGACY("msm", adpcm_reset_w) // MSM5205 reset
+ AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x32, 0x32 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) //
AM_RANGE( 0x38, 0x38 ) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_w) // AY8910
@@ -871,7 +871,7 @@ static ADDRESS_MAP_START( sprtmtch_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x35, 0x35 ) AM_WRITE(dynax_blit_palette23_w) //
AM_RANGE( 0x36, 0x36 ) AM_WRITE(dynax_blit_backpen_w) // Background Color
AM_RANGE( 0x37, 0x37 ) AM_WRITE(dynax_vblank_ack_w) // VBlank IRQ Ack
-// AM_RANGE( 0x40, 0x40 ) AM_DEVWRITE_LEGACY("msm", adpcm_reset_w) // MSM5205 reset
+// AM_RANGE( 0x40, 0x40 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x41, 0x41 ) AM_WRITE(dynax_flipscreen_w) // Flip Screen
AM_RANGE( 0x42, 0x42 ) AM_WRITE(dynax_coincounter_0_w) // Coin Counters
AM_RANGE( 0x43, 0x43 ) AM_WRITE(dynax_coincounter_1_w) //
@@ -909,7 +909,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( nanajign_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x00, 0x00 ) AM_DEVWRITE_LEGACY("msm", adpcm_reset_w) // MSM5205 reset
+ AM_RANGE( 0x00, 0x00 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x02, 0x02 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x04, 0x05 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) //
AM_RANGE( 0x08, 0x08 ) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_w) // AY8910
@@ -1035,7 +1035,7 @@ static ADDRESS_MAP_START( jantouki_sound_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x21, 0x21 ) AM_DEVREAD_LEGACY("aysnd", ay8910_r) // AY8910
AM_RANGE( 0x22, 0x23 ) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_address_w) //
AM_RANGE( 0x28, 0x29 ) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w) //
- AM_RANGE( 0x30, 0x30 ) AM_DEVWRITE_LEGACY("msm", adpcm_reset_w) // MSM5205 reset
+ AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x40, 0x40 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x50, 0x50 ) AM_READ(jantouki_soundlatch_status_r) // Soundlatch status
AM_RANGE( 0x60, 0x60 ) AM_WRITE(jantouki_soundlatch_ack_w) // Soundlatch status
@@ -1068,7 +1068,7 @@ WRITE8_MEMBER(dynax_state::mjelctrn_blitter_ack_w)
static ADDRESS_MAP_START( mjelctrn_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x00, 0x00 ) AM_DEVWRITE_LEGACY("msm", adpcm_reset_w) // MSM5205 reset
+ AM_RANGE( 0x00, 0x00 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x02, 0x02 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x04, 0x05 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) //
AM_RANGE( 0x08, 0x08 ) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_w) // AY8910
@@ -1115,21 +1115,19 @@ WRITE8_MEMBER(dynax_state::htengoku_select_w)
m_keyb = 0;
}
-static WRITE8_DEVICE_HANDLER( htengoku_dsw_w )
+WRITE8_MEMBER(dynax_state::htengoku_dsw_w)
{
- dynax_state *state = device->machine().driver_data<dynax_state>();
- state->m_dsw_sel = data;
+ m_dsw_sel = data;
}
-static READ8_DEVICE_HANDLER( htengoku_dsw_r )
+READ8_MEMBER(dynax_state::htengoku_dsw_r)
{
- dynax_state *state = device->machine().driver_data<dynax_state>();
- if (!BIT(state->m_dsw_sel, 0)) return state->ioport("DSW0")->read();
- if (!BIT(state->m_dsw_sel, 1)) return state->ioport("DSW1")->read();
- if (!BIT(state->m_dsw_sel, 2)) return state->ioport("DSW2")->read();
- if (!BIT(state->m_dsw_sel, 3)) return state->ioport("DSW3")->read();
- if (!BIT(state->m_dsw_sel, 4)) return state->ioport("DSW4")->read();
- logerror("%s: warning, unknown bits read, dsw_sel = %02x\n", device->machine().describe_context(), state->m_dsw_sel);
+ if (!BIT(m_dsw_sel, 0)) return ioport("DSW0")->read();
+ if (!BIT(m_dsw_sel, 1)) return ioport("DSW1")->read();
+ if (!BIT(m_dsw_sel, 2)) return ioport("DSW2")->read();
+ if (!BIT(m_dsw_sel, 3)) return ioport("DSW3")->read();
+ if (!BIT(m_dsw_sel, 4)) return ioport("DSW4")->read();
+ logerror("%s: warning, unknown bits read, dsw_sel = %02x\n", machine().describe_context(), m_dsw_sel);
return 0xff;
}
@@ -1327,22 +1325,20 @@ READ8_MEMBER(dynax_state::tenkai_ip_r)
}
-static WRITE8_DEVICE_HANDLER( tenkai_dswsel_w )
+WRITE8_MEMBER(dynax_state::tenkai_dswsel_w)
{
- dynax_state *state = device->machine().driver_data<dynax_state>();
- state->m_dsw_sel = data;
+ m_dsw_sel = data;
}
-static READ8_DEVICE_HANDLER( tenkai_dsw_r )
+READ8_MEMBER(dynax_state::tenkai_dsw_r)
{
- dynax_state *state = device->machine().driver_data<dynax_state>();
- if (!BIT(state->m_dsw_sel, 0)) return state->ioport("DSW0")->read();
- if (!BIT(state->m_dsw_sel, 1)) return state->ioport("DSW1")->read();
- if (!BIT(state->m_dsw_sel, 2)) return state->ioport("DSW2")->read();
- if (!BIT(state->m_dsw_sel, 3)) return state->ioport("DSW3")->read();
- if (!BIT(state->m_dsw_sel, 4)) return state->ioport("DSW4")->read();
- logerror("%s: unmapped dsw %02x read\n", device->machine().describe_context(), state->m_dsw_sel);
+ if (!BIT(m_dsw_sel, 0)) return ioport("DSW0")->read();
+ if (!BIT(m_dsw_sel, 1)) return ioport("DSW1")->read();
+ if (!BIT(m_dsw_sel, 2)) return ioport("DSW2")->read();
+ if (!BIT(m_dsw_sel, 3)) return ioport("DSW3")->read();
+ if (!BIT(m_dsw_sel, 4)) return ioport("DSW4")->read();
+ logerror("%s: unmapped dsw %02x read\n", machine().describe_context(), m_dsw_sel);
return 0xff;
}
@@ -4818,8 +4814,8 @@ static const ay8910_interface htengoku_ay8910_interface =
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
// A B
- DEVCB_HANDLER(htengoku_dsw_r), DEVCB_NULL, // R
- DEVCB_NULL, DEVCB_HANDLER(htengoku_dsw_w) // W
+ DEVCB_DRIVER_MEMBER(dynax_state,htengoku_dsw_r), DEVCB_NULL, // R
+ DEVCB_NULL, DEVCB_DRIVER_MEMBER(dynax_state,htengoku_dsw_w) // W
};
static MSM6242_INTERFACE( htengoku_rtc_intf )
@@ -4891,8 +4887,8 @@ static const ay8910_interface tenkai_ay8910_interface =
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
// A // B
- DEVCB_HANDLER(tenkai_dsw_r), DEVCB_NULL, // Read
- DEVCB_NULL, DEVCB_HANDLER(tenkai_dswsel_w) // Write
+ DEVCB_DRIVER_MEMBER(dynax_state,tenkai_dsw_r), DEVCB_NULL, // Read
+ DEVCB_NULL, DEVCB_DRIVER_MEMBER(dynax_state,tenkai_dswsel_w) // Write
};
static MACHINE_START( tenkai )
@@ -4902,16 +4898,14 @@ static MACHINE_START( tenkai )
machine.save().register_postload(save_prepost_delegate(FUNC(tenkai_update_rombank), &machine));
}
-static WRITE_LINE_DEVICE_HANDLER(tenkai_rtc_irq)
+WRITE_LINE_MEMBER(dynax_state::tenkai_rtc_irq)
{
- dynax_state *drvstate = device->machine().driver_data<dynax_state>();
-
- device_set_input_line(drvstate->m_maincpu, INPUT_LINE_IRQ2, HOLD_LINE);
+ device_set_input_line(m_maincpu, INPUT_LINE_IRQ2, HOLD_LINE);
}
static MSM6242_INTERFACE( tenkai_rtc_intf )
{
- DEVCB_LINE(tenkai_rtc_irq)
+ DEVCB_DRIVER_LINE_MEMBER(dynax_state,tenkai_rtc_irq)
};
static MACHINE_CONFIG_START( tenkai, dynax_state )
diff --git a/src/mame/drivers/epos.c b/src/mame/drivers/epos.c
index 6b3b7df0bfe..cf61b098d76 100644
--- a/src/mame/drivers/epos.c
+++ b/src/mame/drivers/epos.c
@@ -101,9 +101,9 @@ ADDRESS_MAP_END
There's a separate ROM check for banked U04 at 30F3.
It looks like dealer/revenger uses ppi8255 to control bankswitching.
*/
-static WRITE8_DEVICE_HANDLER( write_prtc )
+WRITE8_MEMBER(epos_state::write_prtc)
{
- device->machine().root_device().membank("bank2")->set_entry(data & 0x01);
+ machine().root_device().membank("bank2")->set_entry(data & 0x01);
}
static I8255A_INTERFACE( ppi8255_intf )
@@ -113,7 +113,7 @@ static I8255A_INTERFACE( ppi8255_intf )
DEVCB_NULL, /* Port B read */
DEVCB_NULL, /* Port B write */
DEVCB_NULL, /* Port C read */
- DEVCB_HANDLER(write_prtc) /* Port C write */
+ DEVCB_DRIVER_MEMBER(epos_state,write_prtc) /* Port C write */
};
diff --git a/src/mame/drivers/equites.c b/src/mame/drivers/equites.c
index 030d0207fb3..66bb38278f2 100644
--- a/src/mame/drivers/equites.c
+++ b/src/mame/drivers/equites.c
@@ -472,62 +472,62 @@ WRITE8_MEMBER(equites_state::equites_c0f8_w)
}
-static WRITE8_DEVICE_HANDLER( equites_8910porta_w )
+WRITE8_MEMBER(equites_state::equites_8910porta_w)
{
- equites_state *state = device->machine().driver_data<equites_state>();
+ device_t *device = machine().device("samples");
samples_device *samples = downcast<samples_device *>(device);
// bongo 1
samples->set_volume(0, ((data & 0x30) >> 4) * 0.33);
- if (data & ~state->m_ay_port_a & 0x80)
+ if (data & ~m_ay_port_a & 0x80)
samples->start(0, 0);
// bongo 2
samples->set_volume(1, (data & 0x03) * 0.33);
- if (data & ~state->m_ay_port_a & 0x08)
+ if (data & ~m_ay_port_a & 0x08)
samples->start(1, 1);
- state->m_ay_port_a = data;
+ m_ay_port_a = data;
#if POPDRUMKIT
-popmessage("HH %d(%d) CYM %d(%d)", state->m_hihat, BIT(state->m_ay_port_b, 6), state->m_cymbal, state->m_ay_port_b & 3);
+popmessage("HH %d(%d) CYM %d(%d)", m_hihat, BIT(m_ay_port_b, 6), m_cymbal, m_ay_port_b & 3);
#endif
}
-static WRITE8_DEVICE_HANDLER( equites_8910portb_w )
+WRITE8_MEMBER(equites_state::equites_8910portb_w)
{
- equites_state *state = device->machine().driver_data<equites_state>();
+ device_t *device = machine().device("samples");
samples_device *samples = downcast<samples_device *>(device);
#if POPDRUMKIT
-if (data & ~state->m_ay_port_b & 0x08) state->m_cymbal++;
-if (data & ~state->m_ay_port_b & 0x04) state->m_hihat++;
+if (data & ~m_ay_port_b & 0x08) m_cymbal++;
+if (data & ~m_ay_port_b & 0x04) m_hihat++;
#endif
// bongo 3
samples->set_volume(2, ((data & 0x30)>>4) * 0.33);
- if (data & ~state->m_ay_port_b & 0x80)
+ if (data & ~m_ay_port_b & 0x80)
samples->start(2, 2);
// FIXME I'm just enabling the MSM5232 Noise Output for now. Proper emulation
// of the analog circuitry should be done instead.
-// if (data & ~state->m_ay_port_b & 0x08) cymbal hit trigger
-// if (data & ~state->m_ay_port_b & 0x04) hi-hat hit trigger
+// if (data & ~m_ay_port_b & 0x08) cymbal hit trigger
+// if (data & ~m_ay_port_b & 0x04) hi-hat hit trigger
// data & 3 cymbal volume
// data & 0x40 hi-hat enable
- if (data & ~state->m_ay_port_b & 0x08)
- state->m_cymvol = 1.0f;
+ if (data & ~m_ay_port_b & 0x08)
+ m_cymvol = 1.0f;
- if (data & ~state->m_ay_port_b & 0x04)
- state->m_hihatvol = 0.8f;
+ if (data & ~m_ay_port_b & 0x04)
+ m_hihatvol = 0.8f;
if (~data & 0x40)
- state->m_hihatvol = 0.0f;
+ m_hihatvol = 0.0f;
- state->m_ay_port_b = data;
+ m_ay_port_b = data;
#if POPDRUMKIT
-popmessage("HH %d(%d) CYM %d(%d)",state->m_hihat,BIT(state->m_ay_port_b,6),state->m_cymbal,state->m_ay_port_b & 3);
+popmessage("HH %d(%d) CYM %d(%d)",m_hihat,BIT(m_ay_port_b,6),m_cymbal,m_ay_port_b & 3);
#endif
}
@@ -1123,8 +1123,8 @@ static const ay8910_interface equites_8910intf =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_DEVICE_HANDLER("samples", equites_8910porta_w),
- DEVCB_DEVICE_HANDLER("samples", equites_8910portb_w)
+ DEVCB_DRIVER_MEMBER(equites_state,equites_8910porta_w),
+ DEVCB_DRIVER_MEMBER(equites_state,equites_8910portb_w)
};
diff --git a/src/mame/drivers/esripsys.c b/src/mame/drivers/esripsys.c
index 94efb528157..16a10913a4f 100644
--- a/src/mame/drivers/esripsys.c
+++ b/src/mame/drivers/esripsys.c
@@ -41,9 +41,9 @@
*
*************************************/
-static WRITE_LINE_DEVICE_HANDLER( ptm_irq )
+WRITE_LINE_MEMBER(esripsys_state::ptm_irq)
{
- cputag_set_input_line(device->machine(), "sound_cpu", M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE);
+ cputag_set_input_line(machine(), "sound_cpu", M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE);
}
static const ptm6840_interface ptm_intf =
@@ -51,7 +51,7 @@ static const ptm6840_interface ptm_intf =
XTAL_8MHz / 4,
{ 0, 0, 0 },
{ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL },
- DEVCB_LINE(ptm_irq)
+ DEVCB_DRIVER_LINE_MEMBER(esripsys_state,ptm_irq)
};
@@ -558,22 +558,22 @@ WRITE8_MEMBER(esripsys_state::control_w)
/* 10-bit MC3410CL DAC */
-static WRITE8_DEVICE_HANDLER( esripsys_dac_w )
+WRITE8_MEMBER(esripsys_state::esripsys_dac_w)
{
- esripsys_state *state = device->machine().driver_data<esripsys_state>();
+ device_t *device = machine().device("dac");
if (offset == 0)
{
- state->m_dac_msb = data & 3;
+ m_dac_msb = data & 3;
}
else
{
- UINT16 dac_data = (state->m_dac_msb << 8) | data;
+ UINT16 dac_data = (m_dac_msb << 8) | data;
/*
The 8-bit DAC modulates the 10-bit DAC.
Shift down to prevent clipping.
*/
- dac_signed_data_16_w(device, (state->m_dac_vol * dac_data) >> 1);
+ dac_signed_data_16_w(device, (m_dac_vol * dac_data) >> 1);
}
}
@@ -618,7 +618,7 @@ 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)
- AM_RANGE(0x200a, 0x200b) AM_DEVWRITE_LEGACY("dac", esripsys_dac_w)
+ AM_RANGE(0x200a, 0x200b) AM_WRITE(esripsys_dac_w)
AM_RANGE(0x200c, 0x200c) AM_WRITE(volume_dac_w)
AM_RANGE(0x200d, 0x200d) AM_WRITE(control_w)
AM_RANGE(0x200e, 0x200e) AM_READWRITE(s_200e_r, s_200e_w)
diff --git a/src/mame/drivers/exerion.c b/src/mame/drivers/exerion.c
index 1beb52222fe..3cf42be478d 100644
--- a/src/mame/drivers/exerion.c
+++ b/src/mame/drivers/exerion.c
@@ -153,20 +153,18 @@ INPUT_CHANGED_MEMBER(exerion_state::coin_inserted)
/* This is the first of many Exerion "features". No clue if it's */
/* protection or some sort of timer. */
-static READ8_DEVICE_HANDLER( exerion_porta_r )
+READ8_MEMBER(exerion_state::exerion_porta_r)
{
- exerion_state *state = device->machine().driver_data<exerion_state>();
- state->m_porta ^= 0x40;
- return state->m_porta;
+ m_porta ^= 0x40;
+ return m_porta;
}
-static WRITE8_DEVICE_HANDLER( exerion_portb_w )
+WRITE8_MEMBER(exerion_state::exerion_portb_w)
{
- exerion_state *state = device->machine().driver_data<exerion_state>();
/* pull the expected value from the ROM */
- state->m_porta = state->memregion("maincpu")->base()[0x5f76];
- state->m_portb = data;
+ m_porta = memregion("maincpu")->base()[0x5f76];
+ m_portb = data;
logerror("Port B = %02X\n", data);
}
@@ -365,10 +363,10 @@ static const ay8910_interface ay8910_config =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(exerion_porta_r),
+ DEVCB_DRIVER_MEMBER(exerion_state,exerion_porta_r),
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(exerion_portb_w)
+ DEVCB_DRIVER_MEMBER(exerion_state,exerion_portb_w)
};
diff --git a/src/mame/drivers/exprraid.c b/src/mame/drivers/exprraid.c
index 91564d4498b..3c75d3dd012 100644
--- a/src/mame/drivers/exprraid.c
+++ b/src/mame/drivers/exprraid.c
@@ -435,15 +435,14 @@ GFXDECODE_END
/* handler called by the 3812 emulator when the internal timers cause an IRQ */
-static WRITE_LINE_DEVICE_HANDLER( irqhandler )
+WRITE_LINE_MEMBER(exprraid_state::irqhandler)
{
- exprraid_state *driver_state = device->machine().driver_data<exprraid_state>();
- device_set_input_line_and_vector(driver_state->m_slave, 0, state, 0xff);
+ device_set_input_line_and_vector(m_slave, 0, state, 0xff);
}
static const ym3526_interface ym3526_config =
{
- DEVCB_LINE(irqhandler)
+ DEVCB_DRIVER_LINE_MEMBER(exprraid_state,irqhandler)
};
#if 0
diff --git a/src/mame/drivers/exterm.c b/src/mame/drivers/exterm.c
index ddf2c66ac4c..31400e08d7a 100644
--- a/src/mame/drivers/exterm.c
+++ b/src/mame/drivers/exterm.c
@@ -203,11 +203,11 @@ static TIMER_DEVICE_CALLBACK( master_sound_nmi_callback )
}
-static WRITE8_DEVICE_HANDLER( ym2151_data_latch_w )
+WRITE8_MEMBER(exterm_state::ym2151_data_latch_w)
{
- exterm_state *state = device->machine().driver_data<exterm_state>();
+ device_t *device = machine().device("ymsnd");
/* bit 7 of the sound control selects which port */
- ym2151_w(device, state->m_sound_control >> 7, data);
+ ym2151_w(device, m_sound_control >> 7, data);
}
@@ -238,12 +238,12 @@ READ8_MEMBER(exterm_state::sound_slave_latch_r)
}
-static WRITE8_DEVICE_HANDLER( sound_slave_dac_w )
+WRITE8_MEMBER(exterm_state::sound_slave_dac_w)
{
- exterm_state *state = device->machine().driver_data<exterm_state>();
+ device_t *device = machine().device("dac");
/* DAC A is used to modulate DAC B */
- state->m_dac_value[offset & 1] = data;
- dac_data_16_w(device, (state->m_dac_value[0] ^ 0xff) * state->m_dac_value[1]);
+ m_dac_value[offset & 1] = data;
+ dac_data_16_w(device, (m_dac_value[0] ^ 0xff) * m_dac_value[1]);
}
@@ -308,7 +308,7 @@ ADDRESS_MAP_END
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_LEGACY("ymsnd", ym2151_data_latch_w)
+ AM_RANGE(0x4000, 0x5fff) AM_WRITE(ym2151_data_latch_w)
AM_RANGE(0x6000, 0x67ff) AM_WRITE(sound_nmi_rate_w)
AM_RANGE(0x6800, 0x6fff) AM_READ(sound_master_latch_r)
AM_RANGE(0x7000, 0x77ff) AM_READ(sound_nmi_to_slave_r)
@@ -321,7 +321,7 @@ ADDRESS_MAP_END
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_LEGACY("dac", sound_slave_dac_w)
+ AM_RANGE(0x8000, 0xbfff) AM_WRITE(sound_slave_dac_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/fastlane.c b/src/mame/drivers/fastlane.c
index 4f60d6a0412..51a6d8e844c 100644
--- a/src/mame/drivers/fastlane.c
+++ b/src/mame/drivers/fastlane.c
@@ -56,17 +56,29 @@ WRITE8_MEMBER(fastlane_state::fastlane_bankswitch_w)
/* Read and write handlers for one K007232 chip:
even and odd register are mapped swapped */
-static READ8_DEVICE_HANDLER( fastlane_k007232_r )
+READ8_MEMBER(fastlane_state::fastlane_k1_k007232_r)
{
+ device_t *device = machine().device("konami1");
return k007232_r(device, offset ^ 1);
}
-static WRITE8_DEVICE_HANDLER( fastlane_k007232_w )
+WRITE8_MEMBER(fastlane_state::fastlane_k1_k007232_w)
{
+ device_t *device = machine().device("konami1");
k007232_w(device, offset ^ 1, data);
}
+READ8_MEMBER(fastlane_state::fastlane_k2_k007232_r)
+{
+ device_t *device = machine().device("konami2");
+ return k007232_r(device, offset ^ 1);
+}
+WRITE8_MEMBER(fastlane_state::fastlane_k2_k007232_w)
+{
+ device_t *device = machine().device("konami2");
+ k007232_w(device, offset ^ 1, data);
+}
static ADDRESS_MAP_START( fastlane_map, AS_PROGRAM, 8, fastlane_state )
AM_RANGE(0x0000, 0x005f) AM_RAM_WRITE(k007121_registers_w) AM_SHARE("k007121_regs") /* 007121 registers */
AM_RANGE(0x0800, 0x0800) AM_READ_PORT("DSW3")
@@ -77,8 +89,8 @@ static ADDRESS_MAP_START( fastlane_map, AS_PROGRAM, 8, fastlane_state )
AM_RANGE(0x0901, 0x0901) AM_READ_PORT("DSW2")
AM_RANGE(0x0b00, 0x0b00) AM_WRITE(watchdog_reset_w) /* watchdog reset */
AM_RANGE(0x0c00, 0x0c00) AM_WRITE(fastlane_bankswitch_w) /* bankswitch control */
- AM_RANGE(0x0d00, 0x0d0d) AM_DEVREADWRITE_LEGACY("konami1", fastlane_k007232_r, fastlane_k007232_w) /* 007232 registers (chip 1) */
- AM_RANGE(0x0e00, 0x0e0d) AM_DEVREADWRITE_LEGACY("konami2", fastlane_k007232_r, fastlane_k007232_w) /* 007232 registers (chip 2) */
+ AM_RANGE(0x0d00, 0x0d0d) AM_READWRITE(fastlane_k1_k007232_r, fastlane_k1_k007232_w) /* 007232 registers (chip 1) */
+ AM_RANGE(0x0e00, 0x0e0d) AM_READWRITE(fastlane_k2_k007232_r, fastlane_k2_k007232_w) /* 007232 registers (chip 2) */
AM_RANGE(0x0f00, 0x0f1f) AM_DEVREADWRITE_LEGACY("k051733", k051733_r, k051733_w) /* 051733 (protection) */
AM_RANGE(0x1000, 0x17ff) AM_RAM AM_SHARE("paletteram") /* Palette RAM */
AM_RANGE(0x1800, 0x1fff) AM_RAM /* Work RAM */
diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c
index 365b9a4a524..ae265c79c39 100644
--- a/src/mame/drivers/flstory.c
+++ b/src/mame/drivers/flstory.c
@@ -384,56 +384,55 @@ static MACHINE_RESET( ta7630 )
*/
}
-static WRITE8_DEVICE_HANDLER( sound_control_0_w )
+WRITE8_MEMBER(flstory_state::sound_control_0_w)
{
- flstory_state *state = device->machine().driver_data<flstory_state>();
+ device_t *device = machine().device("msm");
- state->m_snd_ctrl0 = data & 0xff;
- // popmessage("SND0 0=%02x 1=%02x 2=%02x 3=%02x", state->m_snd_ctrl0, state->m_snd_ctrl1, state->m_snd_ctrl2, state->m_snd_ctrl3);
+ m_snd_ctrl0 = data & 0xff;
+ // popmessage("SND0 0=%02x 1=%02x 2=%02x 3=%02x", m_snd_ctrl0, m_snd_ctrl1, m_snd_ctrl2, m_snd_ctrl3);
/* this definitely controls main melody voice on 2'-1 and 4'-1 outputs */
device_sound_interface *sound;
device->interface(sound);
- sound->set_output_gain(0, state->m_vol_ctrl[(state->m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
- sound->set_output_gain(1, state->m_vol_ctrl[(state->m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
- sound->set_output_gain(2, state->m_vol_ctrl[(state->m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
- sound->set_output_gain(3, state->m_vol_ctrl[(state->m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
+ sound->set_output_gain(0, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
+ sound->set_output_gain(1, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
+ sound->set_output_gain(2, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
+ sound->set_output_gain(3, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
}
-static WRITE8_DEVICE_HANDLER( sound_control_1_w )
+WRITE8_MEMBER(flstory_state::sound_control_1_w)
{
- flstory_state *state = device->machine().driver_data<flstory_state>();
+ device_t *device = machine().device("msm");
- state->m_snd_ctrl1 = data & 0xff;
- // popmessage("SND1 0=%02x 1=%02x 2=%02x 3=%02x", state->m_snd_ctrl0, state->m_snd_ctrl1, state->m_snd_ctrl2, state->m_snd_ctrl3);
+ m_snd_ctrl1 = data & 0xff;
+ // popmessage("SND1 0=%02x 1=%02x 2=%02x 3=%02x", m_snd_ctrl0, m_snd_ctrl1, m_snd_ctrl2, m_snd_ctrl3);
device_sound_interface *sound;
device->interface(sound);
- sound->set_output_gain(4, state->m_vol_ctrl[(state->m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
- sound->set_output_gain(5, state->m_vol_ctrl[(state->m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
- sound->set_output_gain(6, state->m_vol_ctrl[(state->m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
- sound->set_output_gain(7, state->m_vol_ctrl[(state->m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
+ sound->set_output_gain(4, m_vol_ctrl[(m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
+ sound->set_output_gain(5, m_vol_ctrl[(m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
+ sound->set_output_gain(6, m_vol_ctrl[(m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
+ sound->set_output_gain(7, m_vol_ctrl[(m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
}
-static WRITE8_DEVICE_HANDLER( sound_control_2_w )
+WRITE8_MEMBER(flstory_state::sound_control_2_w)
{
- flstory_state *state = device->machine().driver_data<flstory_state>();
+ device_t *device = machine().device("aysnd");
int i;
- state->m_snd_ctrl2 = data & 0xff;
- // popmessage("SND2 0=%02x 1=%02x 2=%02x 3=%02x", state->m_snd_ctrl0, state->m_snd_ctrl1, state->m_snd_ctrl2, state->m_snd_ctrl3);
+ m_snd_ctrl2 = data & 0xff;
+ // popmessage("SND2 0=%02x 1=%02x 2=%02x 3=%02x", m_snd_ctrl0, m_snd_ctrl1, m_snd_ctrl2, m_snd_ctrl3);
device_sound_interface *sound;
device->interface(sound);
for (i = 0; i < 3; i++)
- sound->set_output_gain(i, state->m_vol_ctrl[(state->m_snd_ctrl2 >> 4) & 15] / 100.0); /* ym2149f all */
+ sound->set_output_gain(i, m_vol_ctrl[(m_snd_ctrl2 >> 4) & 15] / 100.0); /* ym2149f all */
}
-static WRITE8_DEVICE_HANDLER( sound_control_3_w ) /* unknown */
+WRITE8_MEMBER(flstory_state::sound_control_3_w)/* unknown */
{
- flstory_state *state = device->machine().driver_data<flstory_state>();
- state->m_snd_ctrl3 = data & 0xff;
- // 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);
+ m_snd_ctrl3 = data & 0xff;
+ // popmessage("SND3 0=%02x 1=%02x 2=%02x 3=%02x", m_snd_ctrl0, m_snd_ctrl1, m_snd_ctrl2, m_snd_ctrl3);
}
@@ -442,8 +441,8 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, flstory_state )
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xc801) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w)
AM_RANGE(0xca00, 0xca0d) AM_DEVWRITE_LEGACY("msm", msm5232_w)
- AM_RANGE(0xcc00, 0xcc00) AM_DEVWRITE_LEGACY("msm", sound_control_0_w)
- AM_RANGE(0xce00, 0xce00) AM_DEVWRITE_LEGACY("msm", sound_control_1_w)
+ AM_RANGE(0xcc00, 0xcc00) AM_WRITE(sound_control_0_w)
+ AM_RANGE(0xce00, 0xce00) AM_WRITE(sound_control_1_w)
AM_RANGE(0xd800, 0xd800) AM_READ(soundlatch_byte_r) AM_WRITE(to_main_w)
AM_RANGE(0xda00, 0xda00) AM_READNOP AM_WRITE(nmi_enable_w) /* unknown read*/
AM_RANGE(0xdc00, 0xdc00) AM_WRITE(nmi_disable_w)
@@ -993,8 +992,8 @@ static const ay8910_interface ay8910_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_DEVICE_HANDLER("aysnd", sound_control_2_w),
- DEVCB_HANDLER(sound_control_3_w)
+ DEVCB_DRIVER_MEMBER(flstory_state,sound_control_2_w),
+ DEVCB_DRIVER_MEMBER(flstory_state,sound_control_3_w)
};
static const msm5232_interface msm5232_config =
diff --git a/src/mame/drivers/foodf.c b/src/mame/drivers/foodf.c
index c0dae4da925..f84e3c23354 100644
--- a/src/mame/drivers/foodf.c
+++ b/src/mame/drivers/foodf.c
@@ -324,22 +324,22 @@ GFXDECODE_END
*
*************************************/
-static READ8_DEVICE_HANDLER( pot_r )
+READ8_MEMBER(foodf_state::pot_r)
{
- return (device->machine().root_device().ioport("DSW")->read() >> offset) << 7;
+ return (machine().root_device().ioport("DSW")->read() >> offset) << 7;
}
static const pokey_interface pokey_config =
{
{
- DEVCB_HANDLER(pot_r),
- DEVCB_HANDLER(pot_r),
- DEVCB_HANDLER(pot_r),
- DEVCB_HANDLER(pot_r),
- DEVCB_HANDLER(pot_r),
- DEVCB_HANDLER(pot_r),
- DEVCB_HANDLER(pot_r),
- DEVCB_HANDLER(pot_r)
+ DEVCB_DRIVER_MEMBER(foodf_state,pot_r),
+ DEVCB_DRIVER_MEMBER(foodf_state,pot_r),
+ DEVCB_DRIVER_MEMBER(foodf_state,pot_r),
+ DEVCB_DRIVER_MEMBER(foodf_state,pot_r),
+ DEVCB_DRIVER_MEMBER(foodf_state,pot_r),
+ DEVCB_DRIVER_MEMBER(foodf_state,pot_r),
+ DEVCB_DRIVER_MEMBER(foodf_state,pot_r),
+ DEVCB_DRIVER_MEMBER(foodf_state,pot_r)
}
};
diff --git a/src/mame/drivers/freekick.c b/src/mame/drivers/freekick.c
index 825d61450a2..fcaf66d72e2 100644
--- a/src/mame/drivers/freekick.c
+++ b/src/mame/drivers/freekick.c
@@ -494,31 +494,28 @@ INPUT_PORTS_END
*
*************************************/
-static WRITE8_DEVICE_HANDLER( snd_rom_addr_l_w )
+WRITE8_MEMBER(freekick_state::snd_rom_addr_l_w)
{
- freekick_state *state = device->machine().driver_data<freekick_state>();
- state->m_romaddr = (state->m_romaddr & 0xff00) | data;
+ m_romaddr = (m_romaddr & 0xff00) | data;
}
-static WRITE8_DEVICE_HANDLER( snd_rom_addr_h_w )
+WRITE8_MEMBER(freekick_state::snd_rom_addr_h_w)
{
- freekick_state *state = device->machine().driver_data<freekick_state>();
- state->m_romaddr = (state->m_romaddr & 0x00ff) | (data << 8);
+ m_romaddr = (m_romaddr & 0x00ff) | (data << 8);
}
-static READ8_DEVICE_HANDLER( snd_rom_r )
+READ8_MEMBER(freekick_state::snd_rom_r)
{
- freekick_state *state = device->machine().driver_data<freekick_state>();
- return state->memregion("user1")->base()[state->m_romaddr & 0x7fff];
+ return memregion("user1")->base()[m_romaddr & 0x7fff];
}
static I8255A_INTERFACE( ppi8255_0_intf )
{
DEVCB_NULL, /* Port A read */
- DEVCB_HANDLER(snd_rom_addr_l_w), /* Port A write */
+ DEVCB_DRIVER_MEMBER(freekick_state,snd_rom_addr_l_w), /* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(snd_rom_addr_h_w), /* Port B write */
- DEVCB_HANDLER(snd_rom_r), /* Port C read */
+ DEVCB_DRIVER_MEMBER(freekick_state,snd_rom_addr_h_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(freekick_state,snd_rom_r), /* Port C read */
DEVCB_NULL /* Port C write */
};
diff --git a/src/mame/drivers/fromance.c b/src/mame/drivers/fromance.c
index a1723dbb34f..e1270a75e10 100644
--- a/src/mame/drivers/fromance.c
+++ b/src/mame/drivers/fromance.c
@@ -123,11 +123,11 @@ WRITE8_MEMBER(fromance_state::fromance_rombank_w)
*
*************************************/
-static WRITE8_DEVICE_HANDLER( fromance_adpcm_reset_w )
+WRITE8_MEMBER(fromance_state::fromance_adpcm_reset_w)
{
- fromance_state *state = device->machine().driver_data<fromance_state>();
- state->m_adpcm_reset = (data & 0x01);
- state->m_vclk_left = 0;
+ device_t *device = machine().device("msm");
+ m_adpcm_reset = (data & 0x01);
+ m_vclk_left = 0;
msm5205_reset_w(device, !(data & 0x01));
}
@@ -278,7 +278,7 @@ static ADDRESS_MAP_START( nekkyoku_sub_io_map, AS_IO, 8, fromance_state )
AM_RANGE(0xe1, 0xe1) AM_READ(fromance_busycheck_sub_r) AM_WRITE(fromance_gfxreg_w)
AM_RANGE(0xe2, 0xe5) AM_WRITE(fromance_scroll_w)
AM_RANGE(0xe6, 0xe6) AM_READWRITE(fromance_commanddata_r, fromance_busycheck_sub_w)
- AM_RANGE(0xe7, 0xe7) AM_DEVWRITE_LEGACY("msm", fromance_adpcm_reset_w)
+ AM_RANGE(0xe7, 0xe7) AM_WRITE(fromance_adpcm_reset_w)
AM_RANGE(0xe8, 0xe8) AM_WRITE(fromance_adpcm_w)
AM_RANGE(0xe9, 0xea) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_address_w)
ADDRESS_MAP_END
@@ -292,7 +292,7 @@ static ADDRESS_MAP_START( idolmj_sub_io_map, AS_IO, 8, fromance_state )
AM_RANGE(0x21, 0x21) AM_READ(fromance_busycheck_sub_r) AM_WRITE(fromance_gfxreg_w)
AM_RANGE(0x22, 0x25) AM_WRITE(fromance_scroll_w)
AM_RANGE(0x26, 0x26) AM_READWRITE(fromance_commanddata_r, fromance_busycheck_sub_w)
- AM_RANGE(0x27, 0x27) AM_DEVWRITE_LEGACY("msm", fromance_adpcm_reset_w)
+ AM_RANGE(0x27, 0x27) AM_WRITE(fromance_adpcm_reset_w)
AM_RANGE(0x28, 0x28) AM_WRITE(fromance_adpcm_w)
AM_RANGE(0x29, 0x2a) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_address_w)
ADDRESS_MAP_END
@@ -306,7 +306,7 @@ static ADDRESS_MAP_START( fromance_sub_io_map, AS_IO, 8, fromance_state )
AM_RANGE(0x21, 0x21) AM_READ(fromance_busycheck_sub_r) AM_WRITE(fromance_gfxreg_w)
AM_RANGE(0x22, 0x25) AM_WRITE(fromance_scroll_w)
AM_RANGE(0x26, 0x26) AM_READWRITE(fromance_commanddata_r, fromance_busycheck_sub_w)
- AM_RANGE(0x27, 0x27) AM_DEVWRITE_LEGACY("msm", fromance_adpcm_reset_w)
+ AM_RANGE(0x27, 0x27) AM_WRITE(fromance_adpcm_reset_w)
AM_RANGE(0x28, 0x28) AM_WRITE(fromance_adpcm_w)
AM_RANGE(0x2a, 0x2b) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/funworld.c b/src/mame/drivers/funworld.c
index f5800b15c32..2d277b2fae6 100644
--- a/src/mame/drivers/funworld.c
+++ b/src/mame/drivers/funworld.c
@@ -792,7 +792,7 @@
* Read/Write Handlers *
**********************/
-static WRITE8_DEVICE_HANDLER(funworld_lamp_a_w)
+WRITE8_MEMBER(funworld_state::funworld_lamp_a_w)
{
/* - bits -
7654 3210
@@ -812,15 +812,15 @@ static WRITE8_DEVICE_HANDLER(funworld_lamp_a_w)
output_set_lamp_value(3, (data >> 7) & 1); /* Hold4 / High */
output_set_lamp_value(5, 1-((data >> 5) & 1)); /* Cancel / Collect (inverted) */
- coin_counter_w(device->machine(), 0, data & 0x01); /* Credit In counter */
- coin_counter_w(device->machine(), 7, data & 0x04); /* Credit Out counter, mapped as coin 8 */
+ coin_counter_w(machine(), 0, data & 0x01); /* Credit In counter */
+ coin_counter_w(machine(), 7, data & 0x04); /* Credit Out counter, mapped as coin 8 */
output_set_lamp_value(7, 1-((data >> 6) & 1)); /* Hopper Motor (inverted) */
// popmessage("Lamps A: %02X", (data ^ 0xff));
}
-static WRITE8_DEVICE_HANDLER(funworld_lamp_b_w)
+WRITE8_MEMBER(funworld_state::funworld_lamp_b_w)
{
/* - bits -
7654 3210
@@ -835,7 +835,7 @@ static WRITE8_DEVICE_HANDLER(funworld_lamp_b_w)
// popmessage("Lamps B: %02X", data);
}
-static WRITE8_DEVICE_HANDLER(pia1_ca2_w)
+WRITE8_MEMBER(funworld_state::pia1_ca2_w)
{
/* TAB and Impera games are writing 0x01 constantly, and 0x00 with each screen change.
This line is tied to sort of reset circuitery.
@@ -2284,19 +2284,19 @@ static const pia6821_interface pia1_intf =
DEVCB_NULL, /* line CB2 in */
DEVCB_NULL, /* port A out */
DEVCB_NULL, /* port B out */
- DEVCB_HANDLER(pia1_ca2_w), /* line CA2 out */
+ DEVCB_DRIVER_MEMBER(funworld_state,pia1_ca2_w), /* line CA2 out */
DEVCB_NULL, /* port CB2 out */
DEVCB_NULL, /* IRQA */
DEVCB_NULL /* IRQB */
};
/* these ports are set to output anyway, but this quietens the log */
-static READ8_DEVICE_HANDLER( funquiz_ay8910_a_r )
+READ8_MEMBER(funworld_state::funquiz_ay8910_a_r)
{
return 0x00;
}
-static READ8_DEVICE_HANDLER( funquiz_ay8910_b_r )
+READ8_MEMBER(funworld_state::funquiz_ay8910_b_r)
{
return 0x00;
}
@@ -2311,18 +2311,18 @@ static const ay8910_interface ay8910_intf =
AY8910_DEFAULT_LOADS,
DEVCB_NULL, /* portA in */
DEVCB_NULL, /* portB in */
- DEVCB_HANDLER(funworld_lamp_a_w), /* portA out */
- DEVCB_HANDLER(funworld_lamp_b_w) /* portB out */
+ DEVCB_DRIVER_MEMBER(funworld_state,funworld_lamp_a_w), /* portA out */
+ DEVCB_DRIVER_MEMBER(funworld_state,funworld_lamp_b_w) /* portB out */
};
static const ay8910_interface funquiz_ay8910_intf =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(funquiz_ay8910_a_r), /* portA in */
- DEVCB_HANDLER(funquiz_ay8910_b_r), /* portB in */
- DEVCB_HANDLER(funworld_lamp_a_w), /* portA out */
- DEVCB_HANDLER(funworld_lamp_b_w) /* portB out */
+ DEVCB_DRIVER_MEMBER(funworld_state,funquiz_ay8910_a_r), /* portA in */
+ DEVCB_DRIVER_MEMBER(funworld_state,funquiz_ay8910_b_r), /* portB in */
+ DEVCB_DRIVER_MEMBER(funworld_state,funworld_lamp_a_w), /* portA out */
+ DEVCB_DRIVER_MEMBER(funworld_state,funworld_lamp_b_w) /* portB out */
};
/************************
diff --git a/src/mame/drivers/funybubl.c b/src/mame/drivers/funybubl.c
index 57f836b362f..dae470f5861 100644
--- a/src/mame/drivers/funybubl.c
+++ b/src/mame/drivers/funybubl.c
@@ -71,8 +71,9 @@ WRITE8_MEMBER(funybubl_state::funybubl_soundcommand_w)
device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
-static WRITE8_DEVICE_HANDLER( funybubl_oki_bank_sw )
+WRITE8_MEMBER(funybubl_state::funybubl_oki_bank_sw)
{
+ device_t *device = machine().device("oki");
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base(((data & 1) * 0x40000));
}
@@ -102,7 +103,7 @@ ADDRESS_MAP_END
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_LEGACY("oki", funybubl_oki_bank_sw)
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(funybubl_oki_bank_sw)
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c
index 19322d8cc86..dca064a2e77 100644
--- a/src/mame/drivers/fuukifg2.c
+++ b/src/mame/drivers/fuukifg2.c
@@ -120,8 +120,9 @@ WRITE8_MEMBER(fuuki16_state::fuuki16_sound_rombank_w)
logerror("CPU #1 - PC %04X: unknown bank bits: %02X\n", cpu_get_pc(&space.device()), data);
}
-static WRITE8_DEVICE_HANDLER( fuuki16_oki_banking_w )
+WRITE8_MEMBER(fuuki16_state::fuuki16_oki_banking_w)
{
+ device_t *device = machine().device("oki");
/*
data & 0x06 is always equals to data & 0x60
data & 0x10 is always set
@@ -141,7 +142,7 @@ 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_byte_r) AM_WRITENOP // From Main CPU / ? To Main CPU ?
- AM_RANGE(0x20, 0x20) AM_DEVWRITE_LEGACY("oki", fuuki16_oki_banking_w) // Oki Banking
+ AM_RANGE(0x20, 0x20) AM_WRITE(fuuki16_oki_banking_w) // Oki Banking
AM_RANGE(0x30, 0x30) AM_WRITENOP // ? In the NMI routine
AM_RANGE(0x40, 0x41) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
AM_RANGE(0x50, 0x51) AM_DEVREADWRITE_LEGACY("ym2", ym3812_r, ym3812_w)
diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c
index 7126729f52e..ab2c2130678 100644
--- a/src/mame/drivers/gaelco3d.c
+++ b/src/mame/drivers/gaelco3d.c
@@ -159,18 +159,18 @@ REF. 970429
static void adsp_tx_callback(adsp21xx_device &device, int port, INT32 data);
-static WRITE_LINE_DEVICE_HANDLER( ser_irq )
+WRITE_LINE_MEMBER(gaelco3d_state::ser_irq)
{
if (state)
- cputag_set_input_line(device->machine(), "maincpu", 6, ASSERT_LINE);
+ cputag_set_input_line(machine(), "maincpu", 6, ASSERT_LINE);
else
- cputag_set_input_line(device->machine(), "maincpu", 6, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 6, CLEAR_LINE);
}
static const gaelco_serial_interface serial_interface =
{
- DEVCB_LINE( ser_irq )
+ DEVCB_DRIVER_LINE_MEMBER(gaelco3d_state, ser_irq)
};
@@ -284,8 +284,9 @@ WRITE32_MEMBER(gaelco3d_state::irq_ack32_w)
*
*************************************/
-static READ16_DEVICE_HANDLER( eeprom_data_r )
+READ16_MEMBER(gaelco3d_state::eeprom_data_r)
{
+ device_t *device = machine().device("eeprom");
UINT32 result = 0xffff;
if (ACCESSING_BITS_0_7)
@@ -293,7 +294,7 @@ static READ16_DEVICE_HANDLER( eeprom_data_r )
/* bit 0 is clock */
/* bit 1 active */
result &= ~GAELCOSER_EXT_STATUS_MASK;
- result |= gaelco_serial_status_r(device->machine().device("serial"), 0);
+ result |= gaelco_serial_status_r(machine().device("serial"), 0);
}
eeprom_device *eeprom = downcast<eeprom_device *>(device);
@@ -304,26 +305,27 @@ static READ16_DEVICE_HANDLER( eeprom_data_r )
return result;
}
-static READ32_DEVICE_HANDLER( eeprom_data32_r )
+READ32_MEMBER(gaelco3d_state::eeprom_data32_r)
{
if (ACCESSING_BITS_16_31)
- return (eeprom_data_r(device, 0, mem_mask >> 16) << 16) | 0xffff;
+ return (eeprom_data_r(space, 0, mem_mask >> 16) << 16) | 0xffff;
else if (ACCESSING_BITS_0_7)
{
- UINT8 data = gaelco_serial_data_r(device->machine().device("serial"),0);
+ UINT8 data = gaelco_serial_data_r(machine().device("serial"),0);
if (LOG)
- logerror("%06X:read(%02X) = %08X & %08X\n", cpu_get_pc(device->machine().device("maincpu")), offset, data, mem_mask);
+ logerror("%06X:read(%02X) = %08X & %08X\n", cpu_get_pc(machine().device("maincpu")), offset, data, mem_mask);
return data | 0xffffff00;
}
else
- logerror("%06X:read(%02X) = mask %08X\n", cpu_get_pc(device->machine().device("maincpu")), offset, mem_mask);
+ logerror("%06X:read(%02X) = mask %08X\n", cpu_get_pc(machine().device("maincpu")), offset, mem_mask);
return 0xffffffff;
}
-static WRITE16_DEVICE_HANDLER( eeprom_data_w )
+WRITE16_MEMBER(gaelco3d_state::eeprom_data_w)
{
+ device_t *device = machine().device("eeprom");
if (ACCESSING_BITS_0_7)
{
eeprom_device *eeprom = downcast<eeprom_device *>(device);
@@ -334,8 +336,9 @@ static WRITE16_DEVICE_HANDLER( eeprom_data_w )
}
-static WRITE16_DEVICE_HANDLER( eeprom_clock_w )
+WRITE16_MEMBER(gaelco3d_state::eeprom_clock_w)
{
+ device_t *device = machine().device("eeprom");
if (ACCESSING_BITS_0_7)
{
eeprom_device *eeprom = downcast<eeprom_device *>(device);
@@ -344,8 +347,9 @@ static WRITE16_DEVICE_HANDLER( eeprom_clock_w )
}
-static WRITE16_DEVICE_HANDLER( eeprom_cs_w )
+WRITE16_MEMBER(gaelco3d_state::eeprom_cs_w)
{
+ device_t *device = machine().device("eeprom");
if (ACCESSING_BITS_0_7)
{
eeprom_device *eeprom = downcast<eeprom_device *>(device);
@@ -776,16 +780,16 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, gaelco3d_state )
AM_RANGE(0x51003c, 0x51003d) AM_READ_PORT("IN3")
AM_RANGE(0x510040, 0x510041) AM_WRITE(sound_data_w)
AM_RANGE(0x510042, 0x510043) AM_READ(sound_status_r)
- AM_RANGE(0x510100, 0x510101) AM_DEVREAD_LEGACY("eeprom", eeprom_data_r)
+ AM_RANGE(0x510100, 0x510101) AM_READ(eeprom_data_r)
AM_RANGE(0x510100, 0x510101) AM_WRITE(irq_ack_w)
AM_RANGE(0x510102, 0x510103) AM_DEVWRITE8_LEGACY("serial", gaelco_serial_tr_w, 0x00ff)
AM_RANGE(0x510102, 0x510103) AM_DEVREAD8_LEGACY("serial", gaelco_serial_data_r, 0x00ff)
AM_RANGE(0x510104, 0x510105) AM_DEVWRITE8_LEGACY("serial", gaelco_serial_data_w, 0x00ff)
AM_RANGE(0x51010a, 0x51010b) AM_DEVWRITE8_LEGACY("serial", gaelco_serial_rts_w, 0x00ff)
- AM_RANGE(0x510110, 0x510113) AM_DEVWRITE_LEGACY("eeprom", eeprom_data_w)
+ AM_RANGE(0x510110, 0x510113) AM_WRITE(eeprom_data_w)
AM_RANGE(0x510116, 0x510117) AM_WRITE(tms_control3_w)
- AM_RANGE(0x510118, 0x51011b) AM_DEVWRITE_LEGACY("eeprom", eeprom_clock_w)
- AM_RANGE(0x510120, 0x510123) AM_DEVWRITE_LEGACY("eeprom", eeprom_cs_w)
+ AM_RANGE(0x510118, 0x51011b) AM_WRITE(eeprom_clock_w)
+ AM_RANGE(0x510120, 0x510123) AM_WRITE(eeprom_cs_w)
AM_RANGE(0x51012a, 0x51012b) AM_WRITE(tms_reset_w)
AM_RANGE(0x510132, 0x510133) AM_WRITE(tms_irq_w)
AM_RANGE(0x510146, 0x510147) AM_DEVWRITE8_LEGACY("serial", gaelco_serial_irq_enable, 0x00ff)
@@ -806,14 +810,14 @@ static ADDRESS_MAP_START( main020_map, AS_PROGRAM, 32, gaelco3d_state )
AM_RANGE(0x51003c, 0x51003f) AM_READ_PORT("IN3")
AM_RANGE(0x510040, 0x510043) AM_READ16(sound_status_r, 0x0000ffff)
AM_RANGE(0x510040, 0x510043) AM_WRITE16(sound_data_w, 0xffff0000)
- AM_RANGE(0x510100, 0x510103) AM_DEVREAD_LEGACY("eeprom", eeprom_data32_r)
+ AM_RANGE(0x510100, 0x510103) AM_READ(eeprom_data32_r)
AM_RANGE(0x510100, 0x510103) AM_WRITE(irq_ack32_w)
AM_RANGE(0x510104, 0x510107) AM_DEVWRITE8_LEGACY("serial", gaelco_serial_data_w, 0x00ff0000)
AM_RANGE(0x510108, 0x51010b) AM_DEVWRITE8_LEGACY("serial", gaelco_serial_rts_w, 0x000000ff)
- AM_RANGE(0x510110, 0x510113) AM_DEVWRITE16_LEGACY("eeprom", eeprom_data_w, 0x0000ffff)
+ AM_RANGE(0x510110, 0x510113) AM_WRITE16(eeprom_data_w, 0x0000ffff)
AM_RANGE(0x510114, 0x510117) AM_WRITE16(tms_control3_w, 0x0000ffff)
- AM_RANGE(0x510118, 0x51011b) AM_DEVWRITE16_LEGACY("eeprom", eeprom_clock_w, 0x0000ffff)
- AM_RANGE(0x510120, 0x510123) AM_DEVWRITE16_LEGACY("eeprom", eeprom_cs_w, 0x0000ffff)
+ AM_RANGE(0x510118, 0x51011b) AM_WRITE16(eeprom_clock_w, 0x0000ffff)
+ AM_RANGE(0x510120, 0x510123) AM_WRITE16(eeprom_cs_w, 0x0000ffff)
AM_RANGE(0x510124, 0x510127) AM_WRITE(radikalb_lamp_w)
AM_RANGE(0x510128, 0x51012b) AM_WRITE16(tms_reset_w, 0x0000ffff)
AM_RANGE(0x510130, 0x510133) AM_WRITE16(tms_irq_w, 0x0000ffff)
diff --git a/src/mame/drivers/galaga.c b/src/mame/drivers/galaga.c
index 573872b0953..264eea37d7c 100644
--- a/src/mame/drivers/galaga.c
+++ b/src/mame/drivers/galaga.c
@@ -779,17 +779,17 @@ WRITE8_MEMBER(galaga_state::bosco_latch_w)
CUSTOM_INPUT_MEMBER(digdug_state::shifted_port_r){ return ioport((const char *)param)->read() >> 4; }
-static WRITE8_DEVICE_HANDLER( out_0 )
+WRITE8_MEMBER(galaga_state::out_0)
{
- set_led_status(device->machine(), 1,data & 1);
- set_led_status(device->machine(), 0,data & 2);
- coin_counter_w(device->machine(), 1,~data & 4);
- coin_counter_w(device->machine(), 0,~data & 8);
+ set_led_status(machine(), 1,data & 1);
+ set_led_status(machine(), 0,data & 2);
+ coin_counter_w(machine(), 1,~data & 4);
+ coin_counter_w(machine(), 0,~data & 8);
}
-static WRITE8_DEVICE_HANDLER( out_1 )
+WRITE8_MEMBER(galaga_state::out_1)
{
- coin_lockout_global_w(device->machine(), data & 1);
+ coin_lockout_global_w(machine(), data & 1);
}
static const namco_51xx_interface namco_51xx_intf =
@@ -801,15 +801,15 @@ static const namco_51xx_interface namco_51xx_intf =
DEVCB_INPUT_PORT("IN1H")
},
{ /* port write handlers */
- DEVCB_HANDLER(out_0),
- DEVCB_HANDLER(out_1)
+ DEVCB_DRIVER_MEMBER(galaga_state,out_0),
+ DEVCB_DRIVER_MEMBER(galaga_state,out_1)
}
};
-static READ8_DEVICE_HANDLER( namco_52xx_rom_r )
+READ8_MEMBER(galaga_state::namco_52xx_rom_r)
{
- UINT32 length = device->machine().root_device().memregion("52xx")->bytes();
+ UINT32 length = machine().root_device().memregion("52xx")->bytes();
//printf("ROM read %04X\n", offset);
if (!(offset & 0x1000))
offset = (offset & 0xfff) | 0x0000;
@@ -819,10 +819,10 @@ static READ8_DEVICE_HANDLER( namco_52xx_rom_r )
offset = (offset & 0xfff) | 0x2000;
else if (!(offset & 0x8000))
offset = (offset & 0xfff) | 0x3000;
- return (offset < length) ? device->machine().root_device().memregion("52xx")->base()[offset] : 0xff;
+ return (offset < length) ? machine().root_device().memregion("52xx")->base()[offset] : 0xff;
}
-static READ8_DEVICE_HANDLER( namco_52xx_si_r )
+READ8_MEMBER(galaga_state::namco_52xx_si_r)
{
/* pulled to GND */
return 0;
@@ -833,21 +833,20 @@ static const namco_52xx_interface namco_52xx_intf =
"discrete", /* name of the discrete sound device */
NODE_04, /* index of the first node */
ATTOSECONDS_IN_NSEC(PERIOD_OF_555_ASTABLE_NSEC(RES_K(33), RES_K(10), CAP_U(0.0047))), /* external clock rate */
- DEVCB_HANDLER(namco_52xx_rom_r), /* ROM read handler */
- DEVCB_HANDLER(namco_52xx_si_r) /* SI (pin 6) read handler */
+ DEVCB_DRIVER_MEMBER(galaga_state,namco_52xx_rom_r), /* ROM read handler */
+ DEVCB_DRIVER_MEMBER(galaga_state,namco_52xx_si_r) /* SI (pin 6) read handler */
};
-static READ8_DEVICE_HANDLER( custom_mod_r )
+READ8_MEMBER(galaga_state::custom_mod_r)
{
- galaga_state *state = device->machine().driver_data<galaga_state>();
/* MOD0-2 is connected to K1-3; K0 is left unconnected */
- return state->m_custom_mod << 1;
+ return m_custom_mod << 1;
}
static const namco_53xx_interface namco_53xx_intf =
{
- DEVCB_HANDLER(custom_mod_r), /* K port */
+ DEVCB_DRIVER_MEMBER(galaga_state,custom_mod_r), /* K port */
{
DEVCB_INPUT_PORT("DSWA"), /* R0 port */
DEVCB_INPUT_PORT("DSWA_HI"), /* R1 port */
diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c
index e8b5da7740f..23d10a87f35 100644
--- a/src/mame/drivers/galaxian.c
+++ b/src/mame/drivers/galaxian.c
@@ -537,23 +537,22 @@ WRITE8_MEMBER(galaxian_state::konami_ay8910_w)
}
-static WRITE8_DEVICE_HANDLER( konami_sound_control_w )
+WRITE8_MEMBER(galaxian_state::konami_sound_control_w)
{
- galaxian_state *state = device->machine().driver_data<galaxian_state>();
- UINT8 old = state->m_konami_sound_control;
- state->m_konami_sound_control = data;
+ UINT8 old = m_konami_sound_control;
+ m_konami_sound_control = data;
/* the inverse of bit 3 clocks the flip flop to signal an INT */
/* it is automatically cleared on the acknowledge */
if ((old & 0x08) && !(data & 0x08))
- cputag_set_input_line(device->machine(), "audiocpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
/* bit 4 is sound disable */
- device->machine().sound().system_mute(data & 0x10);
+ machine().sound().system_mute(data & 0x10);
}
-static READ8_DEVICE_HANDLER( konami_sound_timer_r )
+READ8_MEMBER(galaxian_state::konami_sound_timer_r)
{
/*
The timer is clocked at KONAMI_SOUND_CLOCK and cascades through a
@@ -569,7 +568,7 @@ static READ8_DEVICE_HANDLER( konami_sound_timer_r )
current counter index, we use the sound cpu clock times 8 mod
16*16*2*8*5*2.
*/
- UINT32 cycles = (device->machine().device<cpu_device>("audiocpu")->total_cycles() * 8) % (UINT64)(16*16*2*8*5*2);
+ UINT32 cycles = (machine().device<cpu_device>("audiocpu")->total_cycles() * 8) % (UINT64)(16*16*2*8*5*2);
UINT8 hibit = 0;
/* separate the high bit from the others */
@@ -610,15 +609,15 @@ WRITE8_MEMBER(galaxian_state::konami_sound_filter_w)
}
-static WRITE8_DEVICE_HANDLER( konami_portc_0_w )
+WRITE8_MEMBER(galaxian_state::konami_portc_0_w)
{
- logerror("%s:ppi0_portc_w = %02X\n", device->machine().describe_context(), data);
+ logerror("%s:ppi0_portc_w = %02X\n", machine().describe_context(), data);
}
-static WRITE8_DEVICE_HANDLER( konami_portc_1_w )
+WRITE8_MEMBER(galaxian_state::konami_portc_1_w)
{
- logerror("%s:ppi1_portc_w = %02X\n", device->machine().describe_context(), data);
+ logerror("%s:ppi1_portc_w = %02X\n", machine().describe_context(), data);
}
@@ -629,7 +628,7 @@ static I8255A_INTERFACE( konami_ppi8255_0_intf )
DEVCB_INPUT_PORT("IN1"), /* Port B read */
DEVCB_NULL, /* Port B write */
DEVCB_INPUT_PORT("IN2"), /* Port C read */
- DEVCB_HANDLER(konami_portc_0_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(galaxian_state,konami_portc_0_w) /* Port C write */
};
static I8255A_INTERFACE( konami_ppi8255_1_intf )
@@ -637,9 +636,9 @@ static I8255A_INTERFACE( konami_ppi8255_1_intf )
DEVCB_NULL, /* Port A read */
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_w),/* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(konami_sound_control_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(galaxian_state,konami_sound_control_w), /* Port B write */
DEVCB_INPUT_PORT("IN3"), /* Port C read */
- DEVCB_HANDLER(konami_portc_1_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(galaxian_state,konami_portc_1_w) /* Port C write */
};
@@ -667,9 +666,9 @@ WRITE8_MEMBER(galaxian_state::theend_ppi8255_w)
}
-static WRITE8_DEVICE_HANDLER( theend_coin_counter_w )
+WRITE8_MEMBER(galaxian_state::theend_coin_counter_w)
{
- coin_counter_w(device->machine(), 0, data & 0x80);
+ coin_counter_w(machine(), 0, data & 0x80);
}
@@ -680,7 +679,7 @@ static I8255A_INTERFACE( theend_ppi8255_0_intf )
DEVCB_INPUT_PORT("IN1"), /* Port B read */
DEVCB_NULL, /* Port B write */
DEVCB_INPUT_PORT("IN2"), /* Port C read */
- DEVCB_HANDLER(theend_coin_counter_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(galaxian_state,theend_coin_counter_w) /* Port C write */
};
@@ -691,35 +690,33 @@ static I8255A_INTERFACE( theend_ppi8255_0_intf )
*
*************************************/
-static WRITE8_DEVICE_HANDLER( scramble_protection_w )
+WRITE8_MEMBER(galaxian_state::scramble_protection_w)
{
- galaxian_state *state = device->machine().driver_data<galaxian_state>();
/*
This is not fully understood; the low 4 bits of port C are
inputs; the upper 4 bits are outputs. Scramble main set always
writes sequences of 3 or more nibbles to the low port and
expects certain results in the upper nibble afterwards.
*/
- state->m_protection_state = (state->m_protection_state << 4) | (data & 0x0f);
- switch (state->m_protection_state & 0xfff)
+ m_protection_state = (m_protection_state << 4) | (data & 0x0f);
+ switch (m_protection_state & 0xfff)
{
/* scramble */
- case 0xf09: state->m_protection_result = 0xff; break;
- case 0xa49: state->m_protection_result = 0xbf; break;
- case 0x319: state->m_protection_result = 0x4f; break;
- case 0x5c9: state->m_protection_result = 0x6f; break;
+ case 0xf09: m_protection_result = 0xff; break;
+ case 0xa49: m_protection_result = 0xbf; break;
+ case 0x319: m_protection_result = 0x4f; break;
+ case 0x5c9: m_protection_result = 0x6f; break;
/* scrambls */
- case 0x246: state->m_protection_result ^= 0x80; break;
- case 0xb5f: state->m_protection_result = 0x6f; break;
+ case 0x246: m_protection_result ^= 0x80; break;
+ case 0xb5f: m_protection_result = 0x6f; break;
}
}
-static READ8_DEVICE_HANDLER( scramble_protection_r )
+READ8_MEMBER(galaxian_state::scramble_protection_r)
{
- galaxian_state *state = device->machine().driver_data<galaxian_state>();
- return state->m_protection_result;
+ return m_protection_result;
}
@@ -739,9 +736,9 @@ static I8255A_INTERFACE( scramble_ppi8255_1_intf )
DEVCB_NULL, /* Port A read */
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_w),/* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(konami_sound_control_w), /* Port B write */
- DEVCB_HANDLER(scramble_protection_r), /* Port C read */
- DEVCB_HANDLER(scramble_protection_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(galaxian_state,konami_sound_control_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(galaxian_state,scramble_protection_r), /* Port C read */
+ DEVCB_DRIVER_MEMBER(galaxian_state,scramble_protection_w) /* Port C write */
};
@@ -757,11 +754,10 @@ WRITE8_MEMBER(galaxian_state::explorer_sound_control_w)
}
-static READ8_DEVICE_HANDLER( explorer_sound_latch_r )
+READ8_MEMBER(galaxian_state::explorer_sound_latch_r)
{
- galaxian_state *state = device->machine().driver_data<galaxian_state>();
- cputag_set_input_line(device->machine(), "audiocpu", 0, CLEAR_LINE);
- return state->soundlatch_byte_r(*device->machine().device("audiocpu")->memory().space(AS_PROGRAM), 0);
+ cputag_set_input_line(machine(), "audiocpu", 0, CLEAR_LINE);
+ return soundlatch_byte_r(*machine().device("audiocpu")->memory().space(AS_PROGRAM), 0);
}
@@ -789,16 +785,15 @@ WRITE8_MEMBER(galaxian_state::sfx_sample_io_w)
}
-static WRITE8_DEVICE_HANDLER( sfx_sample_control_w )
+WRITE8_MEMBER(galaxian_state::sfx_sample_control_w)
{
- galaxian_state *state = device->machine().driver_data<galaxian_state>();
- UINT8 old = state->m_sfx_sample_control;
- state->m_sfx_sample_control = data;
+ UINT8 old = m_sfx_sample_control;
+ m_sfx_sample_control = data;
/* the inverse of bit 0 clocks the flip flop to signal an INT */
/* it is automatically cleared on the acknowledge */
if ((old & 0x01) && !(data & 0x01))
- cputag_set_input_line(device->machine(), "audio2", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audio2", 0, HOLD_LINE);
}
@@ -846,42 +841,40 @@ static void monsterz_set_latch(running_machine &machine)
}
-static WRITE8_DEVICE_HANDLER( monsterz_porta_1_w )
+WRITE8_MEMBER(galaxian_state::monsterz_porta_1_w)
{
- galaxian_state *state = device->machine().driver_data<galaxian_state>();
// d7 high: set latch + advance address high bits (and reset low bits?)
if (data & 0x80)
{
- monsterz_set_latch(device->machine());
- state->m_protection_state = (state->m_protection_state + 0x100) & 0xff00;
+ monsterz_set_latch(machine());
+ m_protection_state = (m_protection_state + 0x100) & 0xff00;
}
}
-static WRITE8_DEVICE_HANDLER( monsterz_portb_1_w )
+WRITE8_MEMBER(galaxian_state::monsterz_portb_1_w)
{
- galaxian_state *state = device->machine().driver_data<galaxian_state>();
// d3 high: set latch + advance address low bits
if (data & 0x08)
{
- monsterz_set_latch(device->machine());
- state->m_protection_state = ((state->m_protection_state + 1) & 0x00ff) | (state->m_protection_state & 0xff00);
+ monsterz_set_latch(machine());
+ m_protection_state = ((m_protection_state + 1) & 0x00ff) | (m_protection_state & 0xff00);
}
}
-static WRITE8_DEVICE_HANDLER( monsterz_portc_1_w )
+WRITE8_MEMBER(galaxian_state::monsterz_portc_1_w)
{
}
static I8255A_INTERFACE( monsterz_ppi8255_1_intf )
{
DEVCB_NULL, /* Port A read */
- DEVCB_HANDLER(monsterz_porta_1_w), /* Port A write */
+ DEVCB_DRIVER_MEMBER(galaxian_state,monsterz_porta_1_w), /* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(monsterz_portb_1_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(galaxian_state,monsterz_portb_1_w), /* Port B write */
DEVCB_INPUT_PORT("IN3"), /* Port C read */
- DEVCB_HANDLER(monsterz_portc_1_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(galaxian_state,monsterz_portc_1_w) /* Port C write */
};
@@ -929,10 +922,10 @@ WRITE8_MEMBER(galaxian_state::frogger_ay8910_w)
}
-static READ8_DEVICE_HANDLER( frogger_sound_timer_r )
+READ8_MEMBER(galaxian_state::frogger_sound_timer_r)
{
/* same as regular Konami sound but with bits 3,5 swapped */
- UINT8 konami_value = konami_sound_timer_r(device, 0);
+ UINT8 konami_value = konami_sound_timer_r(space, 0);
return BITSWAP8(konami_value, 7,6,3,4,5,2,1,0);
}
@@ -1011,14 +1004,13 @@ WRITE8_MEMBER(galaxian_state::scorpion_ay8910_w)
}
-static READ8_DEVICE_HANDLER( scorpion_protection_r )
+READ8_MEMBER(galaxian_state::scorpion_protection_r)
{
- galaxian_state *state = device->machine().driver_data<galaxian_state>();
UINT16 paritybits;
UINT8 parity = 0;
/* compute parity of the current (bitmask & $CE29) */
- for (paritybits = state->m_protection_state & 0xce29; paritybits != 0; paritybits >>= 1)
+ for (paritybits = m_protection_state & 0xce29; paritybits != 0; paritybits >>= 1)
if (paritybits & 1)
parity++;
@@ -1027,18 +1019,17 @@ static READ8_DEVICE_HANDLER( scorpion_protection_r )
}
-static WRITE8_DEVICE_HANDLER( scorpion_protection_w )
+WRITE8_MEMBER(galaxian_state::scorpion_protection_w)
{
- galaxian_state *state = device->machine().driver_data<galaxian_state>();
/* bit 5 low is a reset */
if (!(data & 0x20))
- state->m_protection_state = 0x0000;
+ m_protection_state = 0x0000;
/* bit 4 low is a clock */
if (!(data & 0x10))
{
/* each clock shifts left one bit and ORs in the inverse of the parity */
- state->m_protection_state = (state->m_protection_state << 1) | (~scorpion_protection_r(device, 0) & 1);
+ m_protection_state = (m_protection_state << 1) | (~scorpion_protection_r(space, 0) & 1);
}
}
@@ -1048,8 +1039,9 @@ READ8_MEMBER(galaxian_state::scorpion_digitalker_intr_r)
return digitalker_0_intr_r(digitalker);
}
-static WRITE8_DEVICE_HANDLER( scorpion_digitalker_control_w )
+WRITE8_MEMBER(galaxian_state::scorpion_digitalker_control_w)
{
+ device_t *device = machine().device("digitalker");
digitalker_0_cs_w(device, data & 1 ? ASSERT_LINE : CLEAR_LINE);
digitalker_0_cms_w(device, data & 2 ? ASSERT_LINE : CLEAR_LINE);
digitalker_0_wr_w(device, data & 4 ? ASSERT_LINE : CLEAR_LINE);
@@ -1060,9 +1052,9 @@ static I8255A_INTERFACE( scorpion_ppi8255_1_intf )
DEVCB_NULL, /* Port A read */
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_w),/* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(konami_sound_control_w), /* Port B write */
- DEVCB_HANDLER(scorpion_protection_r), /* Port C read */
- DEVCB_HANDLER(scorpion_protection_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(galaxian_state,konami_sound_control_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(galaxian_state,scorpion_protection_r), /* Port C read */
+ DEVCB_DRIVER_MEMBER(galaxian_state,scorpion_protection_w) /* Port C write */
};
@@ -1193,8 +1185,9 @@ WRITE8_MEMBER(galaxian_state::kingball_sound2_w)
}
-static WRITE8_DEVICE_HANDLER( kingball_dac_w )
+WRITE8_MEMBER(galaxian_state::kingball_dac_w)
{
+ device_t *device = machine().device("dac");
dac_w(device, offset, data ^ 0xff);
}
@@ -1325,10 +1318,9 @@ READ8_MEMBER(galaxian_state::dingoe_3001_r)
*
*************************************/
-static WRITE8_DEVICE_HANDLER( moonwar_port_select_w )
+WRITE8_MEMBER(galaxian_state::moonwar_port_select_w)
{
- galaxian_state *state = device->machine().driver_data<galaxian_state>();
- state->m_moonwar_port_select = data & 0x10;
+ m_moonwar_port_select = data & 0x10;
}
@@ -1339,7 +1331,7 @@ static I8255A_INTERFACE( moonwar_ppi8255_0_intf )
DEVCB_INPUT_PORT("IN1"), /* Port B read */
DEVCB_NULL, /* Port B write */
DEVCB_INPUT_PORT("IN2"), /* Port C read */
- DEVCB_HANDLER(moonwar_port_select_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(galaxian_state,moonwar_port_select_w) /* Port C write */
};
@@ -1849,7 +1841,7 @@ ADDRESS_MAP_END
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_byte_r) AM_DEVWRITE_LEGACY("dac", kingball_dac_w)
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0xff) AM_READ(soundlatch_byte_r) AM_WRITE(kingball_dac_w)
ADDRESS_MAP_END
@@ -1955,7 +1947,7 @@ static const ay8910_interface frogger_ay8910_interface =
AY8910_DISCRETE_OUTPUT,
{RES_K(5.1), RES_K(5.1), RES_K(5.1)},
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_HANDLER(frogger_sound_timer_r),
+ DEVCB_DRIVER_MEMBER(galaxian_state,frogger_sound_timer_r),
DEVCB_NULL,
DEVCB_NULL
};
@@ -1965,7 +1957,7 @@ static const ay8910_interface konami_ay8910_interface_1 =
AY8910_DISCRETE_OUTPUT,
{RES_K(5.1), RES_K(5.1), RES_K(5.1)},
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_HANDLER(konami_sound_timer_r),
+ DEVCB_DRIVER_MEMBER(galaxian_state,konami_sound_timer_r),
DEVCB_NULL,
DEVCB_NULL
};
@@ -1984,7 +1976,7 @@ static const ay8910_interface explorer_ay8910_interface_1 =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(explorer_sound_latch_r),
+ DEVCB_DRIVER_MEMBER(galaxian_state,explorer_sound_latch_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
@@ -1994,7 +1986,7 @@ static const ay8910_interface explorer_ay8910_interface_2 =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(konami_sound_timer_r),
+ DEVCB_DRIVER_MEMBER(galaxian_state,konami_sound_timer_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
@@ -2007,7 +1999,7 @@ static const ay8910_interface sfx_ay8910_interface =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(driver_device, soundlatch2_byte_w),
- DEVCB_HANDLER(sfx_sample_control_w)
+ DEVCB_DRIVER_MEMBER(galaxian_state,sfx_sample_control_w)
};
static const ay8910_interface scorpion_ay8910_interface =
@@ -2017,7 +2009,7 @@ static const ay8910_interface scorpion_ay8910_interface =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_HANDLER("digitalker", digitalker_data_w),
- DEVCB_DEVICE_HANDLER("digitalker", scorpion_digitalker_control_w)
+ DEVCB_DRIVER_MEMBER(galaxian_state,scorpion_digitalker_control_w)
};
static const ay8910_interface checkmaj_ay8910_interface =
diff --git a/src/mame/drivers/galaxold.c b/src/mame/drivers/galaxold.c
index 3e3bf34b595..5024d99d871 100644
--- a/src/mame/drivers/galaxold.c
+++ b/src/mame/drivers/galaxold.c
@@ -829,10 +829,10 @@ static ADDRESS_MAP_START( hunchbkg, AS_PROGRAM, 8, galaxold_state )
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(); }
+READ8_MEMBER(galaxold_state::ttl7474_trampoline){ device_t *device = machine().device("7474_9m_1"); return downcast<ttl7474_device *>(device)->output_comp_r(); }
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_LEGACY("7474_9m_1", ttl7474_trampoline)
+ AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(ttl7474_trampoline)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/galpani2.c b/src/mame/drivers/galpani2.c
index aced2842a55..c4090a4223e 100644
--- a/src/mame/drivers/galpani2.c
+++ b/src/mame/drivers/galpani2.c
@@ -34,17 +34,17 @@ To Do:
***************************************************************************/
-static READ16_DEVICE_HANDLER(galpani2_eeprom_r)
+READ16_MEMBER(galpani2_state::galpani2_eeprom_r)
{
- galpani2_state *state = device->machine().driver_data<galpani2_state>();
+ device_t *device = machine().device("eeprom");
eeprom_device *eeprom = downcast<eeprom_device *>(device);
- return (state->m_eeprom_word & ~1) | (eeprom->read_bit() & 1);
+ return (m_eeprom_word & ~1) | (eeprom->read_bit() & 1);
}
-static WRITE16_DEVICE_HANDLER(galpani2_eeprom_w)
+WRITE16_MEMBER(galpani2_state::galpani2_eeprom_w)
{
- galpani2_state *state = device->machine().driver_data<galpani2_state>();
- COMBINE_DATA( &state->m_eeprom_word );
+ device_t *device = machine().device("eeprom");
+ COMBINE_DATA( &m_eeprom_word );
if ( ACCESSING_BITS_0_7 )
{
// latch the bit
@@ -273,18 +273,19 @@ WRITE8_MEMBER(galpani2_state::galpani2_coin_lockout_w)
// & 0x40 CARD out
}
-static WRITE8_DEVICE_HANDLER( galpani2_oki1_bank_w )
+WRITE8_MEMBER(galpani2_state::galpani2_oki1_bank_w)
{
- UINT8 *ROM = device->machine().root_device().memregion("oki1")->base();
- logerror("%s : %s bank %08X\n",device->machine().describe_context(),device->tag(),data);
+ UINT8 *ROM = machine().root_device().memregion("oki1")->base();
+ logerror("%s : %s bank %08X\n",machine().describe_context(),tag(),data);
memcpy(ROM + 0x30000, ROM + 0x40000 + 0x10000 * (~data & 0xf), 0x10000);
}
-static WRITE8_DEVICE_HANDLER( galpani2_oki2_bank_w )
+WRITE8_MEMBER(galpani2_state::galpani2_oki2_bank_w)
{
+ device_t *device = machine().device("oki2");
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base(0x40000 * (data & 0xf) );
- logerror("%s : %s bank %08X\n",device->machine().describe_context(),device->tag(),data);
+ logerror("%s : %s bank %08X\n",machine().describe_context(),tag(),data);
}
@@ -299,7 +300,7 @@ static ADDRESS_MAP_START( galpani2_mem1, AS_PROGRAM, 16, galpani2_state )
AM_RANGE(0x30c000, 0x30c001) AM_WRITENOP // ? hblank effect ?
AM_RANGE(0x310000, 0x3101ff) AM_RAM_WRITE_LEGACY(galpani2_palette_0_w) AM_SHARE("palette.0") // ?
AM_RANGE(0x314000, 0x314001) AM_WRITENOP // ? flip backgrounds ?
- AM_RANGE(0x318000, 0x318001) AM_DEVREADWRITE_LEGACY("eeprom", galpani2_eeprom_r, galpani2_eeprom_w) // EEPROM
+ AM_RANGE(0x318000, 0x318001) AM_READWRITE(galpani2_eeprom_r, galpani2_eeprom_w) // EEPROM
AM_RANGE(0x380000, 0x387fff) AM_RAM // Palette?
AM_RANGE(0x388000, 0x38ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram" ) // Palette
AM_RANGE(0x390000, 0x3901ff) AM_WRITENOP // ? at startup of service mode
@@ -333,8 +334,8 @@ static ADDRESS_MAP_START( galpani2_mem1, AS_PROGRAM, 16, galpani2_state )
AM_RANGE(0x780006, 0x780007) AM_READ_PORT("SERVICE")
AM_RANGE(0xc00000, 0xc00001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff ) // 2 x OKIM6295
AM_RANGE(0xc40000, 0xc40001) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff ) //
- AM_RANGE(0xc80000, 0xc80001) AM_DEVWRITE8_LEGACY("oki1", galpani2_oki1_bank_w, 0x00ff ) //
- AM_RANGE(0xcc0000, 0xcc0001) AM_DEVWRITE8_LEGACY("oki2", galpani2_oki2_bank_w, 0x00ff ) //
+ AM_RANGE(0xc80000, 0xc80001) AM_WRITE8(galpani2_oki1_bank_w, 0x00ff ) //
+ AM_RANGE(0xcc0000, 0xcc0001) AM_WRITE8(galpani2_oki2_bank_w, 0x00ff ) //
ADDRESS_MAP_END
diff --git a/src/mame/drivers/galpanic.c b/src/mame/drivers/galpanic.c
index e8b27396f6f..14932ebb4e0 100644
--- a/src/mame/drivers/galpanic.c
+++ b/src/mame/drivers/galpanic.c
@@ -250,13 +250,14 @@ READ16_MEMBER(galpanic_state::comad_timer_r)
}
/* a kludge! */
-static READ8_DEVICE_HANDLER( comad_okim6295_r )
+READ8_MEMBER(galpanic_state::comad_okim6295_r)
{
+// device_t *device = machine().device("oki");
UINT16 retvalue;
// okim6295_device *oki = downcast<okim6295_device *>(device);
// retvalue = oki->read_status(); // doesn't work, causes lockups when girls change..
- retvalue = device->machine().rand();
+ retvalue = machine().rand();
return retvalue;
}
@@ -276,8 +277,8 @@ static ADDRESS_MAP_START( comad_map, AS_PROGRAM, 16, galpanic_state )
AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w) /* not sure */
AM_RANGE(0xc00000, 0xc0ffff) AM_RAM /* missw96 */
AM_RANGE(0xc80000, 0xc8ffff) AM_RAM /* fantasia, newfant */
- AM_RANGE(0xf00000, 0xf00001) AM_DEVREAD8_LEGACY("oki", comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
- AM_RANGE(0xf80000, 0xf80001) AM_DEVREAD8_LEGACY("oki", comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* newfant */
+ AM_RANGE(0xf00000, 0xf00001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
+ AM_RANGE(0xf80000, 0xf80001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* newfant */
ADDRESS_MAP_END
static ADDRESS_MAP_START( fantsia2_map, AS_PROGRAM, 16, galpanic_state )
@@ -293,7 +294,7 @@ static ADDRESS_MAP_START( fantsia2_map, AS_PROGRAM, 16, galpanic_state )
AM_RANGE(0x800008, 0x800009) AM_READ(comad_timer_r) /* bits 8-a = timer? palette update code waits for them to be 111 */
AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w) /* not sure */
AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP /* coin counters, + ? */
- AM_RANGE(0xc80000, 0xc80001) AM_DEVREAD8_LEGACY("oki", comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00)
+ AM_RANGE(0xc80000, 0xc80001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00)
AM_RANGE(0xf80000, 0xf8ffff) AM_RAM
ADDRESS_MAP_END
@@ -340,7 +341,7 @@ static ADDRESS_MAP_START( zipzap_map, AS_PROGRAM, 16, galpanic_state )
AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanica_6295_bankswitch_w)
- AM_RANGE(0xc00000, 0xc00001) AM_DEVREAD8_LEGACY("oki", comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
+ AM_RANGE(0xc00000, 0xc00001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
AM_RANGE(0xc80000, 0xc8ffff) AM_RAM // main ram
ADDRESS_MAP_END
@@ -365,7 +366,7 @@ static ADDRESS_MAP_START( supmodel_map, AS_PROGRAM, 16, galpanic_state )
AM_RANGE(0xd80000, 0xd80001) AM_WRITENOP
AM_RANGE(0xe00012, 0xe00013) AM_WRITENOP
AM_RANGE(0xe80000, 0xe80001) AM_WRITENOP
- AM_RANGE(0xf80000, 0xf80001) AM_DEVREAD8_LEGACY("oki", comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
+ AM_RANGE(0xf80000, 0xf80001) AM_READ8(comad_okim6295_r, 0xff00) AM_DEVWRITE8("oki", okim6295_device, write, 0xff00) /* fantasia, missw96 */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gameplan.c b/src/mame/drivers/gameplan.c
index 6fceb7f51bc..82d8a6b0dfb 100644
--- a/src/mame/drivers/gameplan.c
+++ b/src/mame/drivers/gameplan.c
@@ -89,43 +89,41 @@ TODO:
*
*************************************/
-static WRITE8_DEVICE_HANDLER( io_select_w )
+WRITE8_MEMBER(gameplan_state::io_select_w)
{
- gameplan_state *state = device->machine().driver_data<gameplan_state>();
switch (data)
{
- case 0x01: state->m_current_port = 0; break;
- case 0x02: state->m_current_port = 1; break;
- case 0x04: state->m_current_port = 2; break;
- case 0x08: state->m_current_port = 3; break;
- case 0x80: state->m_current_port = 4; break;
- case 0x40: state->m_current_port = 5; break;
+ case 0x01: m_current_port = 0; break;
+ case 0x02: m_current_port = 1; break;
+ case 0x04: m_current_port = 2; break;
+ case 0x08: m_current_port = 3; break;
+ case 0x80: m_current_port = 4; break;
+ case 0x40: m_current_port = 5; break;
}
}
-static READ8_DEVICE_HANDLER( io_port_r )
+READ8_MEMBER(gameplan_state::io_port_r)
{
static const char *const portnames[] = { "IN0", "IN1", "IN2", "IN3", "DSW0", "DSW1" };
- gameplan_state *state = device->machine().driver_data<gameplan_state>();
- return state->ioport(portnames[state->m_current_port])->read();
+ return ioport(portnames[m_current_port])->read();
}
-static WRITE8_DEVICE_HANDLER( coin_w )
+WRITE8_MEMBER(gameplan_state::coin_w)
{
- coin_counter_w(device->machine(), 0, ~data & 1);
+ coin_counter_w(machine(), 0, ~data & 1);
}
static const via6522_interface via_1_interface =
{
- DEVCB_HANDLER(io_port_r), DEVCB_NULL, /*inputs : A/B */
+ DEVCB_DRIVER_MEMBER(gameplan_state,io_port_r), DEVCB_NULL, /*inputs : A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, /*inputs : CA/B1,CA/B2 */
- DEVCB_NULL, DEVCB_HANDLER(io_select_w), /*outputs: A/B */
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_HANDLER(coin_w), /*outputs: CA/B1,CA/B2 */
+ DEVCB_NULL, DEVCB_DRIVER_MEMBER(gameplan_state,io_select_w), /*outputs: A/B */
+ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(gameplan_state,coin_w), /*outputs: CA/B1,CA/B2 */
DEVCB_NULL /*irq */
};
@@ -137,31 +135,28 @@ static const via6522_interface via_1_interface =
*
*************************************/
-static WRITE8_DEVICE_HANDLER( audio_reset_w )
+WRITE8_MEMBER(gameplan_state::audio_reset_w)
{
- gameplan_state *state = device->machine().driver_data<gameplan_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
if (data == 0)
{
- state->m_riot->reset();
- device->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(10));
+ m_riot->reset();
+ machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(10));
}
}
-static WRITE8_DEVICE_HANDLER( audio_cmd_w )
+WRITE8_MEMBER(gameplan_state::audio_cmd_w)
{
- gameplan_state *state = device->machine().driver_data<gameplan_state>();
- riot6532_porta_in_set(state->m_riot, data, 0x7f);
+ riot6532_porta_in_set(m_riot, data, 0x7f);
}
-static WRITE8_DEVICE_HANDLER( audio_trigger_w )
+WRITE8_MEMBER(gameplan_state::audio_trigger_w)
{
- gameplan_state *state = device->machine().driver_data<gameplan_state>();
- riot6532_porta_in_set(state->m_riot, data << 7, 0x80);
+ riot6532_porta_in_set(m_riot, data << 7, 0x80);
}
@@ -169,8 +164,8 @@ static const via6522_interface via_2_interface =
{
DEVCB_NULL, DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r), /*inputs : A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, /*inputs : CA/B1,CA/B2 */
- DEVCB_HANDLER(audio_cmd_w), DEVCB_NULL, /*outputs: A/B */
- DEVCB_NULL, DEVCB_NULL, DEVCB_HANDLER(audio_trigger_w), DEVCB_HANDLER(audio_reset_w), /*outputs: CA/B1,CA/B2 */
+ DEVCB_DRIVER_MEMBER(gameplan_state,audio_cmd_w), DEVCB_NULL, /*outputs: A/B */
+ DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(gameplan_state,audio_trigger_w), DEVCB_DRIVER_MEMBER(gameplan_state,audio_reset_w), /*outputs: CA/B1,CA/B2 */
DEVCB_NULL /*irq */
};
@@ -182,21 +177,18 @@ static const via6522_interface via_2_interface =
*
*************************************/
-static WRITE_LINE_DEVICE_HANDLER( r6532_irq )
+WRITE_LINE_MEMBER(gameplan_state::r6532_irq)
{
- gameplan_state *gameplan = device->machine().driver_data<gameplan_state>();
-
- device_set_input_line(gameplan->m_audiocpu, 0, state);
+ device_set_input_line(m_audiocpu, 0, state);
if (state == ASSERT_LINE)
- device->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(10));
+ machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(10));
}
-static WRITE8_DEVICE_HANDLER( r6532_soundlatch_w )
+WRITE8_MEMBER(gameplan_state::r6532_soundlatch_w)
{
- gameplan_state *gameplan = device->machine().driver_data<gameplan_state>();
- address_space *space = device->machine().device("maincpu")->memory().space(AS_PROGRAM);
- gameplan->soundlatch_byte_w(*space, 0, data);
+ address_space *progspace = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ soundlatch_byte_w(*progspace, 0, data);
}
@@ -205,8 +197,8 @@ static const riot6532_interface r6532_interface =
DEVCB_NULL, /* port A read handler */
DEVCB_NULL, /* port B read handler */
DEVCB_NULL, /* port A write handler */
- DEVCB_HANDLER(r6532_soundlatch_w), /* port B write handler */
- DEVCB_LINE(r6532_irq) /* IRQ callback */
+ DEVCB_DRIVER_MEMBER(gameplan_state,r6532_soundlatch_w), /* port B write handler */
+ DEVCB_DRIVER_LINE_MEMBER(gameplan_state,r6532_irq) /* IRQ callback */
};
diff --git a/src/mame/drivers/gaplus.c b/src/mame/drivers/gaplus.c
index 60e16ba3d3d..fd67882be2b 100644
--- a/src/mame/drivers/gaplus.c
+++ b/src/mame/drivers/gaplus.c
@@ -517,17 +517,17 @@ static const samples_interface gaplus_samples_interface =
***************************************************************************/
-static WRITE8_DEVICE_HANDLER( out_lamps0 )
+WRITE8_MEMBER(gaplus_state::out_lamps0)
{
- set_led_status(device->machine(), 0, data & 1);
- set_led_status(device->machine(), 1, data & 2);
- coin_lockout_global_w(device->machine(), data & 4);
- coin_counter_w(device->machine(), 0, ~data & 8);
+ set_led_status(machine(), 0, data & 1);
+ set_led_status(machine(), 1, data & 2);
+ coin_lockout_global_w(machine(), data & 4);
+ coin_counter_w(machine(), 0, ~data & 8);
}
-static WRITE8_DEVICE_HANDLER( out_lamps1 )
+WRITE8_MEMBER(gaplus_state::out_lamps1)
{
- coin_counter_w(device->machine(), 1, ~data & 1);
+ coin_counter_w(machine(), 1, ~data & 1);
}
/* chip #0: player inputs, buttons, coins */
@@ -541,7 +541,7 @@ static const namcoio_interface intf0 =
static const namcoio_interface intf0_lamps =
{
{ DEVCB_INPUT_PORT("COINS"), DEVCB_INPUT_PORT("P1"), DEVCB_INPUT_PORT("P2"), DEVCB_INPUT_PORT("BUTTONS") }, /* port read handlers */
- { DEVCB_HANDLER(out_lamps0), DEVCB_HANDLER(out_lamps1) }, /* port write handlers */
+ { DEVCB_DRIVER_MEMBER(gaplus_state,out_lamps0), DEVCB_DRIVER_MEMBER(gaplus_state,out_lamps1) }, /* port write handlers */
NULL /* device */
};
diff --git a/src/mame/drivers/gatron.c b/src/mame/drivers/gatron.c
index d9506324c27..bf288f3f30d 100644
--- a/src/mame/drivers/gatron.c
+++ b/src/mame/drivers/gatron.c
@@ -298,7 +298,7 @@ WRITE8_MEMBER(gatron_state::output_port_0_w)
}
-static WRITE8_DEVICE_HANDLER( output_port_1_w )
+WRITE8_MEMBER(gatron_state::output_port_1_w)
{
/* ----------------
Lamps & Counters
@@ -329,7 +329,7 @@ static I8255A_INTERFACE( ppi8255_intf )
DEVCB_INPUT_PORT("IN1"), /* Port B read */
DEVCB_NULL, /* Port B write */
DEVCB_NULL, /* Port C read */
- DEVCB_HANDLER(output_port_1_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(gatron_state,output_port_1_w) /* Port C write */
};
diff --git a/src/mame/drivers/gbusters.c b/src/mame/drivers/gbusters.c
index 1a9ce532ade..71f4cd0b138 100644
--- a/src/mame/drivers/gbusters.c
+++ b/src/mame/drivers/gbusters.c
@@ -104,8 +104,9 @@ WRITE8_MEMBER(gbusters_state::gbusters_sh_irqtrigger_w)
device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
}
-static WRITE8_DEVICE_HANDLER( gbusters_snd_bankswitch_w )
+WRITE8_MEMBER(gbusters_state::gbusters_snd_bankswitch_w)
{
+ device_t *device = machine().device("k007232");
int bank_B = BIT(data, 2); /* ?? */
int bank_A = BIT(data, 0); /* ?? */
k007232_set_bank(device, bank_A, bank_B );
@@ -175,7 +176,7 @@ static ADDRESS_MAP_START( gbusters_sound_map, AS_PROGRAM, 8, gbusters_state )
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) /* 007232 registers */
AM_RANGE(0xc001, 0xc001) AM_DEVREAD_LEGACY("ymsnd", ym2151_status_port_r) /* YM 2151 */
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w) /* YM 2151 */
- AM_RANGE(0xf000, 0xf000) AM_DEVWRITE_LEGACY("k007232", gbusters_snd_bankswitch_w) /* 007232 bankswitch? */
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(gbusters_snd_bankswitch_w) /* 007232 bankswitch? */
ADDRESS_MAP_END
/***************************************************************************
diff --git a/src/mame/drivers/ginganin.c b/src/mame/drivers/ginganin.c
index 4e953bb6a2d..7fec776e159 100644
--- a/src/mame/drivers/ginganin.c
+++ b/src/mame/drivers/ginganin.c
@@ -245,16 +245,16 @@ static MACHINE_RESET( ginganin )
}
-static WRITE8_DEVICE_HANDLER( ptm_irq )
+WRITE8_MEMBER(ginganin_state::ptm_irq)
{
- cputag_set_input_line(device->machine(), "audiocpu", 0, (data & 1) ? ASSERT_LINE : CLEAR_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, (data & 1) ? ASSERT_LINE : CLEAR_LINE);
}
static const ptm6840_interface ptm_intf =
{
SOUND_CLOCK/2,
{ 0, 0, 0 },
- { DEVCB_HANDLER(ptm_irq), DEVCB_NULL, DEVCB_NULL },
+ { DEVCB_DRIVER_MEMBER(ginganin_state,ptm_irq), DEVCB_NULL, DEVCB_NULL },
DEVCB_NULL
};
diff --git a/src/mame/drivers/gladiatr.c b/src/mame/drivers/gladiatr.c
index 468d33f4e99..16f94f17ffc 100644
--- a/src/mame/drivers/gladiatr.c
+++ b/src/mame/drivers/gladiatr.c
@@ -263,7 +263,7 @@ static MACHINE_RESET( gladiator )
}
/* YM2203 port B handler (output) */
-static WRITE8_DEVICE_HANDLER( gladiator_int_control_w )
+WRITE8_MEMBER(gladiatr_state::gladiator_int_control_w)
{
/* bit 7 : SSRST = sound reset ? */
/* bit 6-1 : N.C. */
@@ -277,12 +277,13 @@ static void gladiator_ym_irq(device_t *device, int irq)
}
/*Sound Functions*/
-static WRITE8_DEVICE_HANDLER( glad_adpcm_w )
+WRITE8_MEMBER(gladiatr_state::glad_adpcm_w)
{
- UINT8 *rom = device->machine().root_device().memregion("audiocpu")->base() + 0x10000;
+ device_t *device = machine().device("msm");
+ UINT8 *rom = machine().root_device().memregion("audiocpu")->base() + 0x10000;
/* bit6 = bank offset */
- device->machine().root_device().membank("bank2")->set_base(rom + ((data & 0x40) ? 0xc000 : 0));
+ machine().root_device().membank("bank2")->set_base(rom + ((data & 0x40) ? 0xc000 : 0));
msm5205_data_w(device,data); /* bit0..3 */
msm5205_reset_w(device,(data>>5)&1); /* bit 5 */
@@ -425,7 +426,7 @@ static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, gladiatr_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( gladiatr_cpu3_map, AS_PROGRAM, 8, gladiatr_state )
- AM_RANGE(0x1000, 0x1fff) AM_DEVWRITE_LEGACY("msm", glad_adpcm_w)
+ AM_RANGE(0x1000, 0x1fff) AM_WRITE(glad_adpcm_w)
AM_RANGE(0x2000, 0x2fff) AM_READ(glad_cpu_sound_command_r)
AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank2")
ADDRESS_MAP_END
@@ -621,9 +622,9 @@ GFXDECODE_END
-static READ8_DEVICE_HANDLER(f1_r)
+READ8_MEMBER(gladiatr_state::f1_r)
{
- return device->machine().rand();
+ return machine().rand();
}
static const ym2203_interface ppking_ym2203_interface =
@@ -631,8 +632,8 @@ static const ym2203_interface ppking_ym2203_interface =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(f1_r),
- DEVCB_HANDLER(f1_r),
+ DEVCB_DRIVER_MEMBER(gladiatr_state,f1_r),
+ DEVCB_DRIVER_MEMBER(gladiatr_state,f1_r),
DEVCB_NULL,
DEVCB_NULL
},
@@ -646,7 +647,7 @@ static const ym2203_interface gladiatr_ym2203_interface =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_INPUT_PORT("DSW3"), /* port B read */
- DEVCB_HANDLER(gladiator_int_control_w), /* port A write */
+ DEVCB_DRIVER_MEMBER(gladiatr_state,gladiator_int_control_w), /* port A write */
DEVCB_NULL,
},
gladiator_ym_irq /* NMI request for 2nd cpu */
diff --git a/src/mame/drivers/goal92.c b/src/mame/drivers/goal92.c
index 7be77af8abb..7a3f4b531f6 100644
--- a/src/mame/drivers/goal92.c
+++ b/src/mame/drivers/goal92.c
@@ -67,9 +67,10 @@ ADDRESS_MAP_END
/* Sound CPU */
-static WRITE8_DEVICE_HANDLER( adpcm_control_w )
+WRITE8_MEMBER(goal92_state::adpcm_control_w)
{
- device->machine().root_device().membank("bank1")->set_entry(data & 0x01);
+ device_t *device = machine().device("msm");
+ machine().root_device().membank("bank1")->set_entry(data & 0x01);
msm5205_reset_w(device, data & 0x08);
}
@@ -82,7 +83,7 @@ WRITE8_MEMBER(goal92_state::adpcm_data_w)
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_LEGACY("msm", adpcm_control_w)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(adpcm_control_w)
AM_RANGE(0xe400, 0xe400) AM_WRITE(adpcm_data_w)
AM_RANGE(0xe800, 0xe801) AM_DEVREADWRITE_LEGACY("ym1", ym2203_r, ym2203_w)
AM_RANGE(0xec00, 0xec01) AM_DEVREADWRITE_LEGACY("ym2", ym2203_r, ym2203_w)
diff --git a/src/mame/drivers/goldstar.c b/src/mame/drivers/goldstar.c
index 608f8136bed..cb818ffbc51 100644
--- a/src/mame/drivers/goldstar.c
+++ b/src/mame/drivers/goldstar.c
@@ -5688,26 +5688,23 @@ static I8255A_INTERFACE( cm_ppi8255_1_intf )
-static WRITE8_DEVICE_HANDLER( system_outputa_w )
+WRITE8_MEMBER(goldstar_state::system_outputa_w)
{
- //goldstar_state *state = device->machine().driver_data<goldstar_state>();
//popmessage("system_outputa_w %02x",data);
}
-static WRITE8_DEVICE_HANDLER( system_outputb_w )
+WRITE8_MEMBER(goldstar_state::system_outputb_w)
{
- //goldstar_state *state = device->machine().driver_data<goldstar_state>();
//popmessage("system_outputb_w %02x",data);
}
-static WRITE8_DEVICE_HANDLER( system_outputc_w )
+WRITE8_MEMBER(goldstar_state::system_outputc_w)
{
- goldstar_state *state = device->machine().driver_data<goldstar_state>();
- state->m_lucky8_nmi_enable = data & 8;
- state->m_unkch_vidreg = data & 2;
+ m_lucky8_nmi_enable = data & 8;
+ m_unkch_vidreg = data & 2;
//popmessage("system_outputc_w %02x",data);
}
@@ -5735,11 +5732,11 @@ static I8255A_INTERFACE( lucky8_ppi8255_1_intf )
static I8255A_INTERFACE( lucky8_ppi8255_2_intf )
{
DEVCB_INPUT_PORT("DSW2"), /* Port A read */
- DEVCB_HANDLER(system_outputa_w), /* Port A write */
+ DEVCB_DRIVER_MEMBER(goldstar_state,system_outputa_w), /* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(system_outputb_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(goldstar_state,system_outputb_w), /* Port B write */
DEVCB_NULL, /* Port C read */
- DEVCB_HANDLER(system_outputc_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(goldstar_state,system_outputc_w) /* Port C write */
};
static I8255A_INTERFACE( kkotnoli_ppi8255_0_intf )
@@ -5813,15 +5810,13 @@ static const ay8910_interface cm_ay8910_config =
DEVCB_NULL
};
-static WRITE8_DEVICE_HANDLER( ay8910_outputa_w )
+WRITE8_MEMBER(goldstar_state::ay8910_outputa_w)
{
- //goldstar_state *state = device->machine().driver_data<goldstar_state>();
//popmessage("ay8910_outputa_w %02x",data);
}
-static WRITE8_DEVICE_HANDLER( ay8910_outputb_w )
+WRITE8_MEMBER(goldstar_state::ay8910_outputb_w)
{
- //goldstar_state *state = device->machine().driver_data<goldstar_state>();
//popmessage("ay8910_outputb_w %02x",data);
}
@@ -5831,8 +5826,8 @@ static const ay8910_interface lucky8_ay8910_config =
AY8910_DEFAULT_LOADS,
DEVCB_INPUT_PORT("DSW3"),
DEVCB_INPUT_PORT("DSW4"),
- DEVCB_HANDLER(ay8910_outputa_w),
- DEVCB_HANDLER(ay8910_outputb_w)
+ DEVCB_DRIVER_MEMBER(goldstar_state,ay8910_outputa_w),
+ DEVCB_DRIVER_MEMBER(goldstar_state,ay8910_outputb_w)
};
static const ay8910_interface ladylinr_ay8910_config =
diff --git a/src/mame/drivers/gotcha.c b/src/mame/drivers/gotcha.c
index 5dc85abd09b..ba531081301 100644
--- a/src/mame/drivers/gotcha.c
+++ b/src/mame/drivers/gotcha.c
@@ -86,8 +86,9 @@ WRITE16_MEMBER(gotcha_state::gotcha_lamps_w)
#endif
}
-static WRITE16_DEVICE_HANDLER( gotcha_oki_bank_w )
+WRITE16_MEMBER(gotcha_state::gotcha_oki_bank_w)
{
+ device_t *device = machine().device("oki");
if (ACCESSING_BITS_8_15)
{
okim6295_device *oki = downcast<okim6295_device *>(device);
@@ -100,7 +101,7 @@ 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)
- AM_RANGE(0x100004, 0x100005) AM_DEVWRITE_LEGACY("oki", gotcha_oki_bank_w)
+ AM_RANGE(0x100004, 0x100005) AM_WRITE(gotcha_oki_bank_w)
AM_RANGE(0x120000, 0x12ffff) AM_RAM
AM_RANGE(0x140000, 0x1405ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_SHARE("spriteram")
diff --git a/src/mame/drivers/gradius3.c b/src/mame/drivers/gradius3.c
index d9b7e485e76..27bac866bb0 100644
--- a/src/mame/drivers/gradius3.c
+++ b/src/mame/drivers/gradius3.c
@@ -142,8 +142,9 @@ WRITE16_MEMBER(gradius3_state::sound_irq_w)
device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
}
-static WRITE8_DEVICE_HANDLER( sound_bank_w )
+WRITE8_MEMBER(gradius3_state::sound_bank_w)
{
+ device_t *device = machine().device("k007232");
int bank_A, bank_B;
/* banks # for the 007232 (chip 1) */
@@ -190,7 +191,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( gradius3_s_map, AS_PROGRAM, 8, gradius3_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
- AM_RANGE(0xf000, 0xf000) AM_DEVWRITE_LEGACY("k007232", sound_bank_w) /* 007232 bankswitch */
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(sound_bank_w) /* 007232 bankswitch */
AM_RANGE(0xf010, 0xf010) AM_READ(soundlatch_byte_r)
AM_RANGE(0xf020, 0xf02d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w)
AM_RANGE(0xf030, 0xf031) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c
index db9900eb18b..05d0dc32f69 100644
--- a/src/mame/drivers/grchamp.c
+++ b/src/mame/drivers/grchamp.c
@@ -413,22 +413,24 @@ READ8_MEMBER(grchamp_state::main_to_sub_comm_r)
*
*************************************/
-static WRITE8_DEVICE_HANDLER( grchamp_portA_0_w )
+WRITE8_MEMBER(grchamp_state::grchamp_portA_0_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, GRCHAMP_A_DATA, data);
}
-static WRITE8_DEVICE_HANDLER( grchamp_portB_0_w )
+WRITE8_MEMBER(grchamp_state::grchamp_portB_0_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, GRCHAMP_B_DATA, 255-data);
}
-static WRITE8_DEVICE_HANDLER( grchamp_portA_2_w )
+WRITE8_MEMBER(grchamp_state::grchamp_portA_2_w)
{
/* A0/A1 modify the output of AY8910 #2 */
/* A7 contributes to the discrete logic hanging off of AY8910 #0 */
}
-static WRITE8_DEVICE_HANDLER( grchamp_portB_2_w )
+WRITE8_MEMBER(grchamp_state::grchamp_portB_2_w)
{
/* B0 connects elsewhere */
}
@@ -447,8 +449,8 @@ static const ay8910_interface ay8910_interface_1 =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_DEVICE_HANDLER("discrete", grchamp_portA_0_w),
- DEVCB_DEVICE_HANDLER("discrete", grchamp_portB_0_w)
+ DEVCB_DRIVER_MEMBER(grchamp_state,grchamp_portA_0_w),
+ DEVCB_DRIVER_MEMBER(grchamp_state,grchamp_portB_0_w)
};
static const ay8910_interface ay8910_interface_3 =
@@ -457,8 +459,8 @@ static const ay8910_interface ay8910_interface_3 =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(grchamp_portA_2_w),
- DEVCB_HANDLER(grchamp_portB_2_w)
+ DEVCB_DRIVER_MEMBER(grchamp_state,grchamp_portA_2_w),
+ DEVCB_DRIVER_MEMBER(grchamp_state,grchamp_portB_2_w)
};
diff --git a/src/mame/drivers/gsword.c b/src/mame/drivers/gsword.c
index 6ac0e1298d1..142d581f4ac 100644
--- a/src/mame/drivers/gsword.c
+++ b/src/mame/drivers/gsword.c
@@ -256,35 +256,34 @@ static INTERRUPT_GEN( gsword_snd_interrupt )
device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_DEVICE_HANDLER( gsword_nmi_set_w )
+WRITE8_MEMBER(gsword_state::gsword_nmi_set_w)
{
- gsword_state *state = device->machine().driver_data<gsword_state>();
/* mame_printf_debug("AY write %02X\n",data);*/
- state->m_protect_hack = (data&0x80) ? 0 : 1;
+ m_protect_hack = (data&0x80) ? 0 : 1;
#if 0
/* An actual circuit isn't known. */
/* write ff,02,ff,fe, 17 x 0d,0f */
- state->m_nmi_enable = ((data>>7) & (data&1) &1) == 0;
+ m_nmi_enable = ((data>>7) & (data&1) &1) == 0;
#else
switch(data)
{
case 0xff:
- state->m_nmi_enable = 0; /* NMI must be disable */
+ m_nmi_enable = 0; /* NMI must be disable */
break;
case 0x02:
- state->m_nmi_enable = 0; /* ANY */
+ m_nmi_enable = 0; /* ANY */
break;
case 0x0d:
- state->m_nmi_enable = 1;
+ m_nmi_enable = 1;
break;
case 0x0f:
- state->m_nmi_enable = 1; /* NMI must be enable */
+ m_nmi_enable = 1; /* NMI must be enable */
break;
case 0xfe:
- state->m_nmi_enable = 1; /* NMI must be enable */
+ m_nmi_enable = 1; /* NMI must be enable */
break;
}
/* bit1= nmi disable , for ram check */
@@ -292,32 +291,31 @@ static WRITE8_DEVICE_HANDLER( gsword_nmi_set_w )
#endif
}
-static WRITE8_DEVICE_HANDLER( gsword_AY8910_control_port_0_w )
+WRITE8_MEMBER(gsword_state::gsword_AY8910_control_port_0_w)
{
- gsword_state *state = device->machine().driver_data<gsword_state>();
+ device_t *device = machine().device("ay1");
ay8910_address_w(device,offset,data);
- state->m_fake8910_0 = data;
+ m_fake8910_0 = data;
}
-static WRITE8_DEVICE_HANDLER( gsword_AY8910_control_port_1_w )
+WRITE8_MEMBER(gsword_state::gsword_AY8910_control_port_1_w)
{
- gsword_state *state = device->machine().driver_data<gsword_state>();
+ device_t *device = machine().device("ay2");
ay8910_address_w(device,offset,data);
- state->m_fake8910_1 = data;
+ m_fake8910_1 = data;
}
-static READ8_DEVICE_HANDLER( gsword_fake_0_r )
+READ8_MEMBER(gsword_state::gsword_fake_0_r)
{
- gsword_state *state = device->machine().driver_data<gsword_state>();
- return state->m_fake8910_0+1;
+ return m_fake8910_0+1;
}
-static READ8_DEVICE_HANDLER( gsword_fake_1_r )
+READ8_MEMBER(gsword_state::gsword_fake_1_r)
{
- gsword_state *state = device->machine().driver_data<gsword_state>();
- return state->m_fake8910_1+1;
+ return m_fake8910_1+1;
}
-static WRITE8_DEVICE_HANDLER( gsword_adpcm_data_w )
+WRITE8_MEMBER(gsword_state::gsword_adpcm_data_w)
{
+ device_t *device = machine().device("msm");
msm5205_data_w (device,data & 0x0f); /* bit 0..3 */
msm5205_reset_w(device,(data>>5)&1); /* bit 5 */
msm5205_vclk_w(device,(data>>4)&1); /* bit 4 */
@@ -365,9 +363,9 @@ static ADDRESS_MAP_START( cpu2_io_map, AS_IO, 8, gsword_state )
AM_RANGE(0x00, 0x01) AM_READWRITE_LEGACY(TAITO8741_2_r,TAITO8741_2_w)
AM_RANGE(0x20, 0x21) AM_READWRITE_LEGACY(TAITO8741_3_r,TAITO8741_3_w)
AM_RANGE(0x40, 0x41) AM_READWRITE_LEGACY(TAITO8741_1_r,TAITO8741_1_w)
- AM_RANGE(0x60, 0x60) AM_DEVREADWRITE_LEGACY("ay1", gsword_fake_0_r, gsword_AY8910_control_port_0_w)
+ AM_RANGE(0x60, 0x60) AM_READWRITE(gsword_fake_0_r, gsword_AY8910_control_port_0_w)
AM_RANGE(0x61, 0x61) AM_DEVREADWRITE_LEGACY("ay1", ay8910_r, ay8910_data_w)
- AM_RANGE(0x80, 0x80) AM_DEVREADWRITE_LEGACY("ay2", gsword_fake_1_r, gsword_AY8910_control_port_1_w)
+ AM_RANGE(0x80, 0x80) AM_READWRITE(gsword_fake_1_r, gsword_AY8910_control_port_1_w)
AM_RANGE(0x81, 0x81) AM_DEVREADWRITE_LEGACY("ay2", ay8910_r, ay8910_data_w)
//
AM_RANGE(0xe0, 0xe0) AM_READNOP /* ?? */
@@ -379,7 +377,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu3_map, AS_PROGRAM, 8, gsword_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x8000) AM_DEVWRITE_LEGACY("msm", gsword_adpcm_data_w)
+ AM_RANGE(0x8000, 0x8000) AM_WRITE(gsword_adpcm_data_w)
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
ADDRESS_MAP_END
@@ -399,9 +397,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( josvolly_cpu2_io_map, AS_IO, 8, gsword_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_DEVREADWRITE_LEGACY("ay1", gsword_fake_0_r, gsword_AY8910_control_port_0_w)
+ AM_RANGE(0x00, 0x00) AM_READWRITE(gsword_fake_0_r, gsword_AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_DEVREADWRITE_LEGACY("ay1", ay8910_r, ay8910_data_w)
- AM_RANGE(0x40, 0x40) AM_DEVREADWRITE_LEGACY("ay2", gsword_fake_1_r, gsword_AY8910_control_port_1_w)
+ AM_RANGE(0x40, 0x40) AM_READWRITE(gsword_fake_1_r, gsword_AY8910_control_port_1_w)
AM_RANGE(0x41, 0x41) AM_DEVREADWRITE_LEGACY("ay2", ay8910_r, ay8910_data_w)
AM_RANGE(0x81, 0x81) AM_WRITE_LEGACY(josvolly_nmi_enable_w)
@@ -648,7 +646,7 @@ static const ay8910_interface ay8910_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(gsword_nmi_set_w), /* portA write */
+ DEVCB_DRIVER_MEMBER(gsword_state,gsword_nmi_set_w), /* portA write */
DEVCB_NULL
};
diff --git a/src/mame/drivers/gyruss.c b/src/mame/drivers/gyruss.c
index 3293acc1c5b..605303a1339 100644
--- a/src/mame/drivers/gyruss.c
+++ b/src/mame/drivers/gyruss.c
@@ -88,15 +88,15 @@ static const int gyruss_timer[10] =
0x00, 0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x0a, 0x0d
};
-static READ8_DEVICE_HANDLER( gyruss_portA_r )
+READ8_MEMBER(gyruss_state::gyruss_portA_r)
{
- gyruss_state *state = device->machine().driver_data<gyruss_state>();
- return gyruss_timer[(state->m_audiocpu->total_cycles() / 1024) % 10];
+ return gyruss_timer[(m_audiocpu->total_cycles() / 1024) % 10];
}
-static WRITE8_DEVICE_HANDLER( gyruss_dac_w )
+WRITE8_MEMBER(gyruss_state::gyruss_dac_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, NODE(16), data);
}
@@ -119,13 +119,15 @@ static void filter_w( device_t *device, int chip, int data )
}
}
-static WRITE8_DEVICE_HANDLER( gyruss_filter0_w )
+WRITE8_MEMBER(gyruss_state::gyruss_filter0_w)
{
+ device_t *device = machine().device("discrete");
filter_w(device, 0, data);
}
-static WRITE8_DEVICE_HANDLER( gyruss_filter1_w )
+WRITE8_MEMBER(gyruss_state::gyruss_filter1_w)
{
+ device_t *device = machine().device("discrete");
filter_w(device, 1, data);
}
@@ -212,7 +214,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( audio_cpu2_io_map, AS_IO, 8, gyruss_state )
AM_RANGE(0x00, 0xff) AM_READ(soundlatch2_byte_r)
- AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE_LEGACY("discrete", gyruss_dac_w)
+ AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_WRITE(gyruss_dac_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(gyruss_irq_clear_w)
ADDRESS_MAP_END
@@ -338,7 +340,7 @@ static const ay8910_interface ay8910_interface_1 =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_DEVICE_HANDLER("discrete", gyruss_filter0_w)
+ DEVCB_DRIVER_MEMBER(gyruss_state,gyruss_filter0_w)
};
static const ay8910_interface ay8910_interface_2 =
@@ -348,14 +350,14 @@ static const ay8910_interface ay8910_interface_2 =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_DEVICE_HANDLER("discrete", gyruss_filter1_w)
+ DEVCB_DRIVER_MEMBER(gyruss_state,gyruss_filter1_w)
};
static const ay8910_interface ay8910_interface_3 =
{
AY8910_DISCRETE_OUTPUT,
{ RES_K(3.3), RES_K(3.3), RES_K(3.3) },
- DEVCB_HANDLER(gyruss_portA_r),
+ DEVCB_DRIVER_MEMBER(gyruss_state,gyruss_portA_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
diff --git a/src/mame/drivers/hcastle.c b/src/mame/drivers/hcastle.c
index 90ead108346..71714bde5aa 100644
--- a/src/mame/drivers/hcastle.c
+++ b/src/mame/drivers/hcastle.c
@@ -63,8 +63,9 @@ ADDRESS_MAP_END
/*****************************************************************************/
-static WRITE8_DEVICE_HANDLER( sound_bank_w )
+WRITE8_MEMBER(hcastle_state::sound_bank_w)
{
+ device_t *device = machine().device("konami1");
int bank_A=(data&0x3);
int bank_B=((data>>2)&0x3);
k007232_set_bank(device, bank_A, bank_B );
@@ -80,7 +81,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, hcastle_state )
AM_RANGE(0x98e0, 0x98ff) AM_DEVREADWRITE_LEGACY("konami2", k051649_test_r, k051649_test_w)
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("konami1", k007232_r, k007232_w)
- AM_RANGE(0xc000, 0xc000) AM_DEVWRITE_LEGACY("konami1", sound_bank_w) /* 7232 bankswitch */
+ AM_RANGE(0xc000, 0xc000) AM_WRITE(sound_bank_w) /* 7232 bankswitch */
AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_byte_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/hexion.c b/src/mame/drivers/hexion.c
index df32ea5ceb7..ee697add7c9 100644
--- a/src/mame/drivers/hexion.c
+++ b/src/mame/drivers/hexion.c
@@ -102,14 +102,14 @@ WRITE8_MEMBER(hexion_state::coincntr_w)
if ((data & 0xdc) != 0x10) popmessage("coincntr %02x",data);
}
-static WRITE_LINE_DEVICE_HANDLER( hexion_irq_ack_w )
+WRITE_LINE_MEMBER(hexion_state::hexion_irq_ack_w)
{
- cputag_set_input_line(device->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
-static WRITE_LINE_DEVICE_HANDLER( hexion_nmi_ack_w )
+WRITE_LINE_MEMBER(hexion_state::hexion_nmi_ack_w)
{
- cputag_set_input_line(device->machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
}
static ADDRESS_MAP_START( hexion_map, AS_PROGRAM, 8, hexion_state )
@@ -215,8 +215,8 @@ static const k053252_interface hexion_k053252_intf =
"screen",
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_LINE(hexion_irq_ack_w),
- DEVCB_LINE(hexion_nmi_ack_w),
+ DEVCB_DRIVER_LINE_MEMBER(hexion_state,hexion_irq_ack_w),
+ DEVCB_DRIVER_LINE_MEMBER(hexion_state,hexion_nmi_ack_w),
0, 0
};
diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c
index b1ec5e1d861..5e34465d23f 100644
--- a/src/mame/drivers/hitme.c
+++ b/src/mame/drivers/hitme.c
@@ -183,27 +183,28 @@ READ8_MEMBER(hitme_state::hitme_port_3_r)
*
*************************************/
-static WRITE8_DEVICE_HANDLER( output_port_0_w )
+WRITE8_MEMBER(hitme_state::output_port_0_w)
{
+ device_t *device = machine().device("discrete");
/*
Note: We compute the timeout time on a write here. Unfortunately, the situation is
kind of weird, because the discrete sound system is also affected by this timeout.
In fact, it is very important that our timing calculation timeout AFTER the sound
system's equivalent computation, or else we will hang notes.
*/
- hitme_state *state = device->machine().driver_data<hitme_state>();
- UINT8 raw_game_speed = state->ioport("R3")->read();
+ UINT8 raw_game_speed = ioport("R3")->read();
double resistance = raw_game_speed * 25000 / 100;
attotime duration = attotime(0, ATTOSECONDS_PER_SECOND * 0.45 * 6.8e-6 * resistance * (data + 1));
- state->m_timeout_time = device->machine().time() + duration;
+ m_timeout_time = machine().time() + duration;
discrete_sound_w(device, HITME_DOWNCOUNT_VAL, data);
discrete_sound_w(device, HITME_OUT0, 1);
}
-static WRITE8_DEVICE_HANDLER( output_port_1_w )
+WRITE8_MEMBER(hitme_state::output_port_1_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, HITME_ENABLE_VAL, data);
discrete_sound_w(device, HITME_OUT1, 1);
}
@@ -234,8 +235,8 @@ static ADDRESS_MAP_START( hitme_map, AS_PROGRAM, 8, hitme_state )
AM_RANGE(0x1700, 0x17ff) AM_READ(hitme_port_3_r)
AM_RANGE(0x1800, 0x18ff) AM_READ_PORT("IN4")
AM_RANGE(0x1900, 0x19ff) AM_READ_PORT("IN5")
- AM_RANGE(0x1d00, 0x1dff) AM_DEVWRITE_LEGACY("discrete", output_port_0_w)
- AM_RANGE(0x1e00, 0x1fff) AM_DEVWRITE_LEGACY("discrete", output_port_1_w)
+ AM_RANGE(0x1d00, 0x1dff) AM_WRITE(output_port_0_w)
+ AM_RANGE(0x1e00, 0x1fff) AM_WRITE(output_port_1_w)
ADDRESS_MAP_END
@@ -246,8 +247,8 @@ static ADDRESS_MAP_START( hitme_portmap, AS_IO, 8, hitme_state )
AM_RANGE(0x17, 0x17) AM_READ(hitme_port_3_r)
AM_RANGE(0x18, 0x18) AM_READ_PORT("IN4")
AM_RANGE(0x19, 0x19) AM_READ_PORT("IN5")
- AM_RANGE(0x1d, 0x1d) AM_DEVWRITE_LEGACY("discrete", output_port_0_w)
- AM_RANGE(0x1e, 0x1f) AM_DEVWRITE_LEGACY("discrete", output_port_1_w)
+ AM_RANGE(0x1d, 0x1d) AM_WRITE(output_port_0_w)
+ AM_RANGE(0x1e, 0x1f) AM_WRITE(output_port_1_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/hnayayoi.c b/src/mame/drivers/hnayayoi.c
index e54450cebd9..aa97c9375ef 100644
--- a/src/mame/drivers/hnayayoi.c
+++ b/src/mame/drivers/hnayayoi.c
@@ -67,23 +67,27 @@ WRITE8_MEMBER(hnayayoi_state::keyboard_w)
}
-static WRITE8_DEVICE_HANDLER( adpcm_data_w )
+WRITE8_MEMBER(hnayayoi_state::adpcm_data_w)
{
+ device_t *device = machine().device("msm");
msm5205_data_w(device, data);
}
-static WRITE8_DEVICE_HANDLER( adpcm_vclk_w )
+WRITE8_MEMBER(hnayayoi_state::adpcm_vclk_w)
{
+ device_t *device = machine().device("msm");
msm5205_vclk_w(device, data & 1);
}
-static WRITE8_DEVICE_HANDLER( adpcm_reset_w )
+WRITE8_MEMBER(hnayayoi_state::adpcm_reset_w)
{
+ device_t *device = machine().device("msm");
msm5205_reset_w(device, data & 1);
}
-static WRITE8_DEVICE_HANDLER( adpcm_reset_inv_w )
+WRITE8_MEMBER(hnayayoi_state::adpcm_reset_inv_w)
{
+ device_t *device = machine().device("msm");
msm5205_reset_w(device, ~data & 1);
}
@@ -99,13 +103,13 @@ static ADDRESS_MAP_START( hnayayoi_io_map, AS_IO, 8, hnayayoi_state )
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("ymsnd", ym2203_w)
AM_RANGE(0x02, 0x03) AM_DEVREAD_LEGACY("ymsnd", ym2203_r)
AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW3")
- AM_RANGE(0x06, 0x06) AM_DEVWRITE_LEGACY("msm", adpcm_data_w)
+ AM_RANGE(0x06, 0x06) AM_WRITE(adpcm_data_w)
// AM_RANGE(0x08, 0x08) AM_WRITENOP // CRT Controller
// AM_RANGE(0x09, 0x09) AM_WRITENOP // CRT Controller
AM_RANGE(0x0a, 0x0a) AM_WRITE(dynax_blitter_rev1_start_w)
AM_RANGE(0x0c, 0x0c) AM_WRITE(dynax_blitter_rev1_clear_w)
- AM_RANGE(0x23, 0x23) AM_DEVWRITE_LEGACY("msm", adpcm_vclk_w)
- AM_RANGE(0x24, 0x24) AM_DEVWRITE_LEGACY("msm", adpcm_reset_w)
+ AM_RANGE(0x23, 0x23) AM_WRITE(adpcm_vclk_w)
+ AM_RANGE(0x24, 0x24) AM_WRITE(adpcm_reset_w)
AM_RANGE(0x40, 0x40) AM_WRITE(keyboard_w)
AM_RANGE(0x41, 0x41) AM_READ(keyboard_0_r)
AM_RANGE(0x42, 0x42) AM_READ(keyboard_1_r)
@@ -121,13 +125,13 @@ static ADDRESS_MAP_START( hnfubuki_map, AS_PROGRAM, 8, hnayayoi_state )
AM_RANGE(0xff00, 0xff01) AM_DEVWRITE_LEGACY("ymsnd", ym2203_w)
AM_RANGE(0xff02, 0xff03) AM_DEVREAD_LEGACY("ymsnd", ym2203_r)
AM_RANGE(0xff04, 0xff04) AM_READ_PORT("DSW3")
- AM_RANGE(0xff06, 0xff06) AM_DEVWRITE_LEGACY("msm", adpcm_data_w)
+ AM_RANGE(0xff06, 0xff06) AM_WRITE(adpcm_data_w)
// AM_RANGE(0xff08, 0xff08) AM_WRITENOP // CRT Controller
// AM_RANGE(0xff09, 0xff09) AM_WRITENOP // CRT Controller
AM_RANGE(0xff0a, 0xff0a) AM_WRITE(dynax_blitter_rev1_start_w)
AM_RANGE(0xff0c, 0xff0c) AM_WRITE(dynax_blitter_rev1_clear_w)
- AM_RANGE(0xff23, 0xff23) AM_DEVWRITE_LEGACY("msm", adpcm_vclk_w)
- AM_RANGE(0xff24, 0xff24) AM_DEVWRITE_LEGACY("msm", adpcm_reset_inv_w)
+ AM_RANGE(0xff23, 0xff23) AM_WRITE(adpcm_vclk_w)
+ AM_RANGE(0xff24, 0xff24) AM_WRITE(adpcm_reset_inv_w)
AM_RANGE(0xff40, 0xff40) AM_WRITE(keyboard_w)
AM_RANGE(0xff41, 0xff41) AM_READ(keyboard_0_r)
AM_RANGE(0xff42, 0xff42) AM_READ(keyboard_1_r)
@@ -147,7 +151,7 @@ static ADDRESS_MAP_START( untoucha_io_map, AS_IO, 8, hnayayoi_state )
AM_RANGE(0x10, 0x10) AM_DEVWRITE_LEGACY("ymsnd", ym2203_control_port_w)
AM_RANGE(0x11, 0x11) AM_DEVREAD_LEGACY("ymsnd", ym2203_status_port_r)
// AM_RANGE(0x12, 0x12) AM_WRITENOP // CRT Controller
- AM_RANGE(0x13, 0x13) AM_DEVWRITE_LEGACY("msm", adpcm_data_w)
+ AM_RANGE(0x13, 0x13) AM_WRITE(adpcm_data_w)
AM_RANGE(0x14, 0x14) AM_READ_PORT("COIN")
AM_RANGE(0x15, 0x15) AM_READ(keyboard_1_r)
AM_RANGE(0x16, 0x16) AM_READ(keyboard_0_r) // bit 7 = blitter busy flag
@@ -156,8 +160,8 @@ static ADDRESS_MAP_START( untoucha_io_map, AS_IO, 8, hnayayoi_state )
AM_RANGE(0x1a, 0x1f) AM_WRITE(dynax_blitter_rev1_param_w)
AM_RANGE(0x20, 0x20) AM_WRITE(dynax_blitter_rev1_clear_w)
AM_RANGE(0x28, 0x28) AM_WRITE(dynax_blitter_rev1_start_w)
- AM_RANGE(0x31, 0x31) AM_DEVWRITE_LEGACY("msm", adpcm_vclk_w)
- AM_RANGE(0x32, 0x32) AM_DEVWRITE_LEGACY("msm", adpcm_reset_inv_w)
+ AM_RANGE(0x31, 0x31) AM_WRITE(adpcm_vclk_w)
+ AM_RANGE(0x32, 0x32) AM_WRITE(adpcm_reset_inv_w)
AM_RANGE(0x50, 0x50) AM_DEVWRITE_LEGACY("ymsnd", ym2203_write_port_w)
AM_RANGE(0x51, 0x51) AM_DEVREAD_LEGACY("ymsnd", ym2203_read_port_r)
// AM_RANGE(0x52, 0x52) AM_WRITENOP // CRT Controller
diff --git a/src/mame/drivers/homerun.c b/src/mame/drivers/homerun.c
index 3e9f75cb0f3..6015208b737 100644
--- a/src/mame/drivers/homerun.c
+++ b/src/mame/drivers/homerun.c
@@ -22,33 +22,30 @@ Todo :
#include "includes/homerun.h"
-static WRITE8_DEVICE_HANDLER(pa_w)
+WRITE8_MEMBER(homerun_state::pa_w)
{
- homerun_state *state = device->machine().driver_data<homerun_state>();
- state->m_xpa = data;
+ m_xpa = data;
}
-static WRITE8_DEVICE_HANDLER(pb_w)
+WRITE8_MEMBER(homerun_state::pb_w)
{
- homerun_state *state = device->machine().driver_data<homerun_state>();
- state->m_xpb = data;
+ m_xpb = data;
}
-static WRITE8_DEVICE_HANDLER(pc_w)
+WRITE8_MEMBER(homerun_state::pc_w)
{
- homerun_state *state = device->machine().driver_data<homerun_state>();
- state->m_xpc = data;
+ m_xpc = data;
}
static I8255A_INTERFACE( ppi8255_intf )
{
DEVCB_NULL, /* Port A read */
- DEVCB_HANDLER(pa_w), /* Port A write */
+ DEVCB_DRIVER_MEMBER(homerun_state,pa_w), /* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(pb_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(homerun_state,pb_w), /* Port B write */
DEVCB_NULL, /* Port C read */
- DEVCB_HANDLER(pc_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(homerun_state,pc_w) /* Port C write */
};
diff --git a/src/mame/drivers/iqblock.c b/src/mame/drivers/iqblock.c
index 3918d684c93..a9748d1212b 100644
--- a/src/mame/drivers/iqblock.c
+++ b/src/mame/drivers/iqblock.c
@@ -99,16 +99,15 @@ READ8_MEMBER(iqblock_state::extrarom_r)
}
-static WRITE8_DEVICE_HANDLER( port_C_w )
+WRITE8_MEMBER(iqblock_state::port_C_w)
{
- iqblock_state *state = device->machine().driver_data<iqblock_state>();
/* bit 4 unknown; it is pulsed at the end of every NMI */
/* bit 5 seems to be 0 during screen redraw */
- state->m_videoenable = data & 0x20;
+ m_videoenable = data & 0x20;
/* bit 6 is coin counter */
- coin_counter_w(device->machine(), 0,data & 0x40);
+ coin_counter_w(machine(), 0,data & 0x40);
/* bit 7 could be a second coin counter, but coin 2 doesn't seem to work... */
}
@@ -120,7 +119,7 @@ static I8255A_INTERFACE( ppi8255_intf )
DEVCB_INPUT_PORT("P2"), /* Port B read */
DEVCB_NULL, /* Port B write */
DEVCB_INPUT_PORT("EXTRA"), /* Port C read */
- DEVCB_HANDLER(port_C_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(iqblock_state,port_C_w) /* Port C write */
};
diff --git a/src/mame/drivers/ironhors.c b/src/mame/drivers/ironhors.c
index f331cddb462..4e3bde87de0 100644
--- a/src/mame/drivers/ironhors.c
+++ b/src/mame/drivers/ironhors.c
@@ -43,8 +43,9 @@ WRITE8_MEMBER(ironhors_state::ironhors_sh_irqtrigger_w)
device_set_input_line_and_vector(m_soundcpu, 0, HOLD_LINE, 0xff);
}
-static WRITE8_DEVICE_HANDLER( ironhors_filter_w )
+WRITE8_MEMBER(ironhors_state::ironhors_filter_w)
{
+ device_t *device = machine().device("disc_ih");
discrete_sound_w(device, NODE_11, (data & 0x04) >> 2);
discrete_sound_w(device, NODE_12, (data & 0x02) >> 1);
discrete_sound_w(device, NODE_13, (data & 0x01) >> 0);
@@ -348,7 +349,7 @@ static const ym2203_interface ym2203_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_DEVICE_HANDLER("disc_ih", ironhors_filter_w),
+ DEVCB_DRIVER_MEMBER(ironhors_state,ironhors_filter_w),
DEVCB_NULL
},
NULL
@@ -438,11 +439,10 @@ static TIMER_DEVICE_CALLBACK( farwest_irq )
}
}
-static READ8_DEVICE_HANDLER( farwest_soundlatch_r )
+READ8_MEMBER(ironhors_state::farwest_soundlatch_r)
{
- ironhors_state *state = device->machine().driver_data<ironhors_state>();
- return state->soundlatch_byte_r(*state->m_soundcpu->memory().space(AS_PROGRAM), 0);
+ return soundlatch_byte_r(*m_soundcpu->memory().space(AS_PROGRAM), 0);
}
static const ym2203_interface farwest_ym2203_config =
@@ -451,8 +451,8 @@ static const ym2203_interface farwest_ym2203_config =
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
- DEVCB_HANDLER(farwest_soundlatch_r),
- DEVCB_DEVICE_HANDLER("disc_ih", ironhors_filter_w),
+ DEVCB_DRIVER_MEMBER(ironhors_state,farwest_soundlatch_r),
+ DEVCB_DRIVER_MEMBER(ironhors_state,ironhors_filter_w),
DEVCB_NULL
},
NULL
diff --git a/src/mame/drivers/itech32.c b/src/mame/drivers/itech32.c
index 88fd4203b27..91e20591330 100644
--- a/src/mame/drivers/itech32.c
+++ b/src/mame/drivers/itech32.c
@@ -692,9 +692,8 @@ READ8_MEMBER(itech32_state::sound_data_buffer_r)
*
*************************************/
-static WRITE8_DEVICE_HANDLER( drivedge_portb_out )
+WRITE8_MEMBER(itech32_state::drivedge_portb_out)
{
- address_space *space = device->machine().device("maincpu")->memory().space(AS_PROGRAM);
// logerror("PIA port B write = %02x\n", data);
/* bit 0 controls the fan light */
@@ -703,30 +702,29 @@ static WRITE8_DEVICE_HANDLER( drivedge_portb_out )
/* bit 4 controls the ticket dispenser */
/* bit 5 controls the coin counter */
/* bit 6 controls the diagnostic sound LED */
- set_led_status(space->machine(), 1, data & 0x01);
- set_led_status(space->machine(), 2, data & 0x02);
- set_led_status(space->machine(), 3, data & 0x04);
- device->machine().device<ticket_dispenser_device>("ticket")->write(*device->machine().memory().first_space(), 0, (data & 0x10) << 3);
- coin_counter_w(space->machine(), 0, (data & 0x20) >> 5);
+ set_led_status(machine(), 1, data & 0x01);
+ set_led_status(machine(), 2, data & 0x02);
+ set_led_status(machine(), 3, data & 0x04);
+ machine().device<ticket_dispenser_device>("ticket")->write(*machine().memory().first_space(), 0, (data & 0x10) << 3);
+ coin_counter_w(machine(), 0, (data & 0x20) >> 5);
}
-static WRITE8_DEVICE_HANDLER( drivedge_turbo_light )
+WRITE8_MEMBER(itech32_state::drivedge_turbo_light)
{
- set_led_status(device->machine(), 0, data);
+ set_led_status(machine(), 0, data);
}
-static WRITE8_DEVICE_HANDLER( pia_portb_out )
+WRITE8_MEMBER(itech32_state::pia_portb_out)
{
- address_space *space = device->machine().device("maincpu")->memory().space(AS_PROGRAM);
// logerror("PIA port B write = %02x\n", data);
/* bit 4 controls the ticket dispenser */
/* bit 5 controls the coin counter */
/* bit 6 controls the diagnostic sound LED */
- device->machine().device<ticket_dispenser_device>("ticket")->write(*device->machine().memory().first_space(), 0, (data & 0x10) << 3);
- coin_counter_w(space->machine(), 0, (data & 0x20) >> 5);
+ machine().device<ticket_dispenser_device>("ticket")->write(*machine().memory().first_space(), 0, (data & 0x10) << 3);
+ coin_counter_w(machine(), 0, (data & 0x20) >> 5);
}
@@ -741,7 +739,7 @@ static const via6522_interface via_interface =
{
/*inputs : A/B */ DEVCB_NULL, DEVCB_NULL,
/*inputs : CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
- /*outputs: A/B */ DEVCB_NULL, DEVCB_HANDLER(pia_portb_out),
+ /*outputs: A/B */ DEVCB_NULL, DEVCB_DRIVER_MEMBER(itech32_state,pia_portb_out),
/*outputs: CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
/*irq */ DEVCB_CPU_INPUT_LINE("soundcpu", M6809_FIRQ_LINE)
};
@@ -751,8 +749,8 @@ static const via6522_interface drivedge_via_interface =
{
/*inputs : A/B */ DEVCB_NULL, DEVCB_NULL,
/*inputs : CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
- /*outputs: A/B */ DEVCB_NULL, DEVCB_HANDLER(drivedge_portb_out),
- /*outputs: CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_HANDLER(drivedge_turbo_light),
+ /*outputs: A/B */ DEVCB_NULL, DEVCB_DRIVER_MEMBER(itech32_state,drivedge_portb_out),
+ /*outputs: CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(itech32_state,drivedge_turbo_light),
/*irq */ DEVCB_CPU_INPUT_LINE("soundcpu", M6809_FIRQ_LINE)
};
@@ -859,16 +857,6 @@ WRITE32_MEMBER(itech32_state::int1_ack32_w)
int1_ack_w(space, offset, data, mem_mask);
}
-static WRITE32_DEVICE_HANDLER( timekeeper_32be_w )
-{
- write32be_with_write8_device_handler( timekeeper_w, device, offset, data, mem_mask );
-}
-
-static READ32_DEVICE_HANDLER( timekeeper_32be_r )
-{
- return read32be_with_read8_device_handler( timekeeper_r, device, offset, mem_mask );
-}
-
/*************************************
@@ -4085,7 +4073,7 @@ static DRIVER_INIT( wcbowln ) /* PIC 16C54 labeled as ITBWL-3 */
static void install_timekeeper(running_machine &machine)
{
device_t *device = machine.device("m48t02");
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(*device, 0x681000, 0x6817ff, FUNC(timekeeper_32be_r), FUNC(timekeeper_32be_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(*device, 0x681000, 0x6817ff, FUNC(timekeeper_r), FUNC(timekeeper_w), 0xffffffff);
}
static DRIVER_INIT( wcbowlt ) /* PIC 16C54 labeled as ITBWL-3 */
diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c
index ab787e7c461..1ede765ce0c 100644
--- a/src/mame/drivers/itech8.c
+++ b/src/mame/drivers/itech8.c
@@ -525,7 +525,7 @@
*
*************************************/
-static WRITE8_DEVICE_HANDLER( pia_porta_out );
+
static const pia6821_interface pia_interface =
@@ -536,7 +536,7 @@ static const pia6821_interface pia_interface =
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
- DEVCB_HANDLER(pia_porta_out), /* port A out */
+ DEVCB_DRIVER_MEMBER(itech8_state,pia_porta_out), /* port A out */
DEVCB_DRIVER_MEMBER(itech8_state, pia_portb_out), /* port B out */
DEVCB_NULL, /* line CA2 out */
DEVCB_NULL, /* port CB2 out */
@@ -738,11 +738,10 @@ CUSTOM_INPUT_MEMBER(itech8_state::special_r)
*
*************************************/
-static WRITE8_DEVICE_HANDLER( pia_porta_out )
+WRITE8_MEMBER(itech8_state::pia_porta_out)
{
- itech8_state *state = device->machine().driver_data<itech8_state>();
logerror("PIA port A write = %02x\n", data);
- state->m_pia_porta_data = data;
+ m_pia_porta_data = data;
}
@@ -760,18 +759,17 @@ WRITE8_MEMBER(itech8_state::pia_portb_out)
}
-static WRITE8_DEVICE_HANDLER( ym2203_portb_out )
+WRITE8_MEMBER(itech8_state::ym2203_portb_out)
{
- itech8_state *state = device->machine().driver_data<itech8_state>();
logerror("YM2203 port B write = %02x\n", data);
/* bit 0 provides feedback to the main CPU */
/* bit 5 controls the coin counter */
/* bit 6 controls the diagnostic sound LED */
/* bit 7 controls the ticket dispenser */
- state->m_pia_portb_data = data;
- device->machine().device<ticket_dispenser_device>("ticket")->write(*device->machine().memory().first_space(), 0, data & 0x80);
- coin_counter_w(device->machine(), 0, (data & 0x20) >> 5);
+ m_pia_portb_data = data;
+ machine().device<ticket_dispenser_device>("ticket")->write(*machine().memory().first_space(), 0, data & 0x80);
+ coin_counter_w(machine(), 0, (data & 0x20) >> 5);
}
@@ -1648,7 +1646,7 @@ static const ym2203_interface ym2203_config =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(ym2203_portb_out)
+ DEVCB_DRIVER_MEMBER(itech8_state,ym2203_portb_out)
},
generate_sound_irq
};
@@ -1662,7 +1660,7 @@ static const ym2608_interface ym2608b_config =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(ym2203_portb_out),
+ DEVCB_DRIVER_MEMBER(itech8_state,ym2203_portb_out),
},
generate_sound_irq
};
diff --git a/src/mame/drivers/jack.c b/src/mame/drivers/jack.c
index 8f6b62d7586..2e808651fcc 100644
--- a/src/mame/drivers/jack.c
+++ b/src/mame/drivers/jack.c
@@ -53,13 +53,11 @@ The 2 ay-8910 read ports are responsible for reading the sound commands.
*
*************************************/
-static READ8_DEVICE_HANDLER( timer_r )
+READ8_MEMBER(jack_state::timer_r)
{
- jack_state *state = device->machine().driver_data<jack_state>();
-
/* wrong! there should be no need for timer_rate, the same function */
/* should work for both games */
- return state->m_audiocpu->total_cycles() / state->m_timer_rate;
+ return m_audiocpu->total_cycles() / m_timer_rate;
}
@@ -777,7 +775,7 @@ static const ay8910_interface ay8910_config =
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_DEVICE_HANDLER("audiocpu", timer_r)
+ DEVCB_DRIVER_MEMBER(jack_state,timer_r)
};
diff --git a/src/mame/drivers/jailbrek.c b/src/mame/drivers/jailbrek.c
index 8658af1ffb0..5e7907c0c5f 100644
--- a/src/mame/drivers/jailbrek.c
+++ b/src/mame/drivers/jailbrek.c
@@ -117,13 +117,15 @@ static INTERRUPT_GEN( jb_interrupt_nmi )
}
-static READ8_DEVICE_HANDLER( jailbrek_speech_r )
+READ8_MEMBER(jailbrek_state::jailbrek_speech_r)
{
+ device_t *device = machine().device("vlm");
return (vlm5030_bsy(device) ? 1 : 0);
}
-static WRITE8_DEVICE_HANDLER( jailbrek_speech_w )
+WRITE8_MEMBER(jailbrek_state::jailbrek_speech_w)
{
+ device_t *device = machine().device("vlm");
/* bit 0 could be latch direction like in yiear */
vlm5030_st(device, (data >> 1) & 1);
vlm5030_rst(device, (data >> 2) & 1);
@@ -148,9 +150,9 @@ static ADDRESS_MAP_START( jailbrek_map, AS_PROGRAM, 8, jailbrek_state )
AM_RANGE(0x3301, 0x3301) AM_READ_PORT("P1")
AM_RANGE(0x3302, 0x3302) AM_READ_PORT("P2")
AM_RANGE(0x3303, 0x3303) AM_READ_PORT("DSW1")
- AM_RANGE(0x4000, 0x4000) AM_DEVWRITE_LEGACY("vlm", jailbrek_speech_w) /* speech pins */
+ AM_RANGE(0x4000, 0x4000) AM_WRITE(jailbrek_speech_w) /* speech pins */
AM_RANGE(0x5000, 0x5000) AM_DEVWRITE_LEGACY("vlm", vlm5030_data_w) /* speech data */
- AM_RANGE(0x6000, 0x6000) AM_DEVREAD_LEGACY("vlm", jailbrek_speech_r)
+ AM_RANGE(0x6000, 0x6000) AM_READ(jailbrek_speech_r)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/jpmimpct.c b/src/mame/drivers/jpmimpct.c
index e1b76c9862f..697a1d506ed 100644
--- a/src/mame/drivers/jpmimpct.c
+++ b/src/mame/drivers/jpmimpct.c
@@ -463,8 +463,9 @@ READ16_MEMBER(jpmimpct_state::inputs1_r)
* Sound control
*
*************************************/
-static WRITE16_DEVICE_HANDLER( volume_w )
+WRITE16_MEMBER(jpmimpct_state::volume_w)
{
+ device_t *device = machine().device("upd");
if (ACCESSING_BITS_0_7)
{
upd7759_set_bank_base(device, 0x20000 * ((data >> 1) & 3));
@@ -472,8 +473,9 @@ static WRITE16_DEVICE_HANDLER( volume_w )
}
}
-static WRITE16_DEVICE_HANDLER( upd7759_w )
+WRITE16_MEMBER(jpmimpct_state::upd7759_w)
{
+ device_t *device = machine().device("upd");
if (ACCESSING_BITS_0_7)
{
upd7759_port_w(device, 0, data);
@@ -482,8 +484,9 @@ static WRITE16_DEVICE_HANDLER( upd7759_w )
}
}
-static READ16_DEVICE_HANDLER( upd7759_r )
+READ16_MEMBER(jpmimpct_state::upd7759_r)
{
+ device_t *device = machine().device("upd");
if (ACCESSING_BITS_0_7)
{
return upd7759_busy_r(device);
@@ -596,9 +599,9 @@ static ADDRESS_MAP_START( m68k_program_map, AS_PROGRAM, 16, jpmimpct_state )
AM_RANGE(0x004800e0, 0x004800e1) AM_WRITE(unk_w)
AM_RANGE(0x004801dc, 0x004801dd) AM_READ(unk_r)
AM_RANGE(0x004801de, 0x004801df) AM_READ(unk_r)
- AM_RANGE(0x00480080, 0x00480081) AM_DEVWRITE_LEGACY("upd", upd7759_w)
- AM_RANGE(0x00480082, 0x00480083) AM_DEVWRITE_LEGACY("upd", volume_w)
- AM_RANGE(0x00480084, 0x00480085) AM_DEVREAD_LEGACY("upd", upd7759_r)
+ AM_RANGE(0x00480080, 0x00480081) AM_WRITE(upd7759_w)
+ AM_RANGE(0x00480082, 0x00480083) AM_WRITE(volume_w)
+ AM_RANGE(0x00480084, 0x00480085) AM_READ(upd7759_r)
AM_RANGE(0x004801e0, 0x004801ff) AM_READWRITE(duart_2_r, duart_2_w)
AM_RANGE(0x00800000, 0x00800007) AM_READWRITE(m68k_tms_r, m68k_tms_w)
AM_RANGE(0x00c00000, 0x00cfffff) AM_ROM
@@ -864,9 +867,8 @@ Thanks to Tony Friery and JPeMU for I/O routines and documentation.
*
*************************************/
-static READ8_DEVICE_HANDLER( hopper_b_r )
+READ8_MEMBER(jpmimpct_state::hopper_b_r)
{
- jpmimpct_state *state = device->machine().driver_data<jpmimpct_state>();
int retval;
// B0 = 100p Hopper Out Verif
@@ -877,13 +879,13 @@ static READ8_DEVICE_HANDLER( hopper_b_r )
// Always return hoppers full
retval=0xed; // 1110 1101
- if (!state->m_hopinhibit)//if inhibited, we don't change these flags
+ if (!m_hopinhibit)//if inhibited, we don't change these flags
{
- if (state->m_hopper[0] && state->m_motor[0]) //&& ((state->m_hopflag1 & 0x20)==0x20))
+ if (m_hopper[0] && m_motor[0]) //&& ((m_hopflag1 & 0x20)==0x20))
{//100p
retval &= ~0x01;
}
- if (((state->m_hopper[1] && state->m_motor[1]) || (state->m_hopper[2] && state->m_slidesout))) //&& ((state->m_hopflag2 & 0x20)==0x20))
+ if (((m_hopper[1] && m_motor[1]) || (m_hopper[2] && m_slidesout))) //&& ((m_hopflag2 & 0x20)==0x20))
{
retval &= ~0x08;
}
@@ -892,9 +894,8 @@ static READ8_DEVICE_HANDLER( hopper_b_r )
return retval;
}
-static READ8_DEVICE_HANDLER( hopper_c_r )
+READ8_MEMBER(jpmimpct_state::hopper_c_r)
{
- jpmimpct_state *state = device->machine().driver_data<jpmimpct_state>();
int retval;
// C0-C2 = Alpha
@@ -910,20 +911,20 @@ static READ8_DEVICE_HANDLER( hopper_c_r )
// retval &= ~0x20;
// Which hoppers are present
- if (state->m_hopper[0])
+ if (m_hopper[0])
{
retval &= ~0x40;
}
- if (state->m_hopper[1])
+ if (m_hopper[1])
{
retval &= ~0x10;
}
- if (!state->m_hopinhibit)
+ if (!m_hopinhibit)
{
- if ((state->m_slidesout==1) && ((state->m_hopper[2]==0)))
+ if ((m_slidesout==1) && ((m_hopper[2]==0)))
{
- state->m_slidesout=0;
+ m_slidesout=0;
retval &= ~0x80;
}
}
@@ -931,32 +932,30 @@ static READ8_DEVICE_HANDLER( hopper_c_r )
return retval;
}
-static WRITE8_DEVICE_HANDLER( payen_a_w )
+WRITE8_MEMBER(jpmimpct_state::payen_a_w)
{
- jpmimpct_state *state = device->machine().driver_data<jpmimpct_state>();
- state->m_motor[0] = (data & 0x01);
- state->m_payen = (data & 0x10);
- state->m_slidesout = (data & 0x10);
- state->m_motor[1] = (data & 0x40);
- state->m_hopinhibit = (data & 0x80);
+ m_motor[0] = (data & 0x01);
+ m_payen = (data & 0x10);
+ m_slidesout = (data & 0x10);
+ m_motor[1] = (data & 0x40);
+ m_hopinhibit = (data & 0x80);
}
-static WRITE8_DEVICE_HANDLER( display_c_w )
+WRITE8_MEMBER(jpmimpct_state::display_c_w)
{
- jpmimpct_state *state = device->machine().driver_data<jpmimpct_state>();
if(data & 0x04)
{
- state->m_alpha_data_line = ((data >> 1) & 1);
- if (state->m_alpha_clock != (data & 1))
+ m_alpha_data_line = ((data >> 1) & 1);
+ if (m_alpha_clock != (data & 1))
{
- if (!state->m_alpha_clock)//falling edge
+ if (!m_alpha_clock)//falling edge
{
- ROC10937_shift_data(0, state->m_alpha_data_line?0:1);
+ ROC10937_shift_data(0, m_alpha_data_line?0:1);
}
}
- state->m_alpha_clock = (data & 1);
+ m_alpha_clock = (data & 1);
}
else
{
@@ -969,11 +968,11 @@ static WRITE8_DEVICE_HANDLER( display_c_w )
static I8255_INTERFACE (ppi8255_intf)
{
DEVCB_NULL,
- DEVCB_HANDLER(payen_a_w),
- DEVCB_HANDLER(hopper_b_r),
+ DEVCB_DRIVER_MEMBER(jpmimpct_state,payen_a_w),
+ DEVCB_DRIVER_MEMBER(jpmimpct_state,hopper_b_r),
DEVCB_NULL,
- DEVCB_HANDLER(hopper_c_r),
- DEVCB_HANDLER(display_c_w)
+ DEVCB_DRIVER_MEMBER(jpmimpct_state,hopper_c_r),
+ DEVCB_DRIVER_MEMBER(jpmimpct_state,display_c_w)
};
static MACHINE_START( impctawp )
@@ -1226,9 +1225,9 @@ static ADDRESS_MAP_START( awp68k_program_map, AS_PROGRAM, 16, jpmimpct_state )
AM_RANGE(0x00480034, 0x00480035) AM_READ(ump_r)
AM_RANGE(0x00480040, 0x00480041) AM_READ(optos_r)
AM_RANGE(0x00480060, 0x00480067) AM_DEVREADWRITE8("ppi8255", i8255_device, read, write,0x00ff)
- AM_RANGE(0x00480080, 0x00480081) AM_DEVWRITE_LEGACY("upd", upd7759_w)
- AM_RANGE(0x00480082, 0x00480083) AM_DEVWRITE_LEGACY("upd",volume_w)
- AM_RANGE(0x00480084, 0x00480085) AM_DEVREAD_LEGACY("upd", upd7759_r)
+ AM_RANGE(0x00480080, 0x00480081) AM_WRITE(upd7759_w)
+ AM_RANGE(0x00480082, 0x00480083) AM_WRITE(volume_w)
+ AM_RANGE(0x00480084, 0x00480085) AM_READ(upd7759_r)
AM_RANGE(0x00480086, 0x0048009f) AM_READ(prot_1_r)
AM_RANGE(0x004800a0, 0x004800af) AM_READWRITE(jpmio_r, jpmioawp_w)
// AM_RANGE(0x004800b0, 0x004800df) AM_READ(prot_1_r)
diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c
index a47ea242902..f8ef1263b08 100644
--- a/src/mame/drivers/kaneko16.c
+++ b/src/mame/drivers/kaneko16.c
@@ -314,15 +314,35 @@ WRITE16_MEMBER(kaneko16_state::kaneko16_soundlatch_w)
/* Two identically mapped YM2149 chips */
-static READ16_DEVICE_HANDLER( kaneko16_YM2149_r )
+READ16_MEMBER(kaneko16_state::kaneko16_ay1_YM2149_r)
{
+ device_t *device = machine().device("ay1");
/* Each 2149 register is mapped to a different address */
ay8910_address_w(device,0,offset);
return ay8910_r(device,0);
}
-static WRITE16_DEVICE_HANDLER( kaneko16_YM2149_w )
+WRITE16_MEMBER(kaneko16_state::kaneko16_ay1_YM2149_w)
{
+ device_t *device = machine().device("ay1");
+ /* Each 2149 register is mapped to a different address */
+ ay8910_address_w(device,0,offset);
+ /* The registers are mapped to odd addresses, except one! */
+ if (ACCESSING_BITS_0_7) ay8910_data_w(device,0, data & 0xff);
+ else ay8910_data_w(device,0,(data >> 8) & 0xff);
+}
+
+READ16_MEMBER(kaneko16_state::kaneko16_ay2_YM2149_r)
+{
+ device_t *device = machine().device("ay2");
+ /* Each 2149 register is mapped to a different address */
+ ay8910_address_w(device,0,offset);
+ return ay8910_r(device,0);
+}
+
+WRITE16_MEMBER(kaneko16_state::kaneko16_ay2_YM2149_w)
+{
+ device_t *device = machine().device("ay2");
/* Each 2149 register is mapped to a different address */
ay8910_address_w(device,0,offset);
/* The registers are mapped to odd addresses, except one! */
@@ -383,8 +403,8 @@ static ADDRESS_MAP_START( berlwall, AS_PROGRAM, 16, kaneko16_state )
// AM_RANGE(0x680006, 0x680007) AM_READ_PORT("UNK")
AM_RANGE(0x700000, 0x700001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout
AM_RANGE(0x780000, 0x780001) AM_READ(watchdog_reset16_r) // Watchdog
- AM_RANGE(0x800000, 0x80001f) AM_DEVREADWRITE_LEGACY("ay1", kaneko16_YM2149_r, kaneko16_YM2149_w) // Sound
- AM_RANGE(0x800200, 0x80021f) AM_DEVREADWRITE_LEGACY("ay2", kaneko16_YM2149_r, kaneko16_YM2149_w)
+ AM_RANGE(0x800000, 0x80001f) AM_READWRITE(kaneko16_ay1_YM2149_r, kaneko16_ay1_YM2149_w) // Sound
+ AM_RANGE(0x800200, 0x80021f) AM_READWRITE(kaneko16_ay1_YM2149_r, kaneko16_ay1_YM2149_w)
AM_RANGE(0x8003fe, 0x8003ff) AM_NOP // for OKI when accessed as .l
AM_RANGE(0x800400, 0x800401) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0xc00000, 0xc00fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_SHARE("vram.1") // Layers
@@ -403,22 +423,23 @@ ADDRESS_MAP_END
/* The two YM2149 chips are only used when entering high score initials, and */
/* when the game is fully completed. Overkill??? */
-static WRITE16_DEVICE_HANDLER( bakubrkr_oki_bank_sw )
+WRITE16_MEMBER(kaneko16_state::bakubrkr_oki_bank_sw)
{
+ device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7) {
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base(0x40000 * (data & 0x7) );
- logerror("%s:Selecting OKI bank %02X\n",device->machine().describe_context(),data&0xff);
+ logerror("%s:Selecting OKI bank %02X\n",machine().describe_context(),data&0xff);
}
}
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_LEGACY("ay1", kaneko16_YM2149_r) // Sound
- AM_RANGE(0x400000, 0x40001d) AM_DEVWRITE_LEGACY("ay1", kaneko16_YM2149_w)
- AM_RANGE(0x40001e, 0x40001f) AM_DEVWRITE_LEGACY("oki", bakubrkr_oki_bank_sw) // OKI bank Switch
- AM_RANGE(0x400200, 0x40021f) AM_DEVREADWRITE_LEGACY("ay2", kaneko16_YM2149_r,kaneko16_YM2149_w) // Sound
+ AM_RANGE(0x400000, 0x40001f) AM_READ(kaneko16_ay1_YM2149_r) // Sound
+ AM_RANGE(0x400000, 0x40001d) AM_WRITE(kaneko16_ay2_YM2149_w)
+ AM_RANGE(0x40001e, 0x40001f) AM_WRITE(bakubrkr_oki_bank_sw) // OKI bank Switch
+ AM_RANGE(0x400200, 0x40021f) AM_READWRITE(kaneko16_ay1_YM2149_r,kaneko16_ay2_YM2149_w) // Sound
AM_RANGE(0x400400, 0x400401) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) //
AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_SHARE("vram.1") // Layers 0
AM_RANGE(0x501000, 0x501fff) AM_RAM_WRITE(kaneko16_vram_0_w) AM_SHARE("vram.0") //
@@ -474,8 +495,9 @@ ADDRESS_MAP_END
Blood Warrior
***************************************************************************/
-static WRITE16_DEVICE_HANDLER( bloodwar_oki_0_bank_w )
+WRITE16_MEMBER(kaneko16_state::bloodwar_oki_0_bank_w)
{
+ device_t *device = machine().device("oki1");
if (ACCESSING_BITS_0_7)
{
okim6295_device *oki = downcast<okim6295_device *>(device);
@@ -484,8 +506,9 @@ static WRITE16_DEVICE_HANDLER( bloodwar_oki_0_bank_w )
}
}
-static WRITE16_DEVICE_HANDLER( bloodwar_oki_1_bank_w )
+WRITE16_MEMBER(kaneko16_state::bloodwar_oki_1_bank_w)
{
+ device_t *device = machine().device("oki2");
if (ACCESSING_BITS_0_7)
{
okim6295_device *oki = downcast<okim6295_device *>(device);
@@ -537,8 +560,8 @@ static ADDRESS_MAP_START( bloodwar, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable)
AM_RANGE(0xd00000, 0xd00001) AM_READ(toybox_mcu_status_r)
- AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE_LEGACY("oki1", bloodwar_oki_0_bank_w)
- AM_RANGE(0xe80000, 0xe80001) AM_DEVWRITE_LEGACY("oki2", bloodwar_oki_1_bank_w)
+ AM_RANGE(0xe00000, 0xe00001) AM_WRITE(bloodwar_oki_0_bank_w)
+ AM_RANGE(0xe80000, 0xe80001) AM_WRITE(bloodwar_oki_1_bank_w)
ADDRESS_MAP_END
@@ -546,23 +569,25 @@ ADDRESS_MAP_END
Bonk's Adventure
***************************************************************************/
-static WRITE16_DEVICE_HANDLER( bonkadv_oki_0_bank_w )
+WRITE16_MEMBER(kaneko16_state::bonkadv_oki_0_bank_w)
{
+ device_t *device = machine().device("oki1");
if (ACCESSING_BITS_0_7)
{
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base(0x40000 * (data & 0xF));
- logerror("%s: OKI0 bank %08X\n",device->machine().describe_context(),data);
+ logerror("%s: OKI0 bank %08X\n",machine().describe_context(),data);
}
}
-static WRITE16_DEVICE_HANDLER( bonkadv_oki_1_bank_w )
+WRITE16_MEMBER(kaneko16_state::bonkadv_oki_1_bank_w)
{
+ device_t *device = machine().device("oki2");
if (ACCESSING_BITS_0_7)
{
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base(0x40000 * data );
- logerror("%s: OKI1 bank %08X\n",device->machine().describe_context(),data);
+ logerror("%s: OKI1 bank %08X\n",machine().describe_context(),data);
}
}
@@ -599,8 +624,8 @@ static ADDRESS_MAP_START( bonkadv, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable)
AM_RANGE(0xd00000, 0xd00001) AM_READ(toybox_mcu_status_r)
- AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE_LEGACY("oki1", bonkadv_oki_0_bank_w)
- AM_RANGE(0xe80000, 0xe80001) AM_DEVWRITE_LEGACY("oki2", bonkadv_oki_1_bank_w)
+ AM_RANGE(0xe00000, 0xe00001) AM_WRITE(bonkadv_oki_0_bank_w)
+ AM_RANGE(0xe80000, 0xe80001) AM_WRITE(bonkadv_oki_1_bank_w)
ADDRESS_MAP_END
@@ -623,8 +648,9 @@ READ16_MEMBER(kaneko16_state::gtmr_wheel_r)
}
}
-static WRITE16_DEVICE_HANDLER( gtmr_oki_0_bank_w )
+WRITE16_MEMBER(kaneko16_state::gtmr_oki_0_bank_w)
{
+ device_t *device = machine().device("oki1");
if (ACCESSING_BITS_0_7)
{
okim6295_device *oki = downcast<okim6295_device *>(device);
@@ -633,8 +659,9 @@ static WRITE16_DEVICE_HANDLER( gtmr_oki_0_bank_w )
}
}
-static WRITE16_DEVICE_HANDLER( gtmr_oki_1_bank_w )
+WRITE16_MEMBER(kaneko16_state::gtmr_oki_1_bank_w)
{
+ device_t *device = machine().device("oki2");
if (ACCESSING_BITS_0_7)
{
okim6295_device *oki = downcast<okim6295_device *>(device);
@@ -689,8 +716,8 @@ static ADDRESS_MAP_START( gtmr_map, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0xd00000, 0xd00001) AM_READ(toybox_mcu_status_r)
- AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE_LEGACY("oki1", gtmr_oki_0_bank_w) // Samples Bankswitching
- AM_RANGE(0xe80000, 0xe80001) AM_DEVWRITE_LEGACY("oki2", gtmr_oki_1_bank_w)
+ AM_RANGE(0xe00000, 0xe00001) AM_WRITE(gtmr_oki_0_bank_w) // Samples Bankswitching
+ AM_RANGE(0xe80000, 0xe80001) AM_WRITE(gtmr_oki_1_bank_w)
ADDRESS_MAP_END
/***************************************************************************
@@ -764,8 +791,8 @@ static ADDRESS_MAP_START( gtmr2_map, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0xd00000, 0xd00001) AM_READ(toybox_mcu_status_r)
- AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE_LEGACY("oki1", gtmr_oki_0_bank_w) // Samples Bankswitching
- AM_RANGE(0xe80000, 0xe80001) AM_DEVWRITE_LEGACY("oki2", gtmr_oki_1_bank_w)
+ AM_RANGE(0xe00000, 0xe00001) AM_WRITE(gtmr_oki_0_bank_w) // Samples Bankswitching
+ AM_RANGE(0xe80000, 0xe80001) AM_WRITE(gtmr_oki_1_bank_w)
ADDRESS_MAP_END
/***************************************************************************
@@ -775,8 +802,8 @@ ADDRESS_MAP_END
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_LEGACY("ay1", kaneko16_YM2149_r, kaneko16_YM2149_w) // Sound
- AM_RANGE(0x400200, 0x40021f) AM_DEVREADWRITE_LEGACY("ay2", kaneko16_YM2149_r, kaneko16_YM2149_w)
+ AM_RANGE(0x400000, 0x40001f) AM_READWRITE(kaneko16_ay1_YM2149_r, kaneko16_ay1_YM2149_w) // Sound
+ AM_RANGE(0x400200, 0x40021f) AM_READWRITE(kaneko16_ay2_YM2149_r, kaneko16_ay1_YM2149_w)
AM_RANGE(0x400400, 0x400401) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette
AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_SHARE("vram.1") // Layers 0
@@ -1781,11 +1808,11 @@ static const ay8910_interface ay8910_intf_dsw =
DEVCB_NULL,
};
-static WRITE8_DEVICE_HANDLER( kaneko16_eeprom_reset_w )
+WRITE8_MEMBER(kaneko16_state::kaneko16_eeprom_reset_w)
{
// FIXME: the device line cannot be directly put in the interface due to inverse value!
// we might want to define a "reversed" set_cs_line handler
- eeprom_device *eeprom = device->machine().device<eeprom_device>("eeprom");
+ eeprom_device *eeprom = machine().device<eeprom_device>("eeprom");
// reset line asserted: reset.
eeprom->set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE );
}
@@ -1797,7 +1824,7 @@ static const ay8910_interface ay8910_intf_eeprom =
DEVCB_DEVICE_LINE_MEMBER("eeprom", eeprom_device, read_bit), /* inputs A: 0,EEPROM bit read */
DEVCB_NULL, /* inputs B */
DEVCB_NULL, /* outputs A */
- DEVCB_HANDLER(kaneko16_eeprom_reset_w) /* outputs B: 0,EEPROM reset */
+ DEVCB_DRIVER_MEMBER(kaneko16_state,kaneko16_eeprom_reset_w) /* outputs B: 0,EEPROM reset */
};
diff --git a/src/mame/drivers/kchamp.c b/src/mame/drivers/kchamp.c
index ed4a505a1f6..4299bff0501 100644
--- a/src/mame/drivers/kchamp.c
+++ b/src/mame/drivers/kchamp.c
@@ -85,11 +85,11 @@ WRITE8_MEMBER(kchamp_state::sound_reset_w)
device_set_input_line(m_audiocpu, INPUT_LINE_RESET, PULSE_LINE);
}
-static WRITE8_DEVICE_HANDLER( sound_control_w )
+WRITE8_MEMBER(kchamp_state::sound_control_w)
{
- kchamp_state *state = device->machine().driver_data<kchamp_state>();
+ device_t *device = machine().device("msm");
msm5205_reset_w(device, !(data & 1));
- state->m_sound_nmi_enable = ((data >> 1) & 1);
+ m_sound_nmi_enable = ((data >> 1) & 1);
}
WRITE8_MEMBER(kchamp_state::sound_command_w)
@@ -135,7 +135,7 @@ static ADDRESS_MAP_START( kchampvs_sound_io_map, AS_IO, 8, kchamp_state )
AM_RANGE(0x01, 0x01) AM_READ(soundlatch_byte_r)
AM_RANGE(0x02, 0x03) AM_DEVWRITE_LEGACY("ay2", ay8910_data_address_w)
AM_RANGE(0x04, 0x04) AM_WRITE(sound_msm_w)
- AM_RANGE(0x05, 0x05) AM_DEVWRITE_LEGACY("msm", sound_control_w)
+ AM_RANGE(0x05, 0x05) AM_WRITE(sound_control_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/kickgoal.c b/src/mame/drivers/kickgoal.c
index e7f1b5717e9..5328bb34846 100644
--- a/src/mame/drivers/kickgoal.c
+++ b/src/mame/drivers/kickgoal.c
@@ -149,8 +149,9 @@ static void kickgoal_play(okim6295_device *oki, int melody, int data)
}
}
-WRITE16_DEVICE_HANDLER( kickgoal_snd_w )
+WRITE16_MEMBER(kickgoal_state::kickgoal_snd_w)
{
+ device_t *device = machine().device("oki");
okim6295_device *oki = downcast<okim6295_device *>(device);
if (ACCESSING_BITS_0_7)
{
@@ -158,8 +159,8 @@ WRITE16_DEVICE_HANDLER( kickgoal_snd_w )
if (data >= 0x40) {
if (data == 0xfe) {
oki->write(0,0x40); /* Stop playing the melody */
- state->m_melody = 0x00;
- state->m_melody_loop = 0x00;
+ m_melody = 0x00;
+ m_melody_loop = 0x00;
}
else {
logerror("Unknown command (%02x) sent to the Sound controller\n",data);
@@ -203,10 +204,10 @@ WRITE16_DEVICE_HANDLER( kickgoal_snd_w )
}
#endif
-static WRITE16_DEVICE_HANDLER( actionhw_snd_w )
+WRITE16_MEMBER(kickgoal_state::actionhw_snd_w)
{
- kickgoal_state *state = device->machine().driver_data<kickgoal_state>();
- logerror("%s: Writing %04x to Sound CPU - mask %04x\n",device->machine().describe_context(),data,mem_mask);
+ device_t *device = machine().device("oki");
+ logerror("%s: Writing %04x to Sound CPU - mask %04x\n",machine().describe_context(),data,mem_mask);
if (!ACCESSING_BITS_0_7)
data >>= 8;
@@ -220,72 +221,72 @@ static WRITE16_DEVICE_HANDLER( actionhw_snd_w )
case 0xff: oki->set_bank_base((3 * 0x40000)); break;
case 0x78:
oki->write_command(data);
- state->m_snd_sam[0] = 00; state->m_snd_sam[1]= 00; state->m_snd_sam[2] = 00; state->m_snd_sam[3] = 00;
+ m_snd_sam[0] = 00; m_snd_sam[1]= 00; m_snd_sam[2] = 00; m_snd_sam[3] = 00;
break;
default:
- if (state->m_snd_new) /* Play new sample */
+ if (m_snd_new) /* Play new sample */
{
- if ((data & 0x80) && (state->m_snd_sam[3] != state->m_snd_new))
+ if ((data & 0x80) && (m_snd_sam[3] != m_snd_new))
{
- logerror("About to play sample %02x at vol %02x\n", state->m_snd_new, data);
+ logerror("About to play sample %02x at vol %02x\n", m_snd_new, data);
if ((oki->read_status() & 0x08) != 0x08)
{
- logerror("Playing sample %02x at vol %02x\n", state->m_snd_new, data);
- oki->write_command(state->m_snd_new);
+ logerror("Playing sample %02x at vol %02x\n", m_snd_new, data);
+ oki->write_command(m_snd_new);
oki->write_command(data);
}
- state->m_snd_new = 00;
+ m_snd_new = 00;
}
- if ((data & 0x40) && (state->m_snd_sam[2] != state->m_snd_new))
+ if ((data & 0x40) && (m_snd_sam[2] != m_snd_new))
{
- logerror("About to play sample %02x at vol %02x\n", state->m_snd_new, data);
+ logerror("About to play sample %02x at vol %02x\n", m_snd_new, data);
if ((oki->read_status() & 0x04) != 0x04)
{
- logerror("Playing sample %02x at vol %02x\n", state->m_snd_new, data);
- oki->write_command(state->m_snd_new);
+ logerror("Playing sample %02x at vol %02x\n", m_snd_new, data);
+ oki->write_command(m_snd_new);
oki->write_command(data);
}
- state->m_snd_new = 00;
+ m_snd_new = 00;
}
- if ((data & 0x20) && (state->m_snd_sam[1] != state->m_snd_new))
+ if ((data & 0x20) && (m_snd_sam[1] != m_snd_new))
{
- logerror("About to play sample %02x at vol %02x\n", state->m_snd_new, data);
+ logerror("About to play sample %02x at vol %02x\n", m_snd_new, data);
if ((oki->read_status() & 0x02) != 0x02)
{
- logerror("Playing sample %02x at vol %02x\n", state->m_snd_new, data);
- oki->write_command(state->m_snd_new);
+ logerror("Playing sample %02x at vol %02x\n", m_snd_new, data);
+ oki->write_command(m_snd_new);
oki->write_command(data);
}
- state->m_snd_new = 00;
+ m_snd_new = 00;
}
- if ((data & 0x10) && (state->m_snd_sam[0] != state->m_snd_new))
+ if ((data & 0x10) && (m_snd_sam[0] != m_snd_new))
{
- logerror("About to play sample %02x at vol %02x\n", state->m_snd_new, data);
+ logerror("About to play sample %02x at vol %02x\n", m_snd_new, data);
if ((oki->read_status() & 0x01) != 0x01)
{
- logerror("Playing sample %02x at vol %02x\n", state->m_snd_new, data);
- oki->write_command(state->m_snd_new);
+ logerror("Playing sample %02x at vol %02x\n", m_snd_new, data);
+ oki->write_command(m_snd_new);
oki->write_command(data);
}
- state->m_snd_new = 00;
+ m_snd_new = 00;
}
break;
}
else if (data > 0x80) /* New sample command */
{
logerror("Next sample %02x\n", data);
- state->m_snd_new = data;
+ m_snd_new = data;
break;
}
else /* Turn a channel off */
{
logerror("Turning channel %02x off\n", data);
oki->write_command(data);
- if (data & 0x40) state->m_snd_sam[3] = 00;
- if (data & 0x20) state->m_snd_sam[2] = 00;
- if (data & 0x10) state->m_snd_sam[1] = 00;
- if (data & 0x08) state->m_snd_sam[0] = 00;
- state->m_snd_new = 00;
+ if (data & 0x40) m_snd_sam[3] = 00;
+ if (data & 0x20) m_snd_sam[2] = 00;
+ if (data & 0x10) m_snd_sam[1] = 00;
+ if (data & 0x08) m_snd_sam[0] = 00;
+ m_snd_new = 00;
break;
}
}
@@ -480,11 +481,11 @@ WRITE16_MEMBER(kickgoal_state::kickgoal_eeprom_w)
static ADDRESS_MAP_START( kickgoal_program_map, AS_PROGRAM, 16, kickgoal_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
-/// AM_RANGE(0x30001e, 0x30001f) AM_DEVWRITE_LEGACY("oki", kickgoal_snd_w)
+/// AM_RANGE(0x30001e, 0x30001f) AM_WRITE(kickgoal_snd_w)
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("P1_P2")
AM_RANGE(0x800002, 0x800003) AM_READ_PORT("SYSTEM")
/// AM_RANGE(0x800004, 0x800005) AM_WRITE(soundlatch_word_w)
- AM_RANGE(0x800004, 0x800005) AM_DEVWRITE_LEGACY("oki", actionhw_snd_w)
+ AM_RANGE(0x800004, 0x800005) AM_WRITE(actionhw_snd_w)
AM_RANGE(0x900000, 0x900005) AM_WRITE(kickgoal_eeprom_w)
AM_RANGE(0x900006, 0x900007) AM_READ(kickgoal_eeprom_r)
AM_RANGE(0xa00000, 0xa03fff) AM_RAM_WRITE(kickgoal_fgram_w) AM_SHARE("fgram") /* FG Layer */
diff --git a/src/mame/drivers/kncljoe.c b/src/mame/drivers/kncljoe.c
index 0365a948b06..ab1238401fa 100644
--- a/src/mame/drivers/kncljoe.c
+++ b/src/mame/drivers/kncljoe.c
@@ -62,36 +62,35 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, kncljoe_state )
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static WRITE8_DEVICE_HANDLER( m6803_port1_w )
+WRITE8_MEMBER(kncljoe_state::m6803_port1_w)
{
- kncljoe_state *state = device->machine().driver_data<kncljoe_state>();
- state->m_port1 = data;
+ m_port1 = data;
}
-static WRITE8_DEVICE_HANDLER( m6803_port2_w )
+WRITE8_MEMBER(kncljoe_state::m6803_port2_w)
{
- kncljoe_state *state = device->machine().driver_data<kncljoe_state>();
+ device_t *device = machine().device("aysnd");
/* write latch */
- if ((state->m_port2 & 0x01) && !(data & 0x01))
+ if ((m_port2 & 0x01) && !(data & 0x01))
{
/* control or data port? */
- if (state->m_port2 & 0x08)
- ay8910_data_address_w(device, state->m_port2 >> 2, state->m_port1);
+ if (m_port2 & 0x08)
+ ay8910_data_address_w(device, m_port2 >> 2, m_port1);
}
- state->m_port2 = data;
+ m_port2 = data;
}
-static READ8_DEVICE_HANDLER( m6803_port1_r )
+READ8_MEMBER(kncljoe_state::m6803_port1_r)
{
- kncljoe_state *state = device->machine().driver_data<kncljoe_state>();
+ device_t *device = machine().device("aysnd");
- if (state->m_port2 & 0x08)
+ if (m_port2 & 0x08)
return ay8910_r(device, 0);
return 0xff;
}
-static READ8_DEVICE_HANDLER( m6803_port2_r )
+READ8_MEMBER(kncljoe_state::m6803_port2_r)
{
return 0;
}
@@ -101,7 +100,7 @@ WRITE8_MEMBER(kncljoe_state::sound_irq_ack_w)
device_set_input_line(m_soundcpu, 0, CLEAR_LINE);
}
-static WRITE8_DEVICE_HANDLER(unused_w)
+WRITE8_MEMBER(kncljoe_state::unused_w)
{
//unused - no MSM on the pcb
}
@@ -114,8 +113,8 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, kncljoe_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, kncljoe_state )
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_DEVREADWRITE_LEGACY("aysnd", m6803_port1_r, m6803_port1_w)
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_DEVREADWRITE_LEGACY("aysnd", m6803_port2_r, m6803_port2_w)
+ AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READWRITE(m6803_port1_r, m6803_port1_w)
+ AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READWRITE(m6803_port2_r, m6803_port2_w)
ADDRESS_MAP_END
@@ -238,7 +237,7 @@ static const ay8910_interface ay8910_config =
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(unused_w)
+ DEVCB_DRIVER_MEMBER(kncljoe_state,unused_w)
};
static INTERRUPT_GEN (sound_nmi)
diff --git a/src/mame/drivers/ksayakyu.c b/src/mame/drivers/ksayakyu.c
index 8f538067c7d..29f6422daef 100644
--- a/src/mame/drivers/ksayakyu.c
+++ b/src/mame/drivers/ksayakyu.c
@@ -168,17 +168,17 @@ static INPUT_PORTS_START( ksayakyu )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
INPUT_PORTS_END
-static WRITE8_DEVICE_HANDLER(dummy1_w)
+WRITE8_MEMBER(ksayakyu_state::dummy1_w)
{
// printf("%02x 1\n", data);
}
-static WRITE8_DEVICE_HANDLER(dummy2_w)
+WRITE8_MEMBER(ksayakyu_state::dummy2_w)
{
// printf("%02x 2\n", data);
}
-static WRITE8_DEVICE_HANDLER(dummy3_w)
+WRITE8_MEMBER(ksayakyu_state::dummy3_w)
{
// printf("%02x 3\n", data);
}
@@ -191,7 +191,7 @@ static const ay8910_interface ay8910_interface_1 =
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(dummy1_w)
+ DEVCB_DRIVER_MEMBER(ksayakyu_state,dummy1_w)
};
static const ay8910_interface ay8910_interface_2 =
@@ -200,8 +200,8 @@ static const ay8910_interface ay8910_interface_2 =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(dummy2_w),
- DEVCB_HANDLER(dummy3_w)
+ DEVCB_DRIVER_MEMBER(ksayakyu_state,dummy2_w),
+ DEVCB_DRIVER_MEMBER(ksayakyu_state,dummy3_w)
};
static const gfx_layout charlayout =
diff --git a/src/mame/drivers/ladyfrog.c b/src/mame/drivers/ladyfrog.c
index 138e5b08975..05da3199054 100644
--- a/src/mame/drivers/ladyfrog.c
+++ b/src/mame/drivers/ladyfrog.c
@@ -102,7 +102,7 @@ WRITE8_MEMBER(ladyfrog_state::nmi_enable_w)
}
}
-static WRITE8_DEVICE_HANDLER(unk_w)
+WRITE8_MEMBER(ladyfrog_state::unk_w)
{
}
@@ -113,8 +113,8 @@ static const ay8910_interface ay8910_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(unk_w),
- DEVCB_HANDLER(unk_w)
+ DEVCB_DRIVER_MEMBER(ladyfrog_state,unk_w),
+ DEVCB_DRIVER_MEMBER(ladyfrog_state,unk_w)
};
static const msm5232_interface msm5232_config =
diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c
index 8b051288f9d..a0912a67b0c 100644
--- a/src/mame/drivers/laserbat.c
+++ b/src/mame/drivers/laserbat.c
@@ -571,76 +571,71 @@ static const sn76477_interface laserbat_sn76477_interface =
/* Cat'N Mouse sound ***********************************/
-static WRITE_LINE_DEVICE_HANDLER( zaccaria_irq0a )
+WRITE_LINE_MEMBER(laserbat_state::zaccaria_irq0a)
{
- laserbat_state *laserbat = device->machine().driver_data<laserbat_state>();
- device_set_input_line(laserbat->m_audiocpu, INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE);
}
-static WRITE_LINE_DEVICE_HANDLER( zaccaria_irq0b )
+WRITE_LINE_MEMBER(laserbat_state::zaccaria_irq0b)
{
- laserbat_state *laserbat = device->machine().driver_data<laserbat_state>();
- device_set_input_line(laserbat->m_audiocpu, 0, state ? ASSERT_LINE : CLEAR_LINE);
+ device_set_input_line(m_audiocpu, 0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static READ8_DEVICE_HANDLER( zaccaria_port0a_r )
+READ8_MEMBER(laserbat_state::zaccaria_port0a_r)
{
- laserbat_state *state = device->machine().driver_data<laserbat_state>();
- device_t *ay = (state->m_active_8910 == 0) ? state->m_ay1 : state->m_ay2;
+ device_t *ay = (m_active_8910 == 0) ? m_ay1 : m_ay2;
return ay8910_r(ay, 0);
}
-static WRITE8_DEVICE_HANDLER( zaccaria_port0a_w )
+WRITE8_MEMBER(laserbat_state::zaccaria_port0a_w)
{
- laserbat_state *state = device->machine().driver_data<laserbat_state>();
- state->m_port0a = data;
+ m_port0a = data;
}
-static WRITE8_DEVICE_HANDLER( zaccaria_port0b_w )
+WRITE8_MEMBER(laserbat_state::zaccaria_port0b_w)
{
- laserbat_state *state = device->machine().driver_data<laserbat_state>();
/* bit 1 goes to 8910 #0 BDIR pin */
- if ((state->m_last_port0b & 0x02) == 0x02 && (data & 0x02) == 0x00)
+ if ((m_last_port0b & 0x02) == 0x02 && (data & 0x02) == 0x00)
{
/* bit 0 goes to the 8910 #0 BC1 pin */
- ay8910_data_address_w(state->m_ay1, state->m_last_port0b >> 0, state->m_port0a);
+ ay8910_data_address_w(m_ay1, m_last_port0b >> 0, m_port0a);
}
- else if ((state->m_last_port0b & 0x02) == 0x00 && (data & 0x02) == 0x02)
+ else if ((m_last_port0b & 0x02) == 0x00 && (data & 0x02) == 0x02)
{
/* bit 0 goes to the 8910 #0 BC1 pin */
- if (state->m_last_port0b & 0x01)
- state->m_active_8910 = 0;
+ if (m_last_port0b & 0x01)
+ m_active_8910 = 0;
}
/* bit 3 goes to 8910 #1 BDIR pin */
- if ((state->m_last_port0b & 0x08) == 0x08 && (data & 0x08) == 0x00)
+ if ((m_last_port0b & 0x08) == 0x08 && (data & 0x08) == 0x00)
{
/* bit 2 goes to the 8910 #1 BC1 pin */
- ay8910_data_address_w(state->m_ay2, state->m_last_port0b >> 2, state->m_port0a);
+ ay8910_data_address_w(m_ay2, m_last_port0b >> 2, m_port0a);
}
- else if ((state->m_last_port0b & 0x08) == 0x00 && (data & 0x08) == 0x08)
+ else if ((m_last_port0b & 0x08) == 0x00 && (data & 0x08) == 0x08)
{
/* bit 2 goes to the 8910 #1 BC1 pin */
- if (state->m_last_port0b & 0x04)
- state->m_active_8910 = 1;
+ if (m_last_port0b & 0x04)
+ m_active_8910 = 1;
}
- state->m_last_port0b = data;
+ m_last_port0b = data;
}
static const pia6821_interface pia_intf =
{
- DEVCB_HANDLER(zaccaria_port0a_r), /* port A in */
+ DEVCB_DRIVER_MEMBER(laserbat_state,zaccaria_port0a_r), /* port A in */
DEVCB_NULL, /* port B in */
DEVCB_NULL, /* line CA1 in */
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
- DEVCB_HANDLER(zaccaria_port0a_w), /* port A out */
- DEVCB_HANDLER(zaccaria_port0b_w), /* port B out */
+ DEVCB_DRIVER_MEMBER(laserbat_state,zaccaria_port0a_w), /* port A out */
+ DEVCB_DRIVER_MEMBER(laserbat_state,zaccaria_port0b_w), /* port B out */
DEVCB_NULL, /* line CA2 out */
DEVCB_NULL, /* port CB2 out */
- DEVCB_LINE(zaccaria_irq0a), /* IRQA */
- DEVCB_LINE(zaccaria_irq0b) /* IRQB */
+ DEVCB_DRIVER_LINE_MEMBER(laserbat_state,zaccaria_irq0a), /* IRQA */
+ DEVCB_DRIVER_LINE_MEMBER(laserbat_state,zaccaria_irq0b) /* IRQB */
};
static const ay8910_interface ay8910_config =
diff --git a/src/mame/drivers/legionna.c b/src/mame/drivers/legionna.c
index d7373da40af..07539df8ad1 100644
--- a/src/mame/drivers/legionna.c
+++ b/src/mame/drivers/legionna.c
@@ -223,8 +223,9 @@ static ADDRESS_MAP_START( cupsocbl_mem, AS_PROGRAM, 16, legionna_state )
ADDRESS_MAP_END
-static WRITE8_DEVICE_HANDLER( okim_rombank_w )
+WRITE8_MEMBER(legionna_state::okim_rombank_w)
{
+ device_t *device = machine().device("oki");
// popmessage("%08x",0x40000 * (data & 0x07));
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * (data & 0x7));
}
@@ -232,7 +233,7 @@ static WRITE8_DEVICE_HANDLER( okim_rombank_w )
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_LEGACY("oki", okim_rombank_w)
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(okim_rombank_w)
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/lockon.c b/src/mame/drivers/lockon.c
index fc42aa6c938..5b5899653ff 100644
--- a/src/mame/drivers/lockon.c
+++ b/src/mame/drivers/lockon.c
@@ -421,14 +421,14 @@ static void ym2203_irq(device_t *device, int irq)
device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE );
}
-static WRITE8_DEVICE_HANDLER( ym2203_out_b )
+WRITE8_MEMBER(lockon_state::ym2203_out_b)
{
- coin_counter_w(device->machine(), 0, data & 0x80);
- coin_counter_w(device->machine(), 1, data & 0x40);
- coin_counter_w(device->machine(), 2, data & 0x20);
+ coin_counter_w(machine(), 0, data & 0x80);
+ coin_counter_w(machine(), 1, data & 0x40);
+ coin_counter_w(machine(), 2, data & 0x20);
/* 'Lock-On' lamp */
- set_led_status(device->machine(), 1, !(data & 0x10));
+ set_led_status(machine(), 1, !(data & 0x10));
}
static const ym2203_interface ym2203_config =
@@ -439,7 +439,7 @@ static const ym2203_interface ym2203_config =
DEVCB_INPUT_PORT("YM2203"),
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(ym2203_out_b),
+ DEVCB_DRIVER_MEMBER(lockon_state,ym2203_out_b),
},
ym2203_irq
};
diff --git a/src/mame/drivers/lordgun.c b/src/mame/drivers/lordgun.c
index 289c4b366ed..d348e77ed63 100644
--- a/src/mame/drivers/lordgun.c
+++ b/src/mame/drivers/lordgun.c
@@ -134,32 +134,31 @@ static DRIVER_INIT( alienchac )
***************************************************************************/
-static WRITE8_DEVICE_HANDLER(fake_w)
+WRITE8_MEMBER(lordgun_state::fake_w)
{
}
-static WRITE8_DEVICE_HANDLER(fake2_w)
+WRITE8_MEMBER(lordgun_state::fake2_w)
{
// popmessage("%02x",data);
}
-static WRITE8_DEVICE_HANDLER( lordgun_eeprom_w )
+WRITE8_MEMBER(lordgun_state::lordgun_eeprom_w)
{
- lordgun_state *state = device->machine().driver_data<lordgun_state>();
- eeprom_device *eeprom = device->machine().device<eeprom_device>("eeprom");
+ eeprom_device *eeprom = machine().device<eeprom_device>("eeprom");
int i;
if (data & ~0xfd)
{
// popmessage("EE: %02x", data);
- logerror("%s: Unknown EEPROM bit written %02X\n",device->machine().describe_context(),data);
+ logerror("%s: Unknown EEPROM bit written %02X\n",machine().describe_context(),data);
}
- coin_counter_w(device->machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 0, data & 0x01);
// Update light guns positions
for (i = 0; i < 2; i++)
- if ( (data & (0x04 << i)) && !(state->m_old & (0x04 << i)) )
- lordgun_update_gun(device->machine(), i);
+ if ( (data & (0x04 << i)) && !(m_old & (0x04 << i)) )
+ lordgun_update_gun(machine(), i);
// latch the bit
eeprom->write_bit(data & 0x40);
@@ -170,27 +169,26 @@ static WRITE8_DEVICE_HANDLER( lordgun_eeprom_w )
// clock line asserted: write latch or select next bit to read
eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE );
- state->m_whitescreen = data & 0x80;
+ m_whitescreen = data & 0x80;
- state->m_old = data;
+ m_old = data;
}
-static WRITE8_DEVICE_HANDLER( aliencha_eeprom_w )
+WRITE8_MEMBER(lordgun_state::aliencha_eeprom_w)
{
- lordgun_state *state = device->machine().driver_data<lordgun_state>();
- eeprom_device *eeprom = device->machine().device<eeprom_device>("eeprom");
+ eeprom_device *eeprom = machine().device<eeprom_device>("eeprom");
if (~data & ~0xf8)
{
// popmessage("EE: %02x", data);
- logerror("%s: Unknown EEPROM bit written %02X\n",device->machine().describe_context(),data);
+ logerror("%s: Unknown EEPROM bit written %02X\n",machine().describe_context(),data);
}
// bit 1? cleared during screen transitions
- state->m_whitescreen = !(data & 0x02);
+ m_whitescreen = !(data & 0x02);
- coin_counter_w(device->machine(), 0, data & 0x08);
- coin_counter_w(device->machine(), 1, data & 0x10);
+ coin_counter_w(machine(), 0, data & 0x08);
+ coin_counter_w(machine(), 1, data & 0x10);
// latch the bit
eeprom->write_bit(data & 0x80);
@@ -203,25 +201,23 @@ static WRITE8_DEVICE_HANDLER( aliencha_eeprom_w )
}
-static READ8_DEVICE_HANDLER( aliencha_dip_r )
+READ8_MEMBER(lordgun_state::aliencha_dip_r)
{
- lordgun_state *state = device->machine().driver_data<lordgun_state>();
- switch (state->m_aliencha_dip_sel & 0x70)
+ switch (m_aliencha_dip_sel & 0x70)
{
- case 0x30: return state->ioport("DIP1")->read();
- case 0x60: return state->ioport("DIP2")->read();
- case 0x50: return state->ioport("DIP3")->read();
+ case 0x30: return ioport("DIP1")->read();
+ case 0x60: return ioport("DIP2")->read();
+ case 0x50: return ioport("DIP3")->read();
default:
- logerror("%s: dip_r with unknown dip_sel = %02X\n",device->machine().describe_context(),state->m_aliencha_dip_sel);
+ logerror("%s: dip_r with unknown dip_sel = %02X\n",machine().describe_context(),m_aliencha_dip_sel);
return 0xff;
}
}
-static WRITE8_DEVICE_HANDLER( aliencha_dip_w )
+WRITE8_MEMBER(lordgun_state::aliencha_dip_w)
{
- lordgun_state *state = device->machine().driver_data<lordgun_state>();
- state->m_aliencha_dip_sel = data;
+ m_aliencha_dip_sel = data;
}
@@ -333,10 +329,11 @@ static ADDRESS_MAP_START( lordgun_soundmem_map, AS_PROGRAM, 8, lordgun_state )
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static WRITE8_DEVICE_HANDLER( lordgun_okibank_w )
+WRITE8_MEMBER(lordgun_state::lordgun_okibank_w)
{
+ device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_bank_base((data & 2) ? 0x40000 : 0);
- if (data & ~3) logerror("%s: unknown okibank bits %02x\n", device->machine().describe_context(), data);
+ if (data & ~3) logerror("%s: unknown okibank bits %02x\n", machine().describe_context(), data);
// popmessage("OKI %x", data);
}
@@ -346,7 +343,7 @@ static ADDRESS_MAP_START( lordgun_soundio_map, AS_IO, 8, lordgun_state )
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch2_byte_r )
AM_RANGE(0x4000, 0x4000) AM_READ(soundlatch_byte_r )
AM_RANGE(0x5000, 0x5000) AM_READNOP
- AM_RANGE(0x6000, 0x6000) AM_DEVWRITE_LEGACY("oki", lordgun_okibank_w )
+ AM_RANGE(0x6000, 0x6000) AM_WRITE(lordgun_okibank_w )
ADDRESS_MAP_END
@@ -609,41 +606,41 @@ INPUT_PORTS_END
static I8255A_INTERFACE( lordgun_ppi8255_0_intf )
{
DEVCB_INPUT_PORT("DIP"), /* Port A read */
- DEVCB_HANDLER(fake_w), /* Port A write */
+ DEVCB_DRIVER_MEMBER(lordgun_state,fake_w), /* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(lordgun_eeprom_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(lordgun_state,lordgun_eeprom_w), /* Port B write */
DEVCB_INPUT_PORT("SERVICE"), /* Port C read */
- DEVCB_HANDLER(fake2_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(lordgun_state,fake2_w) /* Port C write */
};
static I8255A_INTERFACE( lordgun_ppi8255_1_intf )
{
DEVCB_INPUT_PORT("START1"), /* Port A read */
- DEVCB_HANDLER(fake_w), /* Port A write */
+ DEVCB_DRIVER_MEMBER(lordgun_state,fake_w), /* Port A write */
DEVCB_INPUT_PORT("START2"), /* Port B read */
- DEVCB_HANDLER(fake_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(lordgun_state,fake_w), /* Port B write */
DEVCB_INPUT_PORT("COIN"), /* Port C read */
- DEVCB_HANDLER(fake_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(lordgun_state,fake_w) /* Port C write */
};
static I8255A_INTERFACE( aliencha_ppi8255_0_intf )
{
- DEVCB_HANDLER(aliencha_dip_r), /* Port A read */
- DEVCB_HANDLER(fake2_w), /* Port A write */
+ DEVCB_DRIVER_MEMBER(lordgun_state,aliencha_dip_r), /* Port A read */
+ DEVCB_DRIVER_MEMBER(lordgun_state,fake2_w), /* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(aliencha_eeprom_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(lordgun_state,aliencha_eeprom_w), /* Port B write */
DEVCB_INPUT_PORT("SERVICE"), /* Port C read */
- DEVCB_HANDLER(aliencha_dip_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(lordgun_state,aliencha_dip_w) /* Port C write */
};
static I8255A_INTERFACE( aliencha_ppi8255_1_intf )
{
DEVCB_INPUT_PORT("P1"), /* Port A read */
- DEVCB_HANDLER(fake_w), /* Port A write */
+ DEVCB_DRIVER_MEMBER(lordgun_state,fake_w), /* Port A write */
DEVCB_INPUT_PORT("P2"), /* Port B read */
- DEVCB_HANDLER(fake_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(lordgun_state,fake_w), /* Port B write */
DEVCB_INPUT_PORT("COIN"), /* Port C read */
- DEVCB_HANDLER(fake_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(lordgun_state,fake_w) /* Port C write */
};
diff --git a/src/mame/drivers/lsasquad.c b/src/mame/drivers/lsasquad.c
index d2bd2c26261..f04cd2a0a76 100644
--- a/src/mame/drivers/lsasquad.c
+++ b/src/mame/drivers/lsasquad.c
@@ -544,7 +544,7 @@ static void irqhandler(device_t *device, int irq)
device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
}
-static WRITE8_DEVICE_HANDLER( unk )
+WRITE8_MEMBER(lsasquad_state::unk)
{
}
@@ -557,8 +557,8 @@ static const ym2203_interface ym2203_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(unk),
- DEVCB_HANDLER(unk),
+ DEVCB_DRIVER_MEMBER(lsasquad_state,unk),
+ DEVCB_DRIVER_MEMBER(lsasquad_state,unk),
},
irqhandler
};
diff --git a/src/mame/drivers/lucky74.c b/src/mame/drivers/lucky74.c
index 562546514b2..04732c0a1cc 100644
--- a/src/mame/drivers/lucky74.c
+++ b/src/mame/drivers/lucky74.c
@@ -698,17 +698,16 @@ WRITE8_MEMBER(lucky74_state::custom_09R81P_port_w)
m_adpcm_reg[offset] = data;
}
-static WRITE8_DEVICE_HANDLER( ym2149_portb_w )
+WRITE8_MEMBER(lucky74_state::ym2149_portb_w)
{
- lucky74_state *state = device->machine().driver_data<lucky74_state>();
/* when is in game mode writes 0x0a.
when is in test mode writes 0x0e.
after reset writes 0x16.
bit 0 contains the screen orientation.
*/
- state->m_ym2149_portb = data;
- state->flip_screen_set(data & 0x01);
+ m_ym2149_portb = data;
+ flip_screen_set(data & 0x01);
}
READ8_MEMBER(lucky74_state::usart_8251_r)
@@ -744,7 +743,7 @@ WRITE8_MEMBER(lucky74_state::copro_sm7831_w)
* Lamps *
**************/
-static WRITE8_DEVICE_HANDLER(lamps_a_w)
+WRITE8_MEMBER(lucky74_state::lamps_a_w)
{
/* LAMPSA:
@@ -759,7 +758,7 @@ static WRITE8_DEVICE_HANDLER(lamps_a_w)
output_set_lamp_value(11, (data >> 3) & 1); /* SMALL */
}
-static WRITE8_DEVICE_HANDLER(lamps_b_w)
+WRITE8_MEMBER(lucky74_state::lamps_b_w)
{
/* LAMPSB:
@@ -1198,9 +1197,9 @@ static I8255A_INTERFACE( ppi8255_3_intf )
DEVCB_INPUT_PORT("DSW4"), /* Port A read */
DEVCB_NULL, /* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(lamps_a_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(lucky74_state,lamps_a_w), /* Port B write */
DEVCB_NULL, /* Port C read */
- DEVCB_HANDLER(lamps_b_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(lucky74_state,lamps_b_w) /* Port C write */
};
@@ -1215,7 +1214,7 @@ static const ay8910_interface ay8910_config =
DEVCB_INPUT_PORT("IN3"),
DEVCB_NULL, /* a sort of status byte */
DEVCB_NULL,
- DEVCB_HANDLER(ym2149_portb_w)
+ DEVCB_DRIVER_MEMBER(lucky74_state,ym2149_portb_w)
};
static const msm5205_interface msm5205_config =
diff --git a/src/mame/drivers/lwings.c b/src/mame/drivers/lwings.c
index a7b76ff0a1f..69bc44b67d3 100644
--- a/src/mame/drivers/lwings.c
+++ b/src/mame/drivers/lwings.c
@@ -272,8 +272,9 @@ READ8_MEMBER(lwings_state::avengers_soundlatch2_r)
return(data);
}
-static WRITE8_DEVICE_HANDLER( msm5205_w )
+WRITE8_MEMBER(lwings_state::msm5205_w)
{
+ device_t *device = machine().device("5205");
msm5205_reset_w(device, (data >> 7) & 1);
msm5205_data_w(device, data);
msm5205_vclk_w(device, 1);
@@ -367,13 +368,13 @@ ADDRESS_MAP_END
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_LEGACY("5205", msm5205_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(msm5205_w)
ADDRESS_MAP_END
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_byte_r)
- AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("5205", msm5205_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(msm5205_w)
ADDRESS_MAP_END
/*************************************
diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c
index 994fea2acfc..4525d85b52c 100644
--- a/src/mame/drivers/m72.c
+++ b/src/mame/drivers/m72.c
@@ -344,8 +344,9 @@ WRITE8_MEMBER(m72_state::m72_mcu_high_w)
logerror("high: %02x %02x %08x\n", offset, data, m_mcu_sample_addr);
}
-static WRITE8_DEVICE_HANDLER( m72_snd_cpu_sample_w )
+WRITE8_MEMBER(m72_state::m72_snd_cpu_sample_w)
{
+ device_t *device = machine().device("dac");
//dac_signed_data_w(device, data);
dac_data_w(device, data);
}
@@ -361,7 +362,6 @@ INLINE DRIVER_INIT( m72_8751 )
address_space *program = machine.device("maincpu")->memory().space(AS_PROGRAM);
address_space *io = machine.device("maincpu")->memory().space(AS_IO);
address_space *sndio = machine.device("soundcpu")->memory().space(AS_IO);
- device_t *dac = machine.device("dac");
state->m_protection_ram = auto_alloc_array(machine, UINT16, 0x10000/2);
program->install_read_bank(0xb0000, 0xbffff, "bank1");
@@ -372,7 +372,7 @@ INLINE DRIVER_INIT( m72_8751 )
io->install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::m72_main_mcu_sound_w),state));
/* sound cpu */
- sndio->install_legacy_write_handler(*dac, 0x82, 0x82, 0xff, 0, FUNC(m72_snd_cpu_sample_w));
+ sndio->install_write_handler(0x82, 0x82, 0xff, 0, write8_delegate(FUNC(m72_state::m72_snd_cpu_sample_w),state));
sndio->install_read_handler (0x84, 0x84, 0xff, 0, read8_delegate(FUNC(m72_state::m72_snd_cpu_sample_r),state));
/* lohtb2 */
diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c
index da2c8105393..93c6dcc3d9d 100644
--- a/src/mame/drivers/m92.c
+++ b/src/mame/drivers/m92.c
@@ -371,8 +371,9 @@ static ADDRESS_MAP_START( m92_portmap, AS_IO, 16, m92_state )
AM_RANGE(0xc0, 0xc1) AM_WRITE(m92_sound_reset_w)
ADDRESS_MAP_END
-static WRITE16_DEVICE_HANDLER( oki_bank_w )
+WRITE16_MEMBER(m92_state::oki_bank_w)
{
+ device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * ((data+1) & 0x3)); // +1?
}
@@ -382,7 +383,7 @@ static ADDRESS_MAP_START( ppan_portmap, AS_IO, 16, m92_state )
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
AM_RANGE(0x06, 0x07) AM_READ_PORT("P3_P4")
AM_RANGE(0x08, 0x09) AM_READ(m92_sound_status_r) /* answer from sound CPU */
- AM_RANGE(0x10, 0x11) AM_DEVWRITE_LEGACY("oki", oki_bank_w)
+ AM_RANGE(0x10, 0x11) AM_WRITE(oki_bank_w)
AM_RANGE(0x18, 0x19) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x02, 0x03) AM_WRITE(m92_coincounter_w)
AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
diff --git a/src/mame/drivers/madalien.c b/src/mame/drivers/madalien.c
index 142785bf4a7..501e56d3fbe 100644
--- a/src/mame/drivers/madalien.c
+++ b/src/mame/drivers/madalien.c
@@ -66,12 +66,14 @@ READ8_MEMBER(madalien_state::madalien_sound_command_r)
}
-static WRITE8_DEVICE_HANDLER( madalien_portA_w )
+WRITE8_MEMBER(madalien_state::madalien_portA_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, MADALIEN_8910_PORTA, data);
}
-static WRITE8_DEVICE_HANDLER( madalien_portB_w )
+WRITE8_MEMBER(madalien_state::madalien_portB_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, MADALIEN_8910_PORTB, data);
}
@@ -163,8 +165,8 @@ static const ay8910_interface ay8910_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_DEVICE_HANDLER("discrete", madalien_portA_w),
- DEVCB_DEVICE_HANDLER("discrete", madalien_portB_w)
+ DEVCB_DRIVER_MEMBER(madalien_state,madalien_portA_w),
+ DEVCB_DRIVER_MEMBER(madalien_state,madalien_portB_w)
};
diff --git a/src/mame/drivers/magmax.c b/src/mame/drivers/magmax.c
index 35e57c8c28d..9ec05fd449b 100644
--- a/src/mame/drivers/magmax.c
+++ b/src/mame/drivers/magmax.c
@@ -50,13 +50,12 @@ READ8_MEMBER(magmax_state::magmax_sound_r)
return (m_sound_latch | m_LS74_q);
}
-static WRITE8_DEVICE_HANDLER( ay8910_portB_0_w )
+WRITE8_MEMBER(magmax_state::ay8910_portB_0_w)
{
- magmax_state *state = device->machine().driver_data<magmax_state>();
/*bit 0 is input to CLR line of the LS74*/
- state->m_LS74_clr = data & 1;
- if (state->m_LS74_clr == 0)
- state->m_LS74_q = 0;
+ m_LS74_clr = data & 1;
+ if (m_LS74_clr == 0)
+ m_LS74_q = 0;
}
static TIMER_CALLBACK( scanline_callback )
@@ -104,12 +103,11 @@ static MACHINE_RESET( magmax )
-static WRITE8_DEVICE_HANDLER( ay8910_portA_0_w )
+WRITE8_MEMBER(magmax_state::ay8910_portA_0_w)
{
- magmax_state *state = device->machine().driver_data<magmax_state>();
-ay8910_device *ay1 = device->machine().device<ay8910_device>("ay1");
-ay8910_device *ay2 = device->machine().device<ay8910_device>("ay2");
-ay8910_device *ay3 = device->machine().device<ay8910_device>("ay3");
+ay8910_device *ay1 = machine().device<ay8910_device>("ay1");
+ay8910_device *ay2 = machine().device<ay8910_device>("ay2");
+ay8910_device *ay3 = machine().device<ay8910_device>("ay3");
float percent;
/*There are three AY8910 chips and four(!) separate amplifiers on the board
@@ -156,18 +154,18 @@ bit3 - SOUND Chan#7 name=AY-3-8910 #2 Ch B
bit3 - SOUND Chan#8 name=AY-3-8910 #2 Ch C
*/
- if (state->m_gain_control == (data & 0x0f))
+ if (m_gain_control == (data & 0x0f))
return;
- state->m_gain_control = data & 0x0f;
+ m_gain_control = data & 0x0f;
/*popmessage("gain_ctrl = %2x",data&0x0f);*/
- percent = (state->m_gain_control & 1) ? 1.0 : 0.50;
+ percent = (m_gain_control & 1) ? 1.0 : 0.50;
ay1->set_output_gain(0, percent);
//fixme: set_RC_filter(0,10000,100000000,0,10000); /* 10K, 10000pF = 0.010uF */
- percent = (state->m_gain_control & 2) ? 0.45 : 0.23;
+ percent = (m_gain_control & 2) ? 0.45 : 0.23;
ay1->set_output_gain(1, percent);
ay1->set_output_gain(2, percent);
ay2->set_output_gain(0, percent);
@@ -177,11 +175,11 @@ bit3 - SOUND Chan#8 name=AY-3-8910 #2 Ch C
//fixme: set_RC_filter(3,4700,100000000,0,4700); /* 4.7K, 4700pF = 0.0047uF */
//fixme: set_RC_filter(4,4700,100000000,0,4700); /* 4.7K, 4700pF = 0.0047uF */
- percent = (state->m_gain_control & 4) ? 0.45 : 0.23;
+ percent = (m_gain_control & 4) ? 0.45 : 0.23;
ay2->set_output_gain(2, percent);
ay3->set_output_gain(0, percent);
- percent = (state->m_gain_control & 8) ? 0.45 : 0.23;
+ percent = (m_gain_control & 8) ? 0.45 : 0.23;
ay3->set_output_gain(1, percent);
ay3->set_output_gain(2, percent);
}
@@ -341,8 +339,8 @@ static const ay8910_interface ay8910_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(ay8910_portA_0_w), /*write port A*/
- DEVCB_HANDLER(ay8910_portB_0_w) /*write port B*/
+ DEVCB_DRIVER_MEMBER(magmax_state,ay8910_portA_0_w), /*write port A*/
+ DEVCB_DRIVER_MEMBER(magmax_state,ay8910_portB_0_w) /*write port B*/
};
diff --git a/src/mame/drivers/mainevt.c b/src/mame/drivers/mainevt.c
index 1980517236d..f4bee07132e 100644
--- a/src/mame/drivers/mainevt.c
+++ b/src/mame/drivers/mainevt.c
@@ -85,8 +85,9 @@ WRITE8_MEMBER(mainevt_state::mainevt_sh_irqtrigger_w)
device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
}
-static READ8_DEVICE_HANDLER( mainevt_sh_busy_r )
+READ8_MEMBER(mainevt_state::mainevt_sh_busy_r)
{
+ device_t *device = machine().device("upd");
return upd7759_busy_r(device);
}
@@ -120,8 +121,9 @@ WRITE8_MEMBER(mainevt_state::mainevt_sh_bankswitch_w)
upd7759_set_bank_base(m_upd, ((data >> 4) & 0x03) * 0x20000);
}
-static WRITE8_DEVICE_HANDLER( dv_sh_bankswitch_w )
+WRITE8_MEMBER(mainevt_state::dv_sh_bankswitch_w)
{
+ device_t *device = machine().device("k007232");
int bank_A, bank_B;
//logerror("CPU #1 PC: %04x bank switch = %02x\n",cpu_get_pc(&space->device()),data);
@@ -215,7 +217,7 @@ static ADDRESS_MAP_START( mainevt_sound_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0x9000, 0x9000) AM_DEVWRITE_LEGACY("upd", upd7759_port_w)
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r,k007232_w)
- AM_RANGE(0xd000, 0xd000) AM_DEVREAD_LEGACY("upd", mainevt_sh_busy_r)
+ AM_RANGE(0xd000, 0xd000) AM_READ(mainevt_sh_busy_r)
AM_RANGE(0xe000, 0xe000) AM_WRITE(mainevt_sh_irqcontrol_w)
AM_RANGE(0xf000, 0xf000) AM_WRITE(mainevt_sh_bankswitch_w)
ADDRESS_MAP_END
@@ -227,7 +229,7 @@ static ADDRESS_MAP_START( devstors_sound_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r,k007232_w)
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r,ym2151_w)
AM_RANGE(0xe000, 0xe000) AM_WRITE(devstor_sh_irqcontrol_w)
- AM_RANGE(0xf000, 0xf000) AM_DEVWRITE_LEGACY("k007232", dv_sh_bankswitch_w)
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(dv_sh_bankswitch_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/mappy.c b/src/mame/drivers/mappy.c
index 9cd17b5ee58..9904f6fa2b8 100644
--- a/src/mame/drivers/mappy.c
+++ b/src/mame/drivers/mappy.c
@@ -1560,37 +1560,34 @@ static const namco_interface namco_config =
***************************************************************************/
-static READ8_DEVICE_HANDLER( dipA_l ) { return device->machine().root_device().ioport("DSW1")->read(); } // dips A
-static READ8_DEVICE_HANDLER( dipA_h ) { return device->machine().root_device().ioport("DSW1")->read() >> 4; } // dips A
+READ8_MEMBER(mappy_state::dipA_l){ return machine().root_device().ioport("DSW1")->read(); } // dips A
+READ8_MEMBER(mappy_state::dipA_h){ return machine().root_device().ioport("DSW1")->read() >> 4; } // dips A
-static READ8_DEVICE_HANDLER( dipB_mux ) // dips B
+READ8_MEMBER(mappy_state::dipB_mux)// dips B
{
- mappy_state *state = device->machine().driver_data<mappy_state>();
- return state->ioport("DSW2")->read() >> (4 * state->m_mux);
+ return ioport("DSW2")->read() >> (4 * m_mux);
}
-static READ8_DEVICE_HANDLER( dipB_muxi ) // dips B
+READ8_MEMBER(mappy_state::dipB_muxi)// dips B
{
- mappy_state *state = device->machine().driver_data<mappy_state>();
// bits are interleaved in Phozon
- return BITSWAP8(state->ioport("DSW2")->read(),6,4,2,0,7,5,3,1) >> (4 * state->m_mux);
+ return BITSWAP8(ioport("DSW2")->read(),6,4,2,0,7,5,3,1) >> (4 * m_mux);
}
-static WRITE8_DEVICE_HANDLER( out_mux )
+WRITE8_MEMBER(mappy_state::out_mux)
{
- mappy_state *state = device->machine().driver_data<mappy_state>();
- state->m_mux = data & 1;
+ m_mux = data & 1;
}
-static WRITE8_DEVICE_HANDLER( out_lamps )
+WRITE8_MEMBER(mappy_state::out_lamps)
{
- set_led_status(device->machine(), 0, data & 1);
- set_led_status(device->machine(), 1, data & 2);
- coin_lockout_global_w(device->machine(), data & 4);
- coin_counter_w(device->machine(), 0, ~data & 8);
+ set_led_status(machine(), 0, data & 1);
+ set_led_status(machine(), 1, data & 2);
+ coin_lockout_global_w(machine(), data & 4);
+ coin_counter_w(machine(), 0, ~data & 8);
}
/* chip #0: player inputs, buttons, coins */
@@ -1604,22 +1601,22 @@ static const namcoio_interface intf0 =
static const namcoio_interface intf0_lamps =
{
{ DEVCB_INPUT_PORT("COINS"), DEVCB_INPUT_PORT("P1"), DEVCB_INPUT_PORT("P2"), DEVCB_INPUT_PORT("BUTTONS") }, /* port read handlers */
- { DEVCB_HANDLER(out_lamps), DEVCB_NULL }, /* port write handlers */
+ { DEVCB_DRIVER_MEMBER(mappy_state,out_lamps), DEVCB_NULL }, /* port write handlers */
NULL
};
/* chip #1: dip switches, test/cocktail, optional buttons */
static const namcoio_interface intf1 =
{
- { DEVCB_HANDLER(dipB_mux), DEVCB_HANDLER(dipA_l), DEVCB_HANDLER(dipA_h), DEVCB_INPUT_PORT("DSW0") }, /* port read handlers */
- { DEVCB_HANDLER(out_mux), DEVCB_NULL }, /* port write handlers */
+ { DEVCB_DRIVER_MEMBER(mappy_state,dipB_mux), DEVCB_DRIVER_MEMBER(mappy_state,dipA_l), DEVCB_DRIVER_MEMBER(mappy_state,dipA_h), DEVCB_INPUT_PORT("DSW0") }, /* port read handlers */
+ { DEVCB_DRIVER_MEMBER(mappy_state,out_mux), DEVCB_NULL }, /* port write handlers */
NULL
};
static const namcoio_interface intf1_interleave =
{
- { DEVCB_HANDLER(dipB_muxi), DEVCB_HANDLER(dipA_l), DEVCB_HANDLER(dipA_h), DEVCB_INPUT_PORT("DSW0") }, /* port read handlers */
- { DEVCB_HANDLER(out_mux), DEVCB_NULL }, /* port write handlers */
+ { DEVCB_DRIVER_MEMBER(mappy_state,dipB_muxi), DEVCB_DRIVER_MEMBER(mappy_state,dipA_l), DEVCB_DRIVER_MEMBER(mappy_state,dipA_h), DEVCB_INPUT_PORT("DSW0") }, /* port read handlers */
+ { DEVCB_DRIVER_MEMBER(mappy_state,out_mux), DEVCB_NULL }, /* port write handlers */
NULL
};
@@ -2255,8 +2252,9 @@ ROM_END
-static WRITE8_DEVICE_HANDLER( grobda_DAC_w )
+WRITE8_MEMBER(mappy_state::grobda_DAC_w)
{
+ device_t *device = machine().device("dac");
dac_data_w(device, (data << 4) | data);
}
@@ -2270,8 +2268,8 @@ static DRIVER_INIT( grobda )
However, removing the 15XX from the board causes sound to disappear completely, so
the DAC might be built-in after all.
*/
- device_t *dac = machine.device("dac");
- machine.device("sub")->memory().space(AS_PROGRAM)->install_legacy_write_handler(*dac, 0x0002, 0x0002, FUNC(grobda_DAC_w) );
+ mappy_state *state = machine.driver_data<mappy_state>();
+ machine.device("sub")->memory().space(AS_PROGRAM)->install_write_handler(0x0002, 0x0002, write8_delegate(FUNC(mappy_state::grobda_DAC_w),state));
}
static DRIVER_INIT( digdug2 )
diff --git a/src/mame/drivers/mario.c b/src/mame/drivers/mario.c
index 5804120cf9f..2c8b1c2c77f 100644
--- a/src/mame/drivers/mario.c
+++ b/src/mame/drivers/mario.c
@@ -115,8 +115,9 @@ static Z80DMA_INTERFACE( mario_dma )
DEVCB_NULL
};
-static WRITE8_DEVICE_HANDLER( mario_z80dma_rdy_w )
+WRITE8_MEMBER(mario_state::mario_z80dma_rdy_w)
{
+ device_t *device = machine().device("z80dma");
z80dma_rdy_w(device, data & 0x01);
}
@@ -144,7 +145,7 @@ static ADDRESS_MAP_START( mario_map, AS_PROGRAM, 8, mario_state )
AM_RANGE(0x7e82, 0x7e82) AM_WRITE(mario_flip_w)
AM_RANGE(0x7e83, 0x7e83) AM_WRITE(mario_palettebank_w)
AM_RANGE(0x7e84, 0x7e84) AM_WRITE(nmi_mask_w)
- AM_RANGE(0x7e85, 0x7e85) AM_DEVWRITE_LEGACY("z80dma", mario_z80dma_rdy_w) /* ==> DMA Chip */
+ AM_RANGE(0x7e85, 0x7e85) AM_WRITE(mario_z80dma_rdy_w) /* ==> DMA Chip */
AM_RANGE(0x7f00, 0x7f07) AM_WRITE(mario_sh3_w) /* Sound port */
AM_RANGE(0x7f80, 0x7f80) AM_READ_PORT("DSW") /* DSW */
AM_RANGE(0x7e00, 0x7e00) AM_WRITE(mario_sh_tuneselect_w)
@@ -164,7 +165,7 @@ static ADDRESS_MAP_START( masao_map, AS_PROGRAM, 8, mario_state )
AM_RANGE(0x7e82, 0x7e82) AM_WRITE(mario_flip_w)
AM_RANGE(0x7e83, 0x7e83) AM_WRITE(mario_palettebank_w)
AM_RANGE(0x7e84, 0x7e84) AM_WRITE(nmi_mask_w)
- AM_RANGE(0x7e85, 0x7e85) AM_DEVWRITE_LEGACY("z80dma", mario_z80dma_rdy_w) /* ==> DMA Chip */
+ AM_RANGE(0x7e85, 0x7e85) AM_WRITE(mario_z80dma_rdy_w) /* ==> DMA Chip */
AM_RANGE(0x7f00, 0x7f00) AM_WRITE(masao_sh_irqtrigger_w)
AM_RANGE(0x7f80, 0x7f80) AM_READ_PORT("DSW") /* DSW */
AM_RANGE(0xf000, 0xffff) AM_ROM
diff --git a/src/mame/drivers/mcr68.c b/src/mame/drivers/mcr68.c
index cd1bf8dfc0c..790d280d5d3 100644
--- a/src/mame/drivers/mcr68.c
+++ b/src/mame/drivers/mcr68.c
@@ -67,10 +67,10 @@
*
*************************************/
-READ8_DEVICE_HANDLER( zwackery_port_2_r )
+READ8_MEMBER(mcr68_state::zwackery_port_2_r)
{
- int result = device->machine().root_device().ioport("IN2")->read();
- int wheel = device->machine().root_device().ioport("IN5")->read();
+ int result = machine().root_device().ioport("IN2")->read();
+ int wheel = machine().root_device().ioport("IN5")->read();
return result | ((wheel >> 2) & 0x3e);
}
diff --git a/src/mame/drivers/megasys1.c b/src/mame/drivers/megasys1.c
index c62ff97ebc9..0860d15a0dd 100644
--- a/src/mame/drivers/megasys1.c
+++ b/src/mame/drivers/megasys1.c
@@ -379,15 +379,23 @@ static void megasys1_sound_irq(device_t *device, int irq)
cputag_set_input_line(device->machine(), "soundcpu", 4, HOLD_LINE);
}
-static READ8_DEVICE_HANDLER( oki_status_r )
+READ8_MEMBER(megasys1_state::oki_status_1_r)
{
- megasys1_state *state = device->machine().driver_data<megasys1_state>();
- if (state->m_ignore_oki_status == 1)
+ device_t *device = machine().device("oki1");
+ if (m_ignore_oki_status == 1)
return 0;
else
return downcast<okim6295_device *>(device)->read_status();
}
+READ8_MEMBER(megasys1_state::oki_status_2_r)
+{
+ device_t *device = machine().device("oki1");
+ if (m_ignore_oki_status == 1)
+ return 0;
+ else
+ return downcast<okim6295_device *>(device)->read_status();
+}
/***************************************************************************
[ Sound CPU - System A ]
***************************************************************************/
@@ -398,9 +406,9 @@ static ADDRESS_MAP_START( megasys1A_sound_map, AS_PROGRAM, 16, megasys1_state )
AM_RANGE(0x040000, 0x040001) AM_READ(soundlatch_word_r)
AM_RANGE(0x060000, 0x060001) AM_WRITE(soundlatch2_word_w) // to main cpu
AM_RANGE(0x080000, 0x080003) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2151_r,ym2151_w, 0x00ff)
- AM_RANGE(0x0a0000, 0x0a0001) AM_DEVREAD8_LEGACY("oki1", oki_status_r, 0x00ff)
+ AM_RANGE(0x0a0000, 0x0a0001) AM_READ8(oki_status_1_r, 0x00ff)
AM_RANGE(0x0a0000, 0x0a0003) AM_DEVWRITE8("oki1", okim6295_device, write, 0x00ff)
- AM_RANGE(0x0c0000, 0x0c0001) AM_DEVREAD8_LEGACY("oki2", oki_status_r, 0x00ff)
+ AM_RANGE(0x0c0000, 0x0c0001) AM_READ8(oki_status_2_r, 0x00ff)
AM_RANGE(0x0c0000, 0x0c0003) AM_DEVWRITE8("oki2", okim6295_device, write, 0x00ff)
AM_RANGE(0x0e0000, 0x0fffff) AM_RAM
ADDRESS_MAP_END
@@ -416,9 +424,9 @@ static ADDRESS_MAP_START( megasys1B_sound_map, AS_PROGRAM, 16, megasys1_state )
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 */
AM_RANGE(0x080000, 0x080003) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2151_r,ym2151_w, 0x00ff)
- AM_RANGE(0x0a0000, 0x0a0001) AM_DEVREAD8_LEGACY("oki1", oki_status_r, 0x00ff)
+ AM_RANGE(0x0a0000, 0x0a0001) AM_READ8(oki_status_1_r, 0x00ff)
AM_RANGE(0x0a0000, 0x0a0003) AM_DEVWRITE8("oki1", okim6295_device, write, 0x00ff)
- AM_RANGE(0x0c0000, 0x0c0001) AM_DEVREAD8_LEGACY("oki2", oki_status_r, 0x00ff)
+ AM_RANGE(0x0c0000, 0x0c0001) AM_READ8(oki_status_2_r, 0x00ff)
AM_RANGE(0x0c0000, 0x0c0003) AM_DEVWRITE8("oki2", okim6295_device, write, 0x00ff)
AM_RANGE(0x0e0000, 0x0effff) AM_RAM
ADDRESS_MAP_END
@@ -3872,17 +3880,21 @@ static DRIVER_INIT( iganinju )
// not like lev 3 interrupts
}
-static WRITE16_DEVICE_HANDLER( okim6295_both_w )
+WRITE16_MEMBER(megasys1_state::okim6295_both_1_w)
+{
+ okim6295_device *oki = machine().device<okim6295_device>("oki1");
+ if (ACCESSING_BITS_0_7) oki->write_command((data >> 0) & 0xff );
+ else oki->write_command((data >> 8) & 0xff );
+}
+WRITE16_MEMBER(megasys1_state::okim6295_both_2_w)
{
- okim6295_device *oki = downcast<okim6295_device *>(device);
+ okim6295_device *oki = machine().device<okim6295_device>("oki2");
if (ACCESSING_BITS_0_7) oki->write_command((data >> 0) & 0xff );
else oki->write_command((data >> 8) & 0xff );
}
static DRIVER_INIT( jitsupro )
{
- device_t *oki1 = machine.device("oki1");
- device_t *oki2 = machine.device("oki2");
//UINT16 *RAM = (UINT16 *) machine.root_device().memregion("maincpu")->base();
astyanax_rom_decode(machine, "maincpu"); // Code
@@ -3894,8 +3906,8 @@ static DRIVER_INIT( jitsupro )
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x20000, 0x20009, write16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_w),state));
/* the sound code writes oki commands to both the lsb and msb */
- machine.device("soundcpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(*oki1, 0xa0000, 0xa0003, FUNC(okim6295_both_w));
- machine.device("soundcpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(*oki2, 0xc0000, 0xc0003, FUNC(okim6295_both_w));
+ machine.device("soundcpu")->memory().space(AS_PROGRAM)->install_write_handler(0xa0000, 0xa0003, write16_delegate(FUNC(megasys1_state::okim6295_both_1_w),state));
+ machine.device("soundcpu")->memory().space(AS_PROGRAM)->install_write_handler(0xc0000, 0xc0003, write16_delegate(FUNC(megasys1_state::okim6295_both_2_w),state));
}
static DRIVER_INIT( peekaboo )
diff --git a/src/mame/drivers/megazone.c b/src/mame/drivers/megazone.c
index f0df0976418..34200de4ceb 100644
--- a/src/mame/drivers/megazone.c
+++ b/src/mame/drivers/megazone.c
@@ -18,9 +18,8 @@ To enter service mode, keep 1&2 pressed on reset
#include "includes/megazone.h"
-static READ8_DEVICE_HANDLER( megazone_port_a_r )
+READ8_MEMBER(megazone_state::megazone_port_a_r)
{
- megazone_state *state = device->machine().driver_data<megazone_state>();
int clock, timer;
@@ -31,14 +30,14 @@ static READ8_DEVICE_HANDLER( megazone_port_a_r )
/* (divide by (1024/2), and not 1024, because the CPU cycle counter is */
/* incremented every other state change of the clock) */
- clock = state->m_audiocpu->total_cycles() * 7159/12288; /* = (14318/8)/(18432/6) */
+ clock = m_audiocpu->total_cycles() * 7159/12288; /* = (14318/8)/(18432/6) */
timer = (clock / (1024/2)) & 0x0f;
/* low three bits come from the 8039 */
- return (timer << 4) | state->m_i8039_status;
+ return (timer << 4) | m_i8039_status;
}
-static WRITE8_DEVICE_HANDLER( megazone_port_b_w )
+WRITE8_MEMBER(megazone_state::megazone_port_b_w)
{
static const char *const fltname[] = { "filter.0.0", "filter.0.1", "filter.0.2" };
int i;
@@ -52,7 +51,7 @@ static WRITE8_DEVICE_HANDLER( megazone_port_b_w )
C += 220000; /* 220000pF = 0.22uF */
data >>= 2;
- filter_rc_set_RC(device->machine().device(fltname[i]),FLT_RC_LOWPASS,1000,2200,200,CAP_P(C));
+ filter_rc_set_RC(machine().device(fltname[i]),FLT_RC_LOWPASS,1000,2200,200,CAP_P(C));
}
}
@@ -219,10 +218,10 @@ static const ay8910_interface ay8910_config =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(megazone_port_a_r),
+ DEVCB_DRIVER_MEMBER(megazone_state,megazone_port_a_r),
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(megazone_port_b_w)
+ DEVCB_DRIVER_MEMBER(megazone_state,megazone_port_b_w)
};
diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c
index b790730327f..ed59fbf7386 100644
--- a/src/mame/drivers/metro.c
+++ b/src/mame/drivers/metro.c
@@ -1266,24 +1266,24 @@ static void gakusai_oki_bank_set(device_t *device)
downcast<okim6295_device *>(device)->set_bank_base(bank * 0x40000);
}
-static WRITE16_DEVICE_HANDLER( gakusai_oki_bank_hi_w )
+WRITE16_MEMBER(metro_state::gakusai_oki_bank_hi_w)
{
- metro_state *state = device->machine().driver_data<metro_state>();
+ device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
{
- state->m_gakusai_oki_bank_hi = data & 0xff;
+ m_gakusai_oki_bank_hi = data & 0xff;
gakusai_oki_bank_set(device);
}
}
-static WRITE16_DEVICE_HANDLER( gakusai_oki_bank_lo_w )
+WRITE16_MEMBER(metro_state::gakusai_oki_bank_lo_w)
{
- metro_state *state = device->machine().driver_data<metro_state>();
+ device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
{
- state->m_gakusai_oki_bank_lo = data & 0xff;
+ m_gakusai_oki_bank_lo = data & 0xff;
gakusai_oki_bank_set(device);
}
}
@@ -1301,14 +1301,16 @@ READ16_MEMBER(metro_state::gakusai_input_r)
return 0xffff;
}
-static READ16_DEVICE_HANDLER( gakusai_eeprom_r )
+READ16_MEMBER(metro_state::gakusai_eeprom_r)
{
+ device_t *device = machine().device("eeprom");
eeprom_device *eeprom = downcast<eeprom_device *>(device);
return eeprom->read_bit() & 1;
}
-static WRITE16_DEVICE_HANDLER( gakusai_eeprom_w )
+WRITE16_MEMBER(metro_state::gakusai_eeprom_w)
{
+ device_t *device = machine().device("eeprom");
if (ACCESSING_BITS_0_7)
{
eeprom_device *eeprom = downcast<eeprom_device *>(device);
@@ -1349,11 +1351,11 @@ static ADDRESS_MAP_START( gakusai_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x278888, 0x278889) AM_WRITEONLY AM_SHARE("input_sel") // Inputs
AM_RANGE(0x279700, 0x279713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers
AM_RANGE(0x400000, 0x400001) AM_WRITENOP // ? 5
- AM_RANGE(0x500000, 0x500001) AM_DEVWRITE_LEGACY("oki", gakusai_oki_bank_lo_w) // Sound
+ AM_RANGE(0x500000, 0x500001) AM_WRITE(gakusai_oki_bank_lo_w) // Sound
AM_RANGE(0x600000, 0x600003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
- AM_RANGE(0xc00000, 0xc00001) AM_DEVREADWRITE_LEGACY("eeprom", gakusai_eeprom_r, gakusai_eeprom_w) // EEPROM
- AM_RANGE(0xd00000, 0xd00001) AM_DEVWRITE_LEGACY("oki", gakusai_oki_bank_hi_w)
+ AM_RANGE(0xc00000, 0xc00001) AM_READWRITE(gakusai_eeprom_r, gakusai_eeprom_w) // EEPROM
+ AM_RANGE(0xd00000, 0xd00001) AM_WRITE(gakusai_oki_bank_hi_w)
ADDRESS_MAP_END
@@ -1387,11 +1389,11 @@ static ADDRESS_MAP_START( gakusai2_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x678888, 0x678889) AM_WRITEONLY AM_SHARE("input_sel") // Inputs
AM_RANGE(0x679700, 0x679713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers
AM_RANGE(0x800000, 0x800001) AM_WRITENOP // ? 5
- AM_RANGE(0x900000, 0x900001) AM_DEVWRITE_LEGACY("oki", gakusai_oki_bank_lo_w) // Sound bank
- AM_RANGE(0xa00000, 0xa00001) AM_DEVWRITE_LEGACY("oki", gakusai_oki_bank_hi_w)
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(gakusai_oki_bank_lo_w) // Sound bank
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITE(gakusai_oki_bank_hi_w)
AM_RANGE(0xb00000, 0xb00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
- AM_RANGE(0xe00000, 0xe00001) AM_DEVREADWRITE_LEGACY("eeprom", gakusai_eeprom_r,gakusai_eeprom_w) // EEPROM
+ AM_RANGE(0xe00000, 0xe00001) AM_READWRITE(gakusai_eeprom_r,gakusai_eeprom_w) // EEPROM
ADDRESS_MAP_END
@@ -1399,8 +1401,9 @@ ADDRESS_MAP_END
Mahjong Doukyuusei Special
***************************************************************************/
-static READ16_DEVICE_HANDLER( dokyusp_eeprom_r )
+READ16_MEMBER(metro_state::dokyusp_eeprom_r)
{
+ device_t *device = machine().device("eeprom");
// clock line asserted: write latch or select next bit to read
eeprom_device *eeprom = downcast<eeprom_device *>(device);
eeprom->set_clock_line(CLEAR_LINE);
@@ -1409,8 +1412,9 @@ static READ16_DEVICE_HANDLER( dokyusp_eeprom_r )
return eeprom->read_bit() & 1;
}
-static WRITE16_DEVICE_HANDLER( dokyusp_eeprom_bit_w )
+WRITE16_MEMBER(metro_state::dokyusp_eeprom_bit_w)
{
+ device_t *device = machine().device("eeprom");
if (ACCESSING_BITS_0_7)
{
// latch the bit
@@ -1423,8 +1427,9 @@ static WRITE16_DEVICE_HANDLER( dokyusp_eeprom_bit_w )
}
}
-static WRITE16_DEVICE_HANDLER( dokyusp_eeprom_reset_w )
+WRITE16_MEMBER(metro_state::dokyusp_eeprom_reset_w)
{
+ device_t *device = machine().device("eeprom");
if (ACCESSING_BITS_0_7)
{
// reset line asserted: reset.
@@ -1458,11 +1463,11 @@ static ADDRESS_MAP_START( dokyusp_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x27880e, 0x27880f) AM_RAM AM_SHARE("screenctrl") // Screen Control
AM_RANGE(0x279700, 0x279713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers
AM_RANGE(0x400000, 0x400001) AM_WRITENOP // ? 5
- AM_RANGE(0x500000, 0x500001) AM_DEVWRITE_LEGACY("oki", gakusai_oki_bank_lo_w) // Sound
+ AM_RANGE(0x500000, 0x500001) AM_WRITE(gakusai_oki_bank_lo_w) // Sound
AM_RANGE(0x600000, 0x600003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
- AM_RANGE(0xc00000, 0xc00001) AM_DEVWRITE_LEGACY("eeprom", dokyusp_eeprom_reset_w) // EEPROM
- AM_RANGE(0xd00000, 0xd00001) AM_DEVREADWRITE_LEGACY("eeprom", dokyusp_eeprom_r, dokyusp_eeprom_bit_w) // EEPROM
+ AM_RANGE(0xc00000, 0xc00001) AM_WRITE(dokyusp_eeprom_reset_w) // EEPROM
+ AM_RANGE(0xd00000, 0xd00001) AM_READWRITE(dokyusp_eeprom_r, dokyusp_eeprom_bit_w) // EEPROM
ADDRESS_MAP_END
@@ -1498,9 +1503,9 @@ static ADDRESS_MAP_START( dokyusei_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x478882, 0x478883) AM_READ_PORT("IN0") //
AM_RANGE(0x478884, 0x478885) AM_READ_PORT("DSW0") // 2 x DSW
AM_RANGE(0x478886, 0x478887) AM_READ_PORT("DSW1") //
- AM_RANGE(0x800000, 0x800001) AM_DEVWRITE_LEGACY("oki", gakusai_oki_bank_hi_w) // Samples Bank?
+ AM_RANGE(0x800000, 0x800001) AM_WRITE(gakusai_oki_bank_hi_w) // Samples Bank?
AM_RANGE(0x900000, 0x900001) AM_WRITENOP // ? 4
- AM_RANGE(0xa00000, 0xa00001) AM_DEVWRITE_LEGACY("oki", gakusai_oki_bank_lo_w) // Samples Bank
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITE(gakusai_oki_bank_lo_w) // Samples Bank
AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff) //
AM_RANGE(0xd00000, 0xd00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
ADDRESS_MAP_END
@@ -1760,12 +1765,10 @@ ADDRESS_MAP_END
Mouja
***************************************************************************/
-static WRITE16_DEVICE_HANDLER( mouja_sound_rombank_w )
+WRITE16_MEMBER(metro_state::mouja_sound_rombank_w)
{
- metro_state *state = device->machine().driver_data<metro_state>();
-
if (ACCESSING_BITS_0_7)
- state->m_oki->set_bank_base(((data >> 3) & 0x07) * 0x40000);
+ m_oki->set_bank_base(((data >> 3) & 0x07) * 0x40000);
}
static ADDRESS_MAP_START( mouja_map, AS_PROGRAM, 16, metro_state )
@@ -1792,7 +1795,7 @@ static ADDRESS_MAP_START( mouja_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x478886, 0x478887) AM_READ_PORT("IN2") //
AM_RANGE(0x478888, 0x478889) AM_WRITENOP // ??
AM_RANGE(0x479700, 0x479713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers
- AM_RANGE(0x800000, 0x800001) AM_DEVWRITE_LEGACY("oki", mouja_sound_rombank_w)
+ AM_RANGE(0x800000, 0x800001) AM_WRITE(mouja_sound_rombank_w)
AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0xd00000, 0xd00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xffff)
#if 0
diff --git a/src/mame/drivers/mexico86.c b/src/mame/drivers/mexico86.c
index 8459fe5ee0c..5d7baf0d01e 100644
--- a/src/mame/drivers/mexico86.c
+++ b/src/mame/drivers/mexico86.c
@@ -63,8 +63,9 @@ PS4 J8635 PS4 J8541 PS4 J8648
*
*************************************/
-static READ8_DEVICE_HANDLER( kiki_ym2203_r )
+READ8_MEMBER(mexico86_state::kiki_ym2203_r)
{
+ device_t *device = machine().device("ymsnd");
UINT8 result = ym2203_r(device, offset);
if (offset == 0)
@@ -99,7 +100,7 @@ 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_LEGACY("ymsnd", kiki_ym2203_r,ym2203_w)
+ AM_RANGE(0xc000, 0xc001) AM_READ(kiki_ym2203_r) AM_DEVWRITE_LEGACY("ymsnd", ym2203_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mexico86_m68705_map, AS_PROGRAM, 8, mexico86_state )
diff --git a/src/mame/drivers/midyunit.c b/src/mame/drivers/midyunit.c
index f885a9daf88..5162b087dc6 100644
--- a/src/mame/drivers/midyunit.c
+++ b/src/mame/drivers/midyunit.c
@@ -135,8 +135,9 @@ Notes:
*
*************************************/
-static WRITE8_DEVICE_HANDLER( yawdim_oki_bank_w )
+WRITE8_MEMBER(midyunit_state::yawdim_oki_bank_w)
{
+ device_t *device = machine().device("oki");
if (data & 4)
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * (data & 3));
}
@@ -193,7 +194,7 @@ ADDRESS_MAP_END
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_LEGACY("oki", yawdim_oki_bank_w)
+ AM_RANGE(0x9000, 0x97ff) AM_WRITE(yawdim_oki_bank_w)
AM_RANGE(0x9800, 0x9fff) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xa000, 0xa7ff) AM_READ(soundlatch_byte_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c
index aac5b259457..4dbc42e95b3 100644
--- a/src/mame/drivers/midzeus.c
+++ b/src/mame/drivers/midzeus.c
@@ -156,18 +156,20 @@ WRITE32_MEMBER(midzeus_state::cmos_protect_w)
*
*************************************/
-static READ32_DEVICE_HANDLER( zeus2_timekeeper_r )
+READ32_MEMBER(midzeus_state::zeus2_timekeeper_r)
{
+ device_t *device = machine().device("m48t35");
return timekeeper_r(device, offset) | 0xffffff00;
}
-static WRITE32_DEVICE_HANDLER( zeus2_timekeeper_w )
+WRITE32_MEMBER(midzeus_state::zeus2_timekeeper_w)
{
+ device_t *device = machine().device("m48t35");
if (bitlatch[2] && !cmos_protected)
timekeeper_w(device, offset, data);
else
- logerror("%s:zeus2_timekeeper_w with bitlatch[2] = %d, cmos_protected = %d\n", device->machine().describe_context(), bitlatch[2], cmos_protected);
+ logerror("%s:zeus2_timekeeper_w with bitlatch[2] = %d, cmos_protected = %d\n", machine().describe_context(), bitlatch[2], cmos_protected);
cmos_protected = TRUE;
}
@@ -587,7 +589,7 @@ static ADDRESS_MAP_START( zeus2_map, AS_PROGRAM, 32, midzeus_state )
AM_RANGE(0x990000, 0x99000f) AM_READWRITE_LEGACY(midway_ioasic_r, midway_ioasic_w)
AM_RANGE(0x9c0000, 0x9c000f) AM_READWRITE(analog_r, analog_w)
AM_RANGE(0x9e0000, 0x9e0000) AM_WRITENOP // watchdog?
- AM_RANGE(0x9f0000, 0x9f7fff) AM_DEVREADWRITE_LEGACY("m48t35", zeus2_timekeeper_r, zeus2_timekeeper_w)
+ AM_RANGE(0x9f0000, 0x9f7fff) AM_READWRITE(zeus2_timekeeper_r, zeus2_timekeeper_w)
AM_RANGE(0x9f8000, 0x9f8000) AM_WRITE(cmos_protect_w)
AM_RANGE(0xa00000, 0xbfffff) AM_ROM AM_REGION("user1", 0)
AM_RANGE(0xc00000, 0xffffff) AM_ROMBANK("bank1") AM_REGION("user2", 0)
diff --git a/src/mame/drivers/mitchell.c b/src/mame/drivers/mitchell.c
index 3184bc1c546..51b54f5e616 100644
--- a/src/mame/drivers/mitchell.c
+++ b/src/mame/drivers/mitchell.c
@@ -123,20 +123,23 @@ READ8_MEMBER(mitchell_state::pang_port5_r)
return (ioport("SYS0")->read() & 0xfe) | (m_irq_source & 1);
}
-static WRITE8_DEVICE_HANDLER( eeprom_cs_w )
+WRITE8_MEMBER(mitchell_state::eeprom_cs_w)
{
+ device_t *device = machine().device("eeprom");
eeprom_device *eeprom = downcast<eeprom_device *>(device);
eeprom->set_cs_line(data ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE8_DEVICE_HANDLER( eeprom_clock_w )
+WRITE8_MEMBER(mitchell_state::eeprom_clock_w)
{
+ device_t *device = machine().device("eeprom");
eeprom_device *eeprom = downcast<eeprom_device *>(device);
eeprom->set_clock_line(data ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE8_DEVICE_HANDLER( eeprom_serial_w )
+WRITE8_MEMBER(mitchell_state::eeprom_serial_w)
{
+ device_t *device = machine().device("eeprom");
eeprom_device *eeprom = downcast<eeprom_device *>(device);
eeprom->write_bit(data);
}
@@ -325,9 +328,9 @@ static ADDRESS_MAP_START( mitchell_io_map, AS_IO, 8, mitchell_state )
AM_RANGE(0x05, 0x05) AM_READ(pang_port5_r) AM_DEVWRITE("oki", okim6295_device, write)
AM_RANGE(0x06, 0x06) AM_WRITENOP /* watchdog? irq ack? */
AM_RANGE(0x07, 0x07) AM_WRITE(pang_video_bank_w) /* Video RAM bank register */
- AM_RANGE(0x08, 0x08) AM_DEVWRITE_LEGACY("eeprom", eeprom_cs_w)
- AM_RANGE(0x10, 0x10) AM_DEVWRITE_LEGACY("eeprom", eeprom_clock_w)
- AM_RANGE(0x18, 0x18) AM_DEVWRITE_LEGACY("eeprom", eeprom_serial_w)
+ AM_RANGE(0x08, 0x08) AM_WRITE(eeprom_cs_w)
+ AM_RANGE(0x10, 0x10) AM_WRITE(eeprom_clock_w)
+ AM_RANGE(0x18, 0x18) AM_WRITE(eeprom_serial_w)
ADDRESS_MAP_END
/* spangbl */
@@ -350,9 +353,9 @@ static ADDRESS_MAP_START( spangbl_io_map, AS_IO, 8, mitchell_state )
AM_RANGE(0x05, 0x05) AM_READ_PORT("SYS0")
AM_RANGE(0x06, 0x06) AM_WRITENOP /* watchdog? irq ack? */
AM_RANGE(0x07, 0x07) AM_WRITE(pang_video_bank_w) /* Video RAM bank register */
- AM_RANGE(0x08, 0x08) AM_DEVWRITE_LEGACY("eeprom", eeprom_cs_w)
- AM_RANGE(0x10, 0x10) AM_DEVWRITE_LEGACY("eeprom", eeprom_clock_w)
- AM_RANGE(0x18, 0x18) AM_DEVWRITE_LEGACY("eeprom", eeprom_serial_w)
+ AM_RANGE(0x08, 0x08) AM_WRITE(eeprom_cs_w)
+ AM_RANGE(0x10, 0x10) AM_WRITE(eeprom_clock_w)
+ AM_RANGE(0x18, 0x18) AM_WRITE(eeprom_serial_w)
ADDRESS_MAP_END
@@ -375,16 +378,15 @@ ADDRESS_MAP_END
/**** Monsters World ****/
-static WRITE8_DEVICE_HANDLER( oki_banking_w )
+WRITE8_MEMBER(mitchell_state::oki_banking_w)
{
- mitchell_state *state = device->machine().driver_data<mitchell_state>();
- state->m_oki->set_bank_base(0x40000 * (data & 3));
+ m_oki->set_bank_base(0x40000 * (data & 3));
}
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_LEGACY("oki", oki_banking_w)
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(oki_banking_w)
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/mjkjidai.c b/src/mame/drivers/mjkjidai.c
index 0393bb58751..e2be6f42b3a 100644
--- a/src/mame/drivers/mjkjidai.c
+++ b/src/mame/drivers/mjkjidai.c
@@ -105,8 +105,9 @@ static void mjkjidai_adpcm_play (mjkjidai_adpcm_state *state, int offset, int le
state->m_playing = 1;
}
-static WRITE8_DEVICE_HANDLER( adpcm_w )
+WRITE8_MEMBER(mjkjidai_state::adpcm_w)
{
+ device_t *device = machine().device("adpcm");
mjkjidai_adpcm_state *state = (mjkjidai_adpcm_state *)downcast<legacy_device_base *>(device)->token();
mjkjidai_adpcm_play (state, (data & 0x07) * 0x1000, 0x1000 * 2);
}
@@ -190,7 +191,7 @@ static ADDRESS_MAP_START( mjkjidai_io_map, AS_IO, 8, mjkjidai_state )
AM_RANGE(0x12, 0x12) AM_READ_PORT("IN1")
AM_RANGE(0x20, 0x20) AM_DEVWRITE_LEGACY("sn1", sn76496_w)
AM_RANGE(0x30, 0x30) AM_DEVWRITE_LEGACY("sn2", sn76496_w)
- AM_RANGE(0x40, 0x40) AM_DEVWRITE_LEGACY("adpcm", adpcm_w)
+ AM_RANGE(0x40, 0x40) AM_WRITE(adpcm_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/model1.c b/src/mame/drivers/model1.c
index 6c71ef5f6ab..d893d06cb29 100644
--- a/src/mame/drivers/model1.c
+++ b/src/mame/drivers/model1.c
@@ -977,11 +977,16 @@ READ16_MEMBER(model1_state::m1_snd_v60_ready_r)
return 1;
}
-static WRITE16_DEVICE_HANDLER( m1_snd_mpcm_bnk_w )
+WRITE16_MEMBER(model1_state::m1_snd_mpcm_bnk1_w)
{
+ device_t *device = machine().device("sega1");
+ multipcm_set_bank(device, 0x100000 * (data & 3), 0x100000 * (data & 3));
+}
+WRITE16_MEMBER(model1_state::m1_snd_mpcm_bnk2_w)
+{
+ device_t *device = machine().device("sega2");
multipcm_set_bank(device, 0x100000 * (data & 3), 0x100000 * (data & 3));
}
-
WRITE16_MEMBER(model1_state::m1_snd_68k_latch1_w)
{
}
@@ -996,9 +1001,9 @@ static ADDRESS_MAP_START( model1_snd, AS_PROGRAM, 16, model1_state )
AM_RANGE(0xc20002, 0xc20003) AM_READWRITE(m1_snd_v60_ready_r, m1_snd_68k_latch2_w )
AM_RANGE(0xc40000, 0xc40007) AM_DEVREADWRITE8_LEGACY("sega1", multipcm_r, multipcm_w, 0x00ff )
AM_RANGE(0xc40012, 0xc40013) AM_WRITENOP
- AM_RANGE(0xc50000, 0xc50001) AM_DEVWRITE_LEGACY("sega1", m1_snd_mpcm_bnk_w )
+ AM_RANGE(0xc50000, 0xc50001) AM_WRITE(m1_snd_mpcm_bnk1_w )
AM_RANGE(0xc60000, 0xc60007) AM_DEVREADWRITE8_LEGACY("sega2", multipcm_r, multipcm_w, 0x00ff )
- AM_RANGE(0xc70000, 0xc70001) AM_DEVWRITE_LEGACY("sega2", m1_snd_mpcm_bnk_w )
+ AM_RANGE(0xc70000, 0xc70001) AM_WRITE(m1_snd_mpcm_bnk2_w )
AM_RANGE(0xd00000, 0xd00007) AM_DEVREADWRITE8_LEGACY("ymsnd", ym3438_r, ym3438_w, 0x00ff )
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c
index f8bfb81fa7d..7acea1c5035 100644
--- a/src/mame/drivers/model2.c
+++ b/src/mame/drivers/model2.c
@@ -1812,8 +1812,15 @@ READ16_MEMBER(model2_state::m1_snd_v60_ready_r)
return 1;
}
-static WRITE16_DEVICE_HANDLER( m1_snd_mpcm_bnk_w )
+WRITE16_MEMBER(model2_state::m1_snd_mpcm_bnk1_w)
{
+ device_t *device = machine().device("sega1");
+ multipcm_set_bank(device, 0x100000 * (data & 0xf), 0x100000 * (data & 0xf));
+}
+
+WRITE16_MEMBER(model2_state::m1_snd_mpcm_bnk2_w)
+{
+ device_t *device = machine().device("sega2");
multipcm_set_bank(device, 0x100000 * (data & 0xf), 0x100000 * (data & 0xf));
}
@@ -1832,9 +1839,9 @@ static ADDRESS_MAP_START( model1_snd, AS_PROGRAM, 16, model2_state )
AM_RANGE(0xc20002, 0xc20003) AM_READWRITE(m1_snd_v60_ready_r, m1_snd_68k_latch2_w )
AM_RANGE(0xc40000, 0xc40007) AM_DEVREADWRITE8_LEGACY("sega1", multipcm_r, multipcm_w, 0x00ff )
AM_RANGE(0xc40012, 0xc40013) AM_WRITENOP
- AM_RANGE(0xc50000, 0xc50001) AM_DEVWRITE_LEGACY("sega1", m1_snd_mpcm_bnk_w )
+ AM_RANGE(0xc50000, 0xc50001) AM_WRITE(m1_snd_mpcm_bnk1_w )
AM_RANGE(0xc60000, 0xc60007) AM_DEVREADWRITE8_LEGACY("sega2", multipcm_r, multipcm_w, 0x00ff )
- AM_RANGE(0xc70000, 0xc70001) AM_DEVWRITE_LEGACY("sega2", m1_snd_mpcm_bnk_w )
+ AM_RANGE(0xc70000, 0xc70001) AM_WRITE(m1_snd_mpcm_bnk2_w )
AM_RANGE(0xd00000, 0xd00007) AM_DEVREADWRITE8_LEGACY("ymsnd", ym3438_r, ym3438_w, 0x00ff )
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/moo.c b/src/mame/drivers/moo.c
index e3149a56306..936145d46be 100644
--- a/src/mame/drivers/moo.c
+++ b/src/mame/drivers/moo.c
@@ -246,8 +246,9 @@ WRITE16_MEMBER(moo_state::moo_prot_w)
}
-static WRITE16_DEVICE_HANDLER( moobl_oki_bank_w )
+WRITE16_MEMBER(moo_state::moobl_oki_bank_w)
{
+ device_t *device = machine().device("oki");
logerror("%x to OKI bank\n", data);
downcast<okim6295_device *>(device)->set_bank_base((data & 0x0f) * 0x40000);
@@ -299,7 +300,7 @@ static ADDRESS_MAP_START( moobl_map, AS_PROGRAM, 16, moo_state )
AM_RANGE(0x0ca000, 0x0ca01f) AM_DEVWRITE_LEGACY("k054338", k054338_word_w) /* K054338 alpha blending engine */
AM_RANGE(0x0cc000, 0x0cc01f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
AM_RANGE(0x0d0000, 0x0d001f) AM_WRITEONLY /* CCU regs (ignored) */
- AM_RANGE(0x0d6ffc, 0x0d6ffd) AM_DEVWRITE_LEGACY("oki", moobl_oki_bank_w)
+ AM_RANGE(0x0d6ffc, 0x0d6ffd) AM_WRITE(moobl_oki_bank_w)
AM_RANGE(0x0d6ffe, 0x0d6fff) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x0d8000, 0x0d8007) AM_DEVWRITE_LEGACY("k056832", k056832_b_word_w) /* VSCCS regs */
AM_RANGE(0x0da000, 0x0da001) AM_READ_PORT("P1_P3")
diff --git a/src/mame/drivers/mpu4.c b/src/mame/drivers/mpu4.c
index 8f5d711cb83..0a4c52ba096 100644
--- a/src/mame/drivers/mpu4.c
+++ b/src/mame/drivers/mpu4.c
@@ -475,16 +475,15 @@ static MACHINE_RESET( mpu4 )
/* 6809 IRQ handler */
-WRITE_LINE_DEVICE_HANDLER( cpu0_irq )
+WRITE_LINE_MEMBER(mpu4_state::cpu0_irq)
{
- mpu4_state *drvstate = device->machine().driver_data<mpu4_state>();
- pia6821_device *pia3 = device->machine().device<pia6821_device>("pia_ic3");
- pia6821_device *pia4 = device->machine().device<pia6821_device>("pia_ic4");
- pia6821_device *pia5 = device->machine().device<pia6821_device>("pia_ic5");
- pia6821_device *pia6 = device->machine().device<pia6821_device>("pia_ic6");
- pia6821_device *pia7 = device->machine().device<pia6821_device>("pia_ic7");
- pia6821_device *pia8 = device->machine().device<pia6821_device>("pia_ic8");
- ptm6840_device *ptm2 = device->machine().device<ptm6840_device>("ptm_ic2");
+ pia6821_device *pia3 = machine().device<pia6821_device>("pia_ic3");
+ pia6821_device *pia4 = machine().device<pia6821_device>("pia_ic4");
+ pia6821_device *pia5 = machine().device<pia6821_device>("pia_ic5");
+ pia6821_device *pia6 = machine().device<pia6821_device>("pia_ic6");
+ pia6821_device *pia7 = machine().device<pia6821_device>("pia_ic7");
+ pia6821_device *pia8 = machine().device<pia6821_device>("pia_ic8");
+ ptm6840_device *ptm2 = machine().device<ptm6840_device>("ptm_ic2");
/* The PIA and PTM IRQ lines are all connected to a common PCB track, leading directly to the 6809 IRQ line. */
int combined_state = pia3->irq_a_state() | pia3->irq_b_state() |
@@ -495,14 +494,14 @@ WRITE_LINE_DEVICE_HANDLER( cpu0_irq )
pia8->irq_a_state() | pia8->irq_b_state() |
ptm2->irq_state();
- if (!drvstate->m_link7a_connected) //7B = IRQ, 7A = FIRQ, both = NMI
+ if (!m_link7a_connected) //7B = IRQ, 7A = FIRQ, both = NMI
{
- cputag_set_input_line(device->machine(), "maincpu", M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE);
LOG(("6809 int%d \n", combined_state));
}
else
{
- cputag_set_input_line(device->machine(), "maincpu", M6809_FIRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", M6809_FIRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE);
LOG(("6809 fint%d \n", combined_state));
}
}
@@ -540,8 +539,9 @@ WRITE8_MEMBER(mpu4_state::bankset_w)
/* IC2 6840 PTM handler */
-static WRITE8_DEVICE_HANDLER( ic2_o1_callback )
+WRITE8_MEMBER(mpu4_state::ic2_o1_callback)
{
+ device_t *device = machine().device("pia_ic2");
downcast<ptm6840_device *>(device)->set_c2(data);
/* copy output value to IC2 c2
@@ -550,9 +550,10 @@ static WRITE8_DEVICE_HANDLER( ic2_o1_callback )
}
-static WRITE8_DEVICE_HANDLER( ic2_o2_callback )
+WRITE8_MEMBER(mpu4_state::ic2_o2_callback)
{
- pia6821_device *pia = device->machine().device<pia6821_device>("pia_ic3");
+ device_t *device = machine().device("pia_ic2");
+ pia6821_device *pia = machine().device<pia6821_device>("pia_ic3");
pia->ca1_w(data); /* copy output value to IC3 ca1 */
/* the output from timer2 is the input clock for timer3 */
/* miscellaneous interrupts generated here */
@@ -560,8 +561,9 @@ static WRITE8_DEVICE_HANDLER( ic2_o2_callback )
}
-static WRITE8_DEVICE_HANDLER( ic2_o3_callback )
+WRITE8_MEMBER(mpu4_state::ic2_o3_callback)
{
+ device_t *device = machine().device("pia_ic2");
/* the output from timer3 is used as a square wave for the alarm output
and as an external clock source for timer 1! */
/* also runs lamp fade */
@@ -573,24 +575,23 @@ static const ptm6840_interface ptm_ic2_intf =
{
MPU4_MASTER_CLOCK / 4,
{ 0, 0, 0 },
- { DEVCB_HANDLER(ic2_o1_callback),
- DEVCB_HANDLER(ic2_o2_callback),
- DEVCB_HANDLER(ic2_o3_callback) },
- DEVCB_LINE(cpu0_irq)
+ { DEVCB_DRIVER_MEMBER(mpu4_state,ic2_o1_callback),
+ DEVCB_DRIVER_MEMBER(mpu4_state,ic2_o2_callback),
+ DEVCB_DRIVER_MEMBER(mpu4_state,ic2_o3_callback) },
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,cpu0_irq)
};
/* 6821 PIA handlers */
/* IC3, lamp data lines + alpha numeric display */
-static WRITE8_DEVICE_HANDLER( pia_ic3_porta_w )
+WRITE8_MEMBER(mpu4_state::pia_ic3_porta_w)
{
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
int i;
- LOG_IC3(("%s: IC3 PIA Port A Set to %2x (lamp strobes 1 - 9)\n", device->machine().describe_context(),data));
+ LOG_IC3(("%s: IC3 PIA Port A Set to %2x (lamp strobes 1 - 9)\n", machine().describe_context(),data));
- if(state->m_ic23_active)
+ if(m_ic23_active)
{
- if (state->m_lamp_strobe != state->m_input_strobe)
+ if (m_lamp_strobe != m_input_strobe)
{
// Because of the nature of the lamping circuit, there is an element of persistance
// As a consequence, the lamp column data can change before the input strobe without
@@ -598,31 +599,30 @@ static WRITE8_DEVICE_HANDLER( pia_ic3_porta_w )
for (i = 0; i < 8; i++)
{
- output_set_lamp_value((8*state->m_input_strobe)+i, ((data & (1 << i)) !=0));
+ output_set_lamp_value((8*m_input_strobe)+i, ((data & (1 << i)) !=0));
}
- state->m_lamp_strobe = state->m_input_strobe;
+ m_lamp_strobe = m_input_strobe;
}
}
}
-static WRITE8_DEVICE_HANDLER( pia_ic3_portb_w )
+WRITE8_MEMBER(mpu4_state::pia_ic3_portb_w)
{
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
int i;
- LOG_IC3(("%s: IC3 PIA Port B Set to %2x (lamp strobes 10 - 17)\n", device->machine().describe_context(),data));
+ LOG_IC3(("%s: IC3 PIA Port B Set to %2x (lamp strobes 10 - 17)\n", machine().describe_context(),data));
- if(state->m_ic23_active)
+ if(m_ic23_active)
{
- if (state->m_lamp_strobe2 != state->m_input_strobe)
+ if (m_lamp_strobe2 != m_input_strobe)
{
for (i = 0; i < 8; i++)
{
- output_set_lamp_value((8*state->m_input_strobe)+i+64, ((data & (1 << i)) !=0));
+ output_set_lamp_value((8*m_input_strobe)+i+64, ((data & (1 << i)) !=0));
}
- state->m_lamp_strobe2 = state->m_input_strobe;
+ m_lamp_strobe2 = m_input_strobe;
}
- if (state->m_led_lamp)
+ if (m_led_lamp)
{
/* Some games (like Connect 4) use 'programmable' LED displays, built from light display lines in section 2. */
/* These are mostly low-tech machines, where such wiring proved cheaper than an extender card */
@@ -643,18 +643,17 @@ static WRITE8_DEVICE_HANDLER( pia_ic3_portb_w )
}
}
-static WRITE_LINE_DEVICE_HANDLER( pia_ic3_ca2_w )
+WRITE_LINE_MEMBER(mpu4_state::pia_ic3_ca2_w)
{
- mpu4_state *drvstate = device->machine().driver_data<mpu4_state>();
- LOG_IC3(("%s: IC3 PIA Write CA2 (alpha data), %02X\n", device->machine().describe_context(),state));
+ LOG_IC3(("%s: IC3 PIA Write CA2 (alpha data), %02X\n", machine().describe_context(),state));
- drvstate->m_alpha_data_line = state;
+ m_alpha_data_line = state;
}
-static WRITE_LINE_DEVICE_HANDLER( pia_ic3_cb2_w )
+WRITE_LINE_MEMBER(mpu4_state::pia_ic3_cb2_w)
{
- LOG_IC3(("%s: IC3 PIA Write CB (alpha reset), %02X\n",device->machine().describe_context(),state));
+ LOG_IC3(("%s: IC3 PIA Write CB (alpha reset), %02X\n",machine().describe_context(),state));
// DM Data pin A
if ( !state )
{
@@ -671,12 +670,12 @@ static const pia6821_interface pia_ic3_intf =
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
- DEVCB_HANDLER(pia_ic3_porta_w), /* port A out */
- DEVCB_HANDLER(pia_ic3_portb_w), /* port B out */
- DEVCB_LINE(pia_ic3_ca2_w), /* line CA2 out */
- DEVCB_LINE(pia_ic3_cb2_w), /* port CB2 out */
- DEVCB_LINE(cpu0_irq), /* IRQA */
- DEVCB_LINE(cpu0_irq) /* IRQB */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_ic3_porta_w), /* port A out */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_ic3_portb_w), /* port B out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,pia_ic3_ca2_w), /* line CA2 out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,pia_ic3_cb2_w), /* port CB2 out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,cpu0_irq), /* IRQA */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,cpu0_irq) /* IRQB */
};
@@ -752,217 +751,212 @@ static TIMER_CALLBACK( ic24_timeout )
/* IC4, 7 seg leds, 50Hz timer reel sensors, current sensors */
-static WRITE8_DEVICE_HANDLER( pia_ic4_porta_w )
+WRITE8_MEMBER(mpu4_state::pia_ic4_porta_w)
{
int i;
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
- if(state->m_ic23_active)
+ if(m_ic23_active)
{
- if (((state->m_lamp_extender == NO_EXTENDER)||(state->m_lamp_extender == SMALL_CARD)||(state->m_lamp_extender == LARGE_CARD_C))&& (state->m_led_extender == NO_EXTENDER))
+ if (((m_lamp_extender == NO_EXTENDER)||(m_lamp_extender == SMALL_CARD)||(m_lamp_extender == LARGE_CARD_C))&& (m_led_extender == NO_EXTENDER))
{
- if(state->m_led_strobe != state->m_input_strobe)
+ if(m_led_strobe != m_input_strobe)
{
for(i=0; i<8; i++)
{
- output_set_indexed_value("mpu4led",((7 - state->m_input_strobe) * 8) +i,(data & (1 << i)) !=0);
+ output_set_indexed_value("mpu4led",((7 - m_input_strobe) * 8) +i,(data & (1 << i)) !=0);
}
- output_set_digit_value(7 - state->m_input_strobe,data);
+ output_set_digit_value(7 - m_input_strobe,data);
}
- state->m_led_strobe = state->m_input_strobe;
+ m_led_strobe = m_input_strobe;
}
}
}
-static WRITE8_DEVICE_HANDLER( pia_ic4_portb_w )
+WRITE8_MEMBER(mpu4_state::pia_ic4_portb_w)
{
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
- if (state->m_reel_mux)
+ if (m_reel_mux)
{
/* A write here connects one reel (and only one)
to the optic test circuit. This allows 8 reels
to be supported instead of 4. */
- if (state->m_reel_mux == SEVEN_REEL)
+ if (m_reel_mux == SEVEN_REEL)
{
- state->m_active_reel= reel_mux_table7[(data >> 4) & 0x07];
+ m_active_reel= reel_mux_table7[(data >> 4) & 0x07];
}
else
- state->m_active_reel= reel_mux_table[(data >> 4) & 0x07];
+ m_active_reel= reel_mux_table[(data >> 4) & 0x07];
}
}
-static READ8_DEVICE_HANDLER( pia_ic4_portb_r )
+READ8_MEMBER(mpu4_state::pia_ic4_portb_r)
{
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
- pia6821_device *pia = downcast<pia6821_device *>(device);
- if ( state->m_serial_data )
+ pia6821_device *pia = machine().device<pia6821_device>("pia_ic4");
+ if ( m_serial_data )
{
- state->m_ic4_input_b |= 0x80;
+ m_ic4_input_b |= 0x80;
pia->cb1_w(1);
}
else
{
- state->m_ic4_input_b &= ~0x80;
+ m_ic4_input_b &= ~0x80;
pia->cb1_w(0);
}
- if (!state->m_reel_mux)
+ if (!m_reel_mux)
{
- if ( state->m_optic_pattern & 0x01 ) state->m_ic4_input_b |= 0x40; /* reel A tab */
- else state->m_ic4_input_b &= ~0x40;
+ if ( m_optic_pattern & 0x01 ) m_ic4_input_b |= 0x40; /* reel A tab */
+ else m_ic4_input_b &= ~0x40;
- if ( state->m_optic_pattern & 0x02 ) state->m_ic4_input_b |= 0x20; /* reel B tab */
- else state->m_ic4_input_b &= ~0x20;
+ if ( m_optic_pattern & 0x02 ) m_ic4_input_b |= 0x20; /* reel B tab */
+ else m_ic4_input_b &= ~0x20;
- if ( state->m_optic_pattern & 0x04 ) state->m_ic4_input_b |= 0x10; /* reel C tab */
- else state->m_ic4_input_b &= ~0x10;
+ if ( m_optic_pattern & 0x04 ) m_ic4_input_b |= 0x10; /* reel C tab */
+ else m_ic4_input_b &= ~0x10;
- if ( state->m_optic_pattern & 0x08 ) state->m_ic4_input_b |= 0x08; /* reel D tab */
- else state->m_ic4_input_b &= ~0x08;
+ if ( m_optic_pattern & 0x08 ) m_ic4_input_b |= 0x08; /* reel D tab */
+ else m_ic4_input_b &= ~0x08;
}
else
{
- if (stepper_optic_state(state->m_active_reel))
+ if (stepper_optic_state(m_active_reel))
{
- state->m_ic4_input_b |= 0x08;
+ m_ic4_input_b |= 0x08;
}
else
{
- state->m_ic4_input_b &= ~0x08;
+ m_ic4_input_b &= ~0x08;
}
}
- if ( state->m_signal_50hz ) state->m_ic4_input_b |= 0x04; /* 50 Hz */
- else state->m_ic4_input_b &= ~0x04;
+ if ( m_signal_50hz ) m_ic4_input_b |= 0x04; /* 50 Hz */
+ else m_ic4_input_b &= ~0x04;
- if (state->m_ic4_input_b & 0x02)
+ if (m_ic4_input_b & 0x02)
{
- state->m_ic4_input_b &= ~0x02;
+ m_ic4_input_b &= ~0x02;
}
else
{
- state->m_ic4_input_b |= 0x02; //Pulse the overcurrent line with every read to show the CPU each lamp has lit
+ m_ic4_input_b |= 0x02; //Pulse the overcurrent line with every read to show the CPU each lamp has lit
}
#ifdef UNUSED_FUNCTION
- if ( lamp_undercurrent ) state->m_ic4_input_b |= 0x01;
+ if ( lamp_undercurrent ) m_ic4_input_b |= 0x01;
#endif
- LOG_IC3(("%s: IC4 PIA Read of Port B %x\n",device->machine().describe_context(),state->m_ic4_input_b));
- return state->m_ic4_input_b;
+ LOG_IC3(("%s: IC4 PIA Read of Port B %x\n",machine().describe_context(),m_ic4_input_b));
+ return m_ic4_input_b;
}
-static WRITE_LINE_DEVICE_HANDLER( pia_ic4_ca2_w )
+WRITE_LINE_MEMBER(mpu4_state::pia_ic4_ca2_w)
{
- mpu4_state *drvstate = device->machine().driver_data<mpu4_state>();
- LOG_IC3(("%s: IC4 PIA Write CA (input MUX strobe /LED B), %02X\n", device->machine().describe_context(),state));
+ mpu4_state *drvstate = machine().driver_data<mpu4_state>();
+ LOG_IC3(("%s: IC4 PIA Write CA (input MUX strobe /LED B), %02X\n", machine().describe_context(),state));
- drvstate->m_IC23GB = state;
+ m_IC23GB = state;
ic23_update(drvstate);
}
-static WRITE_LINE_DEVICE_HANDLER( pia_ic4_cb2_w )
+WRITE_LINE_MEMBER(mpu4_state::pia_ic4_cb2_w)
{
- mpu4_state *drvstate = device->machine().driver_data<mpu4_state>();
- LOG_IC3(("%s: IC4 PIA Write CA (input MUX strobe /LED B), %02X\n", device->machine().describe_context(),state));
- drvstate->m_reel_flag=state;
+ LOG_IC3(("%s: IC4 PIA Write CA (input MUX strobe /LED B), %02X\n", machine().describe_context(),state));
+ m_reel_flag=state;
}
static const pia6821_interface pia_ic4_intf =
{
DEVCB_NULL, /* port A in */
- DEVCB_HANDLER(pia_ic4_portb_r), /* port B in */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_ic4_portb_r), /* port B in */
DEVCB_NULL, /* line CA1 in */
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
- DEVCB_HANDLER(pia_ic4_porta_w), /* port A out */
- DEVCB_HANDLER(pia_ic4_portb_w), /* port B out */
- DEVCB_LINE(pia_ic4_ca2_w), /* line CA2 out */
- DEVCB_LINE(pia_ic4_cb2_w), /* line CB2 out */
- DEVCB_LINE(cpu0_irq), /* IRQA */
- DEVCB_LINE(cpu0_irq) /* IRQB */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_ic4_porta_w), /* port A out */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_ic4_portb_w), /* port B out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,pia_ic4_ca2_w), /* line CA2 out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,pia_ic4_cb2_w), /* line CB2 out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,cpu0_irq), /* IRQA */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,cpu0_irq) /* IRQB */
};
/* IC5, AUX ports, coin lockouts and AY sound chip select (MODs below 4 only) */
-static READ8_DEVICE_HANDLER( pia_ic5_porta_r )
+READ8_MEMBER(mpu4_state::pia_ic5_porta_r)
{
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
- if (state->m_lamp_extender == LARGE_CARD_A)
+ if (m_lamp_extender == LARGE_CARD_A)
{
- if (state->m_lamp_sense && state->m_ic23_active)
+ if (m_lamp_sense && m_ic23_active)
{
- state->m_aux1_input |= 0x40;
+ m_aux1_input |= 0x40;
}
else
{
- state->m_aux1_input &= ~0x40; //Pulse the overcurrent line with every read to show the CPU each lamp has lit
+ m_aux1_input &= ~0x40; //Pulse the overcurrent line with every read to show the CPU each lamp has lit
}
}
- if (state->m_hopper == HOPPER_NONDUART_A)
+ if (m_hopper == HOPPER_NONDUART_A)
{
/* if (hopper1_active)
{
- state->m_aux1_input |= 0x04;
+ m_aux1_input |= 0x04;
}
else
{
- state->m_aux1_input &= ~0x04;
+ m_aux1_input &= ~0x04;
}*/
}
- LOG(("%s: IC5 PIA Read of Port A (AUX1)\n",device->machine().describe_context()));
+ LOG(("%s: IC5 PIA Read of Port A (AUX1)\n",machine().describe_context()));
- return device->machine().root_device().ioport("AUX1")->read()|state->m_aux1_input;
+ return machine().root_device().ioport("AUX1")->read()|m_aux1_input;
}
-static WRITE8_DEVICE_HANDLER( pia_ic5_porta_w )
+WRITE8_MEMBER(mpu4_state::pia_ic5_porta_w)
{
int i;
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
- pia6821_device *pia_ic4 = device->machine().device<pia6821_device>("pia_ic4");
- if (state->m_hopper == HOPPER_NONDUART_A)
+ mpu4_state *state = machine().driver_data<mpu4_state>();
+ pia6821_device *pia_ic4 = machine().device<pia6821_device>("pia_ic4");
+ if (m_hopper == HOPPER_NONDUART_A)
{
//hopper1_drive_sensor(data&0x10);
}
- switch (state->m_lamp_extender)
+ switch (m_lamp_extender)
{
case NO_EXTENDER:
- if (state->m_led_extender == CARD_B)
+ if (m_led_extender == CARD_B)
{
- led_write_latch(state, data & 0x1f, pia_ic4->a_output(),state->m_input_strobe);
+ led_write_latch(state, data & 0x1f, pia_ic4->a_output(),m_input_strobe);
}
- else if ((state->m_led_extender != CARD_A)||(state->m_led_extender != NO_EXTENDER))
+ else if ((m_led_extender != CARD_A)||(m_led_extender != NO_EXTENDER))
{
for(i=0; i<8; i++)
{
- output_set_indexed_value("mpu4led",((state->m_input_strobe + 8) * 8) +i,(data & (1 << i)) !=0);
+ output_set_indexed_value("mpu4led",((m_input_strobe + 8) * 8) +i,(data & (1 << i)) !=0);
}
- output_set_digit_value((state->m_input_strobe+8),data);
+ output_set_digit_value((m_input_strobe+8),data);
}
break;
case SMALL_CARD:
- if(state->m_ic23_active)
+ if(m_ic23_active)
{
lamp_extend_small(state,data);
}
break;
case LARGE_CARD_A:
- lamp_extend_large(state,data,state->m_input_strobe,state->m_ic23_active);
+ lamp_extend_large(state,data,m_input_strobe,m_ic23_active);
break;
case LARGE_CARD_B:
- lamp_extend_large(state,data,state->m_input_strobe,state->m_ic23_active);
- if ((state->m_ic23_active) && state->m_card_live)
+ lamp_extend_large(state,data,m_input_strobe,m_ic23_active);
+ if ((m_ic23_active) && m_card_live)
{
for(i=0; i<8; i++)
{
- output_set_indexed_value("mpu4led",(((8*(state->m_last_b7 >>7))+ state->m_input_strobe) * 8) +i,(~data & (1 << i)) !=0);
+ output_set_indexed_value("mpu4led",(((8*(m_last_b7 >>7))+ m_input_strobe) * 8) +i,(~data & (1 << i)) !=0);
}
- output_set_digit_value(((8*(state->m_last_b7 >>7))+state->m_input_strobe),~data);
+ output_set_digit_value(((8*(m_last_b7 >>7))+m_input_strobe),~data);
}
break;
case LARGE_CARD_C:
- lamp_extend_large(state,data,state->m_input_strobe,state->m_ic23_active);
+ lamp_extend_large(state,data,m_input_strobe,m_ic23_active);
break;
}
- if (state->m_reel_mux == SIX_REEL_5TO8)
+ if (m_reel_mux == SIX_REEL_5TO8)
{
stepper_update(4, data&0x0F);
stepper_update(5, (data >> 4)&0x0F);
@@ -970,7 +964,7 @@ static WRITE8_DEVICE_HANDLER( pia_ic5_porta_w )
awp_draw_reel(5);
}
else
- if (state->m_reel_mux == SEVEN_REEL)
+ if (m_reel_mux == SEVEN_REEL)
{
stepper_update(1, data&0x0F);
stepper_update(2, (data >> 4)&0x0F);
@@ -978,10 +972,10 @@ static WRITE8_DEVICE_HANDLER( pia_ic5_porta_w )
awp_draw_reel(2);
}
- if (mame_stricmp(device->machine().system().name, "m4gambal") == 0)
+ if (mame_stricmp(machine().system().name, "m4gambal") == 0)
{
/* The 'Gamball' device is a unique piece of mechanical equipment, designed to
- provide a truly fair hi-lo gamble for an AWP machine. Functionally, it consists of
+ provide a truly fair hi-lo gamble for an AWP machine(). Functionally, it consists of
a ping-pong ball or similar enclosed in the machine's backbox, on a platform with 12
holes. When the low 4 bytes of AUX1 are triggered, this fires the ball out from the
hole it's currently in, to land in another. Landing in the same hole causes the machine to
@@ -991,71 +985,71 @@ static WRITE8_DEVICE_HANDLER( pia_ic5_porta_w )
of making the game fair, short of simulating the physics of a bouncing ball ;)*/
if (data & 0x0f)
{
- switch (device->machine().rand() & 0x2)
+ switch (machine().rand() & 0x2)
{
case 0x00: //Top row
{
- switch (device->machine().rand() & 0x3)
+ switch (machine().rand() & 0x3)
{
case 0x00: //7
- state->m_aux1_input = (state->m_aux1_input & 0x0f);
- state->m_aux1_input|= 0xa0;
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0xa0;
break;
case 0x01://4
- state->m_aux1_input = (state->m_aux1_input & 0x0f);
- state->m_aux1_input|= 0xb0;
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0xb0;
break;
case 0x02://9
- state->m_aux1_input = (state->m_aux1_input & 0x0f);
- state->m_aux1_input|= 0xc0;
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0xc0;
break;
case 0x03://8
- state->m_aux1_input = (state->m_aux1_input & 0x0f);
- state->m_aux1_input|= 0xd0;
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0xd0;
break;
}
}
case 0x01: //Middle row - note switches don't match pattern
{
- switch (device->machine().rand() & 0x3)
+ switch (machine().rand() & 0x3)
{
case 0x00://12
- state->m_aux1_input = (state->m_aux1_input & 0x0f);
- state->m_aux1_input|= 0x40;
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0x40;
break;
case 0x01://1
- state->m_aux1_input = (state->m_aux1_input & 0x0f);
- state->m_aux1_input|= 0x50;
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0x50;
break;
case 0x02://11
- state->m_aux1_input = (state->m_aux1_input & 0x0f);
- state->m_aux1_input|= 0x80;
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0x80;
break;
case 0x03://2
- state->m_aux1_input = (state->m_aux1_input & 0x0f);
- state->m_aux1_input|= 0x90;
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0x90;
break;
}
}
case 0x02: //Bottom row
{
- switch (device->machine().rand() & 0x3)
+ switch (machine().rand() & 0x3)
{
case 0x00://5
- state->m_aux1_input = (state->m_aux1_input & 0x0f);
- state->m_aux1_input|= 0x00;
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0x00;
break;
case 0x01://10
- state->m_aux1_input = (state->m_aux1_input & 0x0f);
- state->m_aux1_input|= 0x10;
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0x10;
break;
case 0x02://3
- state->m_aux1_input = (state->m_aux1_input & 0x0f);
- state->m_aux1_input|= 0x20;
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0x20;
break;
case 0x03://6
- state->m_aux1_input = (state->m_aux1_input & 0x0f);
- state->m_aux1_input|= 0x30;
+ m_aux1_input = (m_aux1_input & 0x0f);
+ m_aux1_input|= 0x30;
break;
}
}
@@ -1064,50 +1058,47 @@ static WRITE8_DEVICE_HANDLER( pia_ic5_porta_w )
}
}
-static WRITE8_DEVICE_HANDLER( pia_ic5_portb_w )
+WRITE8_MEMBER(mpu4_state::pia_ic5_portb_w)
{
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
- if (state->m_hopper == HOPPER_NONDUART_B)
+ if (m_hopper == HOPPER_NONDUART_B)
{
//hopper1_drive_motor(data &0x01)
//hopper1_drive_sensor(data &0x08)
}
- if (state->m_led_extender == CARD_A)
+ if (m_led_extender == CARD_A)
{
- // led_write_latch(state, data & 0x07, pia_get_output_a(pia_ic4),state->m_input_strobe)
+ // led_write_latch(state, data & 0x07, pia_get_output_a(pia_ic4),m_input_strobe)
}
}
-READ8_DEVICE_HANDLER( pia_ic5_portb_r )
+READ8_MEMBER(mpu4_state::pia_ic5_portb_r)
{
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
- pia6821_device *pia_ic5 = device->machine().device<pia6821_device>("pia_ic5");
- if (state->m_hopper == HOPPER_NONDUART_B)
+ pia6821_device *pia_ic5 = machine().device<pia6821_device>("pia_ic5");
+ if (m_hopper == HOPPER_NONDUART_B)
{/*
if (hopper1_active)
{
- state->m_aux2_input |= 0x08;
+ m_aux2_input |= 0x08;
}
else
{
- state->m_aux2_input &= ~0x08;
+ m_aux2_input &= ~0x08;
}*/
}
- LOG(("%s: IC5 PIA Read of Port B (coin input AUX2)\n",device->machine().describe_context()));
- coin_lockout_w(device->machine(), 0, (pia_ic5->b_output() & 0x01) );
- coin_lockout_w(device->machine(), 1, (pia_ic5->b_output() & 0x02) );
- coin_lockout_w(device->machine(), 2, (pia_ic5->b_output() & 0x04) );
- coin_lockout_w(device->machine(), 3, (pia_ic5->b_output() & 0x08) );
- return device->machine().root_device().ioport("AUX2")->read() | state->m_aux2_input;
+ LOG(("%s: IC5 PIA Read of Port B (coin input AUX2)\n",machine().describe_context()));
+ coin_lockout_w(machine(), 0, (pia_ic5->b_output() & 0x01) );
+ coin_lockout_w(machine(), 1, (pia_ic5->b_output() & 0x02) );
+ coin_lockout_w(machine(), 2, (pia_ic5->b_output() & 0x04) );
+ coin_lockout_w(machine(), 3, (pia_ic5->b_output() & 0x08) );
+ return machine().root_device().ioport("AUX2")->read() | m_aux2_input;
}
-WRITE_LINE_DEVICE_HANDLER( pia_ic5_ca2_w )
+WRITE_LINE_MEMBER(mpu4_state::pia_ic5_ca2_w)
{
- mpu4_state *drvstate = device->machine().driver_data<mpu4_state>();
- LOG(("%s: IC5 PIA Write CA2 (Serial Tx) %2x\n",device->machine().describe_context(),state));
- drvstate->m_serial_data = state;
+ LOG(("%s: IC5 PIA Write CA2 (Serial Tx) %2x\n",machine().describe_context(),state));
+ m_serial_data = state;
}
@@ -1182,43 +1173,43 @@ static void update_ay(device_t *device)
}
-WRITE_LINE_DEVICE_HANDLER( pia_ic5_cb2_w )
+WRITE_LINE_MEMBER(mpu4_state::pia_ic5_cb2_w)
{
+ device_t *device = machine().device("pia_ic5");
update_ay(device);
}
static const pia6821_interface pia_ic5_intf =
{
- DEVCB_HANDLER(pia_ic5_porta_r), /* port A in */
- DEVCB_HANDLER(pia_ic5_portb_r), /* port B in */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_ic5_porta_r), /* port A in */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_ic5_portb_r), /* port B in */
DEVCB_NULL, /* line CA1 in */
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
- DEVCB_HANDLER(pia_ic5_porta_w), /* port A out */
- DEVCB_HANDLER(pia_ic5_portb_w), /* port B out */
- DEVCB_LINE(pia_ic5_ca2_w), /* line CA2 out */
- DEVCB_LINE(pia_ic5_cb2_w), /* port CB2 out */
- DEVCB_LINE(cpu0_irq), /* IRQA */
- DEVCB_LINE(cpu0_irq) /* IRQB */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_ic5_porta_w), /* port A out */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_ic5_portb_w), /* port B out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,pia_ic5_ca2_w), /* line CA2 out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,pia_ic5_cb2_w), /* port CB2 out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,cpu0_irq), /* IRQA */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,cpu0_irq) /* IRQB */
};
/* IC6, Reel A and B and AY registers (MODs below 4 only) */
-static WRITE8_DEVICE_HANDLER( pia_ic6_portb_w )
+WRITE8_MEMBER(mpu4_state::pia_ic6_portb_w)
{
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
- LOG(("%s: IC6 PIA Port B Set to %2x (Reel A and B)\n", device->machine().describe_context(),data));
+ LOG(("%s: IC6 PIA Port B Set to %2x (Reel A and B)\n", machine().describe_context(),data));
- if (state->m_reel_mux == SEVEN_REEL)
+ if (m_reel_mux == SEVEN_REEL)
{
stepper_update(3, data&0x0F);
stepper_update(4, (data >> 4)&0x0F);
awp_draw_reel(3);
awp_draw_reel(4);
}
- else if (state->m_reels)
+ else if (m_reels)
{
stepper_update(0, data & 0x0F );
stepper_update(1, (data>>4) & 0x0F );
@@ -1226,50 +1217,50 @@ static WRITE8_DEVICE_HANDLER( pia_ic6_portb_w )
awp_draw_reel(1);
}
- if (state->m_reel_flag && (state->m_reel_mux == STANDARD_REEL) && state->m_reels)
+ if (m_reel_flag && (m_reel_mux == STANDARD_REEL) && m_reels)
{
- if ( stepper_optic_state(0) ) state->m_optic_pattern |= 0x01;
- else state->m_optic_pattern &= ~0x01;
+ if ( stepper_optic_state(0) ) m_optic_pattern |= 0x01;
+ else m_optic_pattern &= ~0x01;
- if ( stepper_optic_state(1) ) state->m_optic_pattern |= 0x02;
- else state->m_optic_pattern &= ~0x02;
+ if ( stepper_optic_state(1) ) m_optic_pattern |= 0x02;
+ else m_optic_pattern &= ~0x02;
}
}
-static WRITE8_DEVICE_HANDLER( pia_ic6_porta_w )
+WRITE8_MEMBER(mpu4_state::pia_ic6_porta_w)
{
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
- LOG(("%s: IC6 PIA Write A %2x\n", device->machine().describe_context(),data));
- if (state->m_mod_number <4)
+ device_t *device = machine().device("pia_ic6");
+ LOG(("%s: IC6 PIA Write A %2x\n", machine().describe_context(),data));
+ if (m_mod_number <4)
{
- state->m_ay_data = data;
+ m_ay_data = data;
update_ay(device);
}
}
-static WRITE_LINE_DEVICE_HANDLER( pia_ic6_ca2_w )
+WRITE_LINE_MEMBER(mpu4_state::pia_ic6_ca2_w)
{
- mpu4_state *drvstate = device->machine().driver_data<mpu4_state>();
- LOG(("%s: IC6 PIA write CA2 %2x (AY8913 BC1)\n", device->machine().describe_context(),state));
- if (drvstate->m_mod_number <4)
+ device_t *device = machine().device("pia_ic6");
+ LOG(("%s: IC6 PIA write CA2 %2x (AY8913 BC1)\n", machine().describe_context(),state));
+ if (m_mod_number <4)
{
- if ( state ) drvstate->m_ay8913_address |= 0x01;
- else drvstate->m_ay8913_address &= ~0x01;
+ if ( state ) m_ay8913_address |= 0x01;
+ else m_ay8913_address &= ~0x01;
update_ay(device);
}
}
-static WRITE_LINE_DEVICE_HANDLER( pia_ic6_cb2_w )
+WRITE_LINE_MEMBER(mpu4_state::pia_ic6_cb2_w)
{
- mpu4_state *drvstate = device->machine().driver_data<mpu4_state>();
- LOG(("%s: IC6 PIA write CB2 %2x (AY8913 BCDIR)\n", device->machine().describe_context(),state));
- if (drvstate->m_mod_number <4)
+ device_t *device = machine().device("pia_ic6");
+ LOG(("%s: IC6 PIA write CB2 %2x (AY8913 BCDIR)\n", machine().describe_context(),state));
+ if (m_mod_number <4)
{
- if ( state ) drvstate->m_ay8913_address |= 0x02;
- else drvstate->m_ay8913_address &= ~0x02;
+ if ( state ) m_ay8913_address |= 0x02;
+ else m_ay8913_address &= ~0x02;
update_ay(device);
}
}
@@ -1283,28 +1274,27 @@ static const pia6821_interface pia_ic6_intf =
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
- DEVCB_HANDLER(pia_ic6_porta_w), /* port A out */
- DEVCB_HANDLER(pia_ic6_portb_w), /* port B out */
- DEVCB_LINE(pia_ic6_ca2_w), /* line CA2 out */
- DEVCB_LINE(pia_ic6_cb2_w), /* port CB2 out */
- DEVCB_LINE(cpu0_irq), /* IRQA */
- DEVCB_LINE(cpu0_irq) /* IRQB */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_ic6_porta_w), /* port A out */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_ic6_portb_w), /* port B out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,pia_ic6_ca2_w), /* line CA2 out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,pia_ic6_cb2_w), /* port CB2 out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,cpu0_irq), /* IRQA */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,cpu0_irq) /* IRQB */
};
/* IC7 Reel C and D, mechanical meters/Reel E and F, input strobe bit A */
-static WRITE8_DEVICE_HANDLER( pia_ic7_porta_w )
+WRITE8_MEMBER(mpu4_state::pia_ic7_porta_w)
{
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
- LOG(("%s: IC7 PIA Port A Set to %2x (Reel C and D)\n", device->machine().describe_context(),data));
- if (state->m_reel_mux == SEVEN_REEL)
+ LOG(("%s: IC7 PIA Port A Set to %2x (Reel C and D)\n", machine().describe_context(),data));
+ if (m_reel_mux == SEVEN_REEL)
{
stepper_update(5, data&0x0F);
stepper_update(6, (data >> 4)&0x0F);
awp_draw_reel(5);
awp_draw_reel(6);
}
- else if (state->m_reels)
+ else if (m_reels)
{
stepper_update(2, data & 0x0F );
stepper_update(3, (data>>4) & 0x0F );
@@ -1312,31 +1302,30 @@ static WRITE8_DEVICE_HANDLER( pia_ic7_porta_w )
awp_draw_reel(3);
}
- if (state->m_reel_flag && (state->m_reel_mux == STANDARD_REEL) && state->m_reels)
+ if (m_reel_flag && (m_reel_mux == STANDARD_REEL) && m_reels)
{
- if ( stepper_optic_state(2) ) state->m_optic_pattern |= 0x04;
- else state->m_optic_pattern &= ~0x04;
- if ( stepper_optic_state(3) ) state->m_optic_pattern |= 0x08;
- else state->m_optic_pattern &= ~0x08;
+ if ( stepper_optic_state(2) ) m_optic_pattern |= 0x04;
+ else m_optic_pattern &= ~0x04;
+ if ( stepper_optic_state(3) ) m_optic_pattern |= 0x08;
+ else m_optic_pattern &= ~0x08;
}
}
-static WRITE8_DEVICE_HANDLER( pia_ic7_portb_w )
+WRITE8_MEMBER(mpu4_state::pia_ic7_portb_w)
{
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
- if (state->m_hopper == HOPPER_DUART_A)
+ if (m_hopper == HOPPER_DUART_A)
{
//duart write data
}
- else if (state->m_hopper == HOPPER_NONDUART_A)
+ else if (m_hopper == HOPPER_NONDUART_A)
{
//hoppr1_drive_motor(data & 0x10);
}
- state->m_mmtr_data = data;
+ m_mmtr_data = data;
}
-static READ8_DEVICE_HANDLER( pia_ic7_portb_r )
+READ8_MEMBER(mpu4_state::pia_ic7_portb_r)
{
/* The meters are connected to a voltage drop sensor, where current
flowing through them also passes through pin B7, meaning that when
@@ -1371,136 +1360,131 @@ all eight meters are driven from this port, giving the 8 line driver chip
-static WRITE_LINE_DEVICE_HANDLER( pia_ic7_ca2_w )
+WRITE_LINE_MEMBER(mpu4_state::pia_ic7_ca2_w)
{
- mpu4_state *drvstate = device->machine().driver_data<mpu4_state>();
- LOG(("%s: IC7 PIA write CA2 %2x (input strobe bit 0 / LED A)\n", device->machine().describe_context(),state));
+ mpu4_state *drvstate = machine().driver_data<mpu4_state>();
+ LOG(("%s: IC7 PIA write CA2 %2x (input strobe bit 0 / LED A)\n", machine().describe_context(),state));
- drvstate->m_IC23GA = state;
+ m_IC23GA = state;
ic24_setup(drvstate);
ic23_update(drvstate);
}
-static WRITE_LINE_DEVICE_HANDLER( pia_ic7_cb2_w )
+WRITE_LINE_MEMBER(mpu4_state::pia_ic7_cb2_w)
{
- mpu4_state *drvstate = device->machine().driver_data<mpu4_state>();
- drvstate->m_remote_meter = state?0x80:0x00;
+ m_remote_meter = state?0x80:0x00;
}
static const pia6821_interface pia_ic7_intf =
{
DEVCB_NULL, /* port A in */
- DEVCB_HANDLER(pia_ic7_portb_r), /* port B in */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_ic7_portb_r), /* port B in */
DEVCB_NULL, /* line CA1 in */
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
- DEVCB_HANDLER(pia_ic7_porta_w), /* port A out */
- DEVCB_HANDLER(pia_ic7_portb_w), /* port B out */
- DEVCB_LINE(pia_ic7_ca2_w), /* line CA2 out */
- DEVCB_LINE(pia_ic7_cb2_w), /* line CB2 out */
- DEVCB_LINE(cpu0_irq), /* IRQA */
- DEVCB_LINE(cpu0_irq) /* IRQB */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_ic7_porta_w), /* port A out */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_ic7_portb_w), /* port B out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,pia_ic7_ca2_w), /* line CA2 out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,pia_ic7_cb2_w), /* line CB2 out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,cpu0_irq), /* IRQA */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,cpu0_irq) /* IRQB */
};
/* IC8, Inputs, TRIACS, alpha clock */
-static READ8_DEVICE_HANDLER( pia_ic8_porta_r )
+READ8_MEMBER(mpu4_state::pia_ic8_porta_r)
{
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
static const char *const portnames[] = { "ORANGE1", "ORANGE2", "BLACK1", "BLACK2", "ORANGE1", "ORANGE2", "DIL1", "DIL2" };
- pia6821_device *pia_ic5 = device->machine().device<pia6821_device>("pia_ic5");
+ pia6821_device *pia_ic5 = machine().device<pia6821_device>("pia_ic5");
- LOG_IC8(("%s: IC8 PIA Read of Port A (MUX input data)\n", device->machine().describe_context()));
+ LOG_IC8(("%s: IC8 PIA Read of Port A (MUX input data)\n", machine().describe_context()));
/* The orange inputs are polled twice as often as the black ones, for reasons of efficiency.
This is achieved via connecting every input line to an AND gate, thus allowing two strobes
to represent each orange input bank (strobes are active low). */
- pia_ic5->cb1_w(device->machine().root_device().ioport("AUX2")->read() & 0x80);
- return device->machine().root_device().ioport(portnames[state->m_input_strobe])->read();
+ pia_ic5->cb1_w(machine().root_device().ioport("AUX2")->read() & 0x80);
+ return machine().root_device().ioport(portnames[m_input_strobe])->read();
}
-static WRITE8_DEVICE_HANDLER( pia_ic8_portb_w )
+WRITE8_MEMBER(mpu4_state::pia_ic8_portb_w)
{
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
- if (state->m_hopper == HOPPER_DUART_B)
+ if (m_hopper == HOPPER_DUART_B)
{
// duart.drive_sensor(data & 0x04, data & 0x01, 0, 0);
}
- else if (state->m_hopper == HOPPER_DUART_C)
+ else if (m_hopper == HOPPER_DUART_C)
{
// duart.drive_sensor(data & 0x04, data & 0x01, data & 0x04, data & 0x02);
}
int i;
- LOG_IC8(("%s: IC8 PIA Port B Set to %2x (OUTPUT PORT, TRIACS)\n", device->machine().describe_context(),data));
+ LOG_IC8(("%s: IC8 PIA Port B Set to %2x (OUTPUT PORT, TRIACS)\n", machine().describe_context(),data));
for (i = 0; i < 8; i++)
{
output_set_indexed_value("triac", i, data & (1 << i));
}
}
-static WRITE_LINE_DEVICE_HANDLER( pia_ic8_ca2_w )
+WRITE_LINE_MEMBER(mpu4_state::pia_ic8_ca2_w)
{
- mpu4_state *drvstate = device->machine().driver_data<mpu4_state>();
- LOG_IC8(("%s: IC8 PIA write CA2 (input_strobe bit 2 / LED C) %02X\n", device->machine().describe_context(), state & 0xFF));
+ mpu4_state *drvstate = machine().driver_data<mpu4_state>();
+ LOG_IC8(("%s: IC8 PIA write CA2 (input_strobe bit 2 / LED C) %02X\n", machine().describe_context(), state & 0xFF));
- drvstate->m_IC23GC = state;
+ m_IC23GC = state;
ic23_update(drvstate);
}
-static WRITE_LINE_DEVICE_HANDLER( pia_ic8_cb2_w )
+WRITE_LINE_MEMBER(mpu4_state::pia_ic8_cb2_w)
{
- mpu4_state *drvstate = device->machine().driver_data<mpu4_state>();
- LOG_IC8(("%s: IC8 PIA write CB2 (alpha clock) %02X\n", device->machine().describe_context(), state & 0xFF));
+ LOG_IC8(("%s: IC8 PIA write CB2 (alpha clock) %02X\n", machine().describe_context(), state & 0xFF));
// DM Data pin B
- if (drvstate->m_alpha_clock != state)
+ if (m_alpha_clock != state)
{
- if (!drvstate->m_alpha_clock)//falling edge
+ if (!m_alpha_clock)//falling edge
{
- ROC10937_shift_data(0, drvstate->m_alpha_data_line?0:1);
+ ROC10937_shift_data(0, m_alpha_data_line?0:1);
}
}
- drvstate->m_alpha_clock = state;
+ m_alpha_clock = state;
ROC10937_draw_16seg(0);
}
static const pia6821_interface pia_ic8_intf =
{
- DEVCB_HANDLER(pia_ic8_porta_r), /* port A in */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_ic8_porta_r), /* port A in */
DEVCB_NULL, /* port B in */
DEVCB_NULL, /* line CA1 in */
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
DEVCB_NULL, /* port A out */
- DEVCB_HANDLER(pia_ic8_portb_w), /* port B out */
- DEVCB_LINE(pia_ic8_ca2_w), /* line CA2 out */
- DEVCB_LINE(pia_ic8_cb2_w), /* port CB2 out */
- DEVCB_LINE(cpu0_irq), /* IRQA */
- DEVCB_LINE(cpu0_irq) /* IRQB */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_ic8_portb_w), /* port B out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,pia_ic8_ca2_w), /* line CA2 out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,pia_ic8_cb2_w), /* port CB2 out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,cpu0_irq), /* IRQA */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,cpu0_irq) /* IRQB */
};
// universal sampled sound program card PCB 683077
// Sampled sound card, using a PIA and PTM for timing and data handling
-static WRITE8_DEVICE_HANDLER( pia_gb_porta_w )
+WRITE8_MEMBER(mpu4_state::pia_gb_porta_w)
{
- device_t *msm6376 = device->machine().device("msm6376");
- LOG_SS(("%s: GAMEBOARD: PIA Port A Set to %2x\n", device->machine().describe_context(),data));
+ device_t *msm6376 = machine().device("msm6376");
+ LOG_SS(("%s: GAMEBOARD: PIA Port A Set to %2x\n", machine().describe_context(),data));
okim6376_w(msm6376, 0, data);
}
-static WRITE8_DEVICE_HANDLER( pia_gb_portb_w )
+WRITE8_MEMBER(mpu4_state::pia_gb_portb_w)
{
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
- device_t *msm6376 = device->machine().device("msm6376");
- okim6376_device *msm = device->machine().device<okim6376_device>("msm6376");
+ device_t *msm6376 = machine().device("msm6376");
+ okim6376_device *msm = machine().device<okim6376_device>("msm6376");
- int changed = state->m_expansion_latch^data;
+ int changed = m_expansion_latch^data;
- LOG_SS(("%s: GAMEBOARD: PIA Port B Set to %2x\n", device->machine().describe_context(),data));
+ LOG_SS(("%s: GAMEBOARD: PIA Port B Set to %2x\n", machine().describe_context(),data));
if ( changed & 0x20)
{ // digital volume clock line changed
@@ -1508,15 +1492,15 @@ static WRITE8_DEVICE_HANDLER( pia_gb_portb_w )
{ // changed from high to low,
if ( !(data & 0x10) )//down
{
- if ( state->m_global_volume < 32 ) state->m_global_volume++; //steps unknown
+ if ( m_global_volume < 32 ) m_global_volume++; //steps unknown
}
else
{//up
- if ( state->m_global_volume > 0 ) state->m_global_volume--;
+ if ( m_global_volume > 0 ) m_global_volume--;
}
{
- float percent = (32-state->m_global_volume)/32.0;
+ float percent = (32-m_global_volume)/32.0;
msm->set_output_gain(0, percent);
msm->set_output_gain(1, percent);
}
@@ -1525,11 +1509,10 @@ static WRITE8_DEVICE_HANDLER( pia_gb_portb_w )
okim6376_ch2_w(msm6376,data&0x02);
okim6376_st_w(msm6376,data&0x01);
}
-static READ8_DEVICE_HANDLER( pia_gb_portb_r )
+READ8_MEMBER(mpu4_state::pia_gb_portb_r)
{
- device_t *msm6376 = device->machine().device("msm6376");
- mpu4_state *state = device->machine().driver_data<mpu4_state>();
- LOG_SS(("%s: GAMEBOARD: PIA Read of Port B\n",device->machine().describe_context()));
+ device_t *msm6376 = machine().device("msm6376");
+ LOG_SS(("%s: GAMEBOARD: PIA Read of Port B\n",machine().describe_context()));
int data=0;
// b7 NAR - we can load another address into Channel 1
// b6, 1 = OKI ready, 0 = OKI busy
@@ -1543,39 +1526,38 @@ static READ8_DEVICE_HANDLER( pia_gb_portb_r )
if ( okim6376_busy_r(msm6376) ) data |= 0x40;
else data &= ~0x40;
- return ( data | state->m_expansion_latch );
+ return ( data | m_expansion_latch );
}
-static WRITE_LINE_DEVICE_HANDLER( pia_gb_ca2_w )
+WRITE_LINE_MEMBER(mpu4_state::pia_gb_ca2_w)
{
- LOG_SS(("%s: GAMEBOARD: OKI RESET data = %02X\n", device->machine().describe_context(), state));
+ LOG_SS(("%s: GAMEBOARD: OKI RESET data = %02X\n", machine().describe_context(), state));
// reset line
}
-static WRITE_LINE_DEVICE_HANDLER( pia_gb_cb2_w )
+WRITE_LINE_MEMBER(mpu4_state::pia_gb_cb2_w)
{
- mpu4_state *mstate = device->machine().driver_data<mpu4_state>();
//Some BWB games use this to drive the bankswitching
- if (mstate->m_bwb_bank)
+ if (m_bwb_bank)
{
- mstate->m_pageval = state;
- mstate->membank("bank1")->set_entry((mstate->m_pageval + (mstate->m_pageset ? 4 : 0)) & 0x07);
+ m_pageval = state;
+ membank("bank1")->set_entry((m_pageval + (m_pageset ? 4 : 0)) & 0x07);
}
}
static const pia6821_interface pia_ic4ss_intf =
{
DEVCB_NULL, /* port A in */
- DEVCB_HANDLER(pia_gb_portb_r), /* port B in */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_gb_portb_r), /* port B in */
DEVCB_NULL, /* line CA1 in */
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
- DEVCB_HANDLER(pia_gb_porta_w), /* port A out */
- DEVCB_HANDLER(pia_gb_portb_w), /* port B out */
- DEVCB_LINE(pia_gb_ca2_w), /* line CA2 out */
- DEVCB_LINE(pia_gb_cb2_w), /* line CB2 out */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_gb_porta_w), /* port A out */
+ DEVCB_DRIVER_MEMBER(mpu4_state,pia_gb_portb_w), /* port B out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,pia_gb_ca2_w), /* line CA2 out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state,pia_gb_cb2_w), /* line CB2 out */
DEVCB_NULL, /* IRQA */
DEVCB_NULL /* IRQB */
};
@@ -1594,19 +1576,21 @@ and t1 is the initial value in clock 1.
*/
//O3 -> G1 O1 -> c2 o2 -> c1
-static WRITE8_DEVICE_HANDLER( ic3ss_o1_callback )
+WRITE8_MEMBER(mpu4_state::ic3ss_o1_callback)
{
+ device_t * device = machine().device("ptm_ic3ss");
downcast<ptm6840_device *>(device)->set_c2(data);
}
-static WRITE8_DEVICE_HANDLER( ic3ss_o2_callback )//Generates 'beep' tone
+WRITE8_MEMBER(mpu4_state::ic3ss_o2_callback)//Generates 'beep' tone
{
+ device_t * device = machine().device("ptm_ic3ss");
downcast<ptm6840_device *>(device)->set_c1(data);//?
}
-static WRITE8_DEVICE_HANDLER( ic3ss_o3_callback )
+WRITE8_MEMBER(mpu4_state::ic3ss_o3_callback)
{
//downcast<ptm6840_device *>(device)->set_g1(data); /* this output is the clock for timer1 */
}
@@ -1650,9 +1634,9 @@ static const ptm6840_interface ptm_ic3ss_intf =
{
MPU4_MASTER_CLOCK / 4,
{ 0, 0, 0 },
- { DEVCB_HANDLER(ic3ss_o1_callback),
- DEVCB_HANDLER(ic3ss_o2_callback),
- DEVCB_HANDLER(ic3ss_o3_callback) },
+ { DEVCB_DRIVER_MEMBER(mpu4_state,ic3ss_o1_callback),
+ DEVCB_DRIVER_MEMBER(mpu4_state,ic3ss_o2_callback),
+ DEVCB_DRIVER_MEMBER(mpu4_state,ic3ss_o3_callback) },
DEVCB_NULL//LINE(cpu1_ptm_irq)
};
diff --git a/src/mame/drivers/mpu4vid.c b/src/mame/drivers/mpu4vid.c
index f3fc1e50b1d..2d58019c9e7 100644
--- a/src/mame/drivers/mpu4vid.c
+++ b/src/mame/drivers/mpu4vid.c
@@ -1209,17 +1209,17 @@ static READ8_DEVICE_HANDLER( pia_ic5_porta_track_r )
static const pia6821_interface pia_ic5t_intf =
{
DEVCB_HANDLER(pia_ic5_porta_track_r), /* port A in */
- DEVCB_HANDLER(pia_ic5_portb_r), /* port B in */
+ DEVCB_DRIVER_MEMBER(mpu4_state, pia_ic5_portb_r), /* port B in */
DEVCB_NULL, /* line CA1 in */
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
DEVCB_NULL, /* port A out */
DEVCB_NULL, /* port B out */
- DEVCB_LINE(pia_ic5_ca2_w), /* line CA2 out */
- DEVCB_LINE(pia_ic5_cb2_w), /* port CB2 out */
- DEVCB_LINE(cpu0_irq), /* IRQA */
- DEVCB_LINE(cpu0_irq) /* IRQB */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state, pia_ic5_ca2_w), /* line CA2 out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state, pia_ic5_cb2_w), /* port CB2 out */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state, cpu0_irq), /* IRQA */
+ DEVCB_DRIVER_LINE_MEMBER(mpu4_state, cpu0_irq) /* IRQB */
};
diff --git a/src/mame/drivers/msisaac.c b/src/mame/drivers/msisaac.c
index 0b333db0295..96914bff383 100644
--- a/src/mame/drivers/msisaac.c
+++ b/src/mame/drivers/msisaac.c
@@ -236,22 +236,22 @@ static MACHINE_RESET( ta7630 )
*/
}
-static WRITE8_DEVICE_HANDLER( sound_control_0_w )
+WRITE8_MEMBER(msisaac_state::sound_control_0_w)
{
- msisaac_state *state = device->machine().driver_data<msisaac_state>();
- state->m_snd_ctrl0 = data & 0xff;
- //popmessage("SND0 0=%2x 1=%2x", state->m_snd_ctrl0, state->m_snd_ctrl1);
+ device_t *device = machine().device("msm");
+ m_snd_ctrl0 = data & 0xff;
+ //popmessage("SND0 0=%2x 1=%2x", m_snd_ctrl0, m_snd_ctrl1);
device_sound_interface *sound;
device->interface(sound);
- sound->set_output_gain(0, state->m_vol_ctrl[state->m_snd_ctrl0 & 15] / 100.0); /* group1 from msm5232 */
- sound->set_output_gain(1, state->m_vol_ctrl[state->m_snd_ctrl0 & 15] / 100.0); /* group1 from msm5232 */
- sound->set_output_gain(2, state->m_vol_ctrl[state->m_snd_ctrl0 & 15] / 100.0); /* group1 from msm5232 */
- sound->set_output_gain(3, state->m_vol_ctrl[state->m_snd_ctrl0 & 15] / 100.0); /* group1 from msm5232 */
- sound->set_output_gain(4, state->m_vol_ctrl[(state->m_snd_ctrl0 >> 4) & 15] / 100.0); /* group2 from msm5232 */
- sound->set_output_gain(5, state->m_vol_ctrl[(state->m_snd_ctrl0 >> 4) & 15] / 100.0); /* group2 from msm5232 */
- sound->set_output_gain(6, state->m_vol_ctrl[(state->m_snd_ctrl0 >> 4) & 15] / 100.0); /* group2 from msm5232 */
- sound->set_output_gain(7, state->m_vol_ctrl[(state->m_snd_ctrl0 >> 4) & 15] / 100.0); /* group2 from msm5232 */
+ sound->set_output_gain(0, m_vol_ctrl[m_snd_ctrl0 & 15] / 100.0); /* group1 from msm5232 */
+ sound->set_output_gain(1, m_vol_ctrl[m_snd_ctrl0 & 15] / 100.0); /* group1 from msm5232 */
+ sound->set_output_gain(2, m_vol_ctrl[m_snd_ctrl0 & 15] / 100.0); /* group1 from msm5232 */
+ sound->set_output_gain(3, m_vol_ctrl[m_snd_ctrl0 & 15] / 100.0); /* group1 from msm5232 */
+ sound->set_output_gain(4, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group2 from msm5232 */
+ sound->set_output_gain(5, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group2 from msm5232 */
+ sound->set_output_gain(6, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group2 from msm5232 */
+ sound->set_output_gain(7, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group2 from msm5232 */
}
WRITE8_MEMBER(msisaac_state::sound_control_1_w)
{
@@ -265,7 +265,7 @@ static ADDRESS_MAP_START( msisaac_sound_map, AS_PROGRAM, 8, msisaac_state )
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
AM_RANGE(0x8002, 0x8003) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
AM_RANGE(0x8010, 0x801d) AM_DEVWRITE_LEGACY("msm", msm5232_w)
- AM_RANGE(0x8020, 0x8020) AM_DEVWRITE_LEGACY("msm", sound_control_0_w)
+ AM_RANGE(0x8020, 0x8020) AM_WRITE(sound_control_0_w)
AM_RANGE(0x8030, 0x8030) AM_WRITE(sound_control_1_w)
AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r)
AM_RANGE(0xc001, 0xc001) AM_WRITE(nmi_enable_w)
diff --git a/src/mame/drivers/munchmo.c b/src/mame/drivers/munchmo.c
index bcbd6f4b86f..ef7e979841f 100644
--- a/src/mame/drivers/munchmo.c
+++ b/src/mame/drivers/munchmo.c
@@ -71,12 +71,19 @@ WRITE8_MEMBER(munchmo_state::sound_nmi_ack_w)
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
}
-static READ8_DEVICE_HANDLER( munchmo_ayreset_r )
+READ8_MEMBER(munchmo_state::munchmo_ay1reset_r)
{
+ device_t *device = machine().device("ay1");
ay8910_reset_w(device,0,0);
return 0;
}
+READ8_MEMBER(munchmo_state::munchmo_ay2reset_r)
+{
+ device_t *device = machine().device("ay2");
+ ay8910_reset_w(device,0,0);
+ return 0;
+}
/*************************************
*
* Address maps
@@ -115,8 +122,8 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, munchmo_state )
AM_RANGE(0x5000, 0x5fff) AM_DEVWRITE_LEGACY("ay1", ay8910_address_w)
AM_RANGE(0x6000, 0x6fff) AM_DEVWRITE_LEGACY("ay2", ay8910_data_w)
AM_RANGE(0x7000, 0x7fff) AM_DEVWRITE_LEGACY("ay2", ay8910_address_w)
- AM_RANGE(0x8000, 0x9fff) AM_DEVREADWRITE_LEGACY("ay1", munchmo_ayreset_r, ay8910_reset_w)
- AM_RANGE(0xa000, 0xbfff) AM_DEVREADWRITE_LEGACY("ay2", munchmo_ayreset_r, ay8910_reset_w)
+ AM_RANGE(0x8000, 0x9fff) AM_READ(munchmo_ay1reset_r) AM_DEVWRITE_LEGACY("ay1",ay8910_reset_w)
+ AM_RANGE(0xa000, 0xbfff) AM_READ(munchmo_ay2reset_r) AM_DEVWRITE_LEGACY("ay2",ay8910_reset_w)
AM_RANGE(0xc000, 0xdfff) AM_WRITE(sound_nmi_ack_w)
AM_RANGE(0xe000, 0xe7ff) AM_MIRROR(0x1800) AM_RAM // is mirror ok?
ADDRESS_MAP_END
diff --git a/src/mame/drivers/n8080.c b/src/mame/drivers/n8080.c
index afc1886d2a8..5a004ad490c 100644
--- a/src/mame/drivers/n8080.c
+++ b/src/mame/drivers/n8080.c
@@ -446,14 +446,14 @@ static TIMER_DEVICE_CALLBACK( rst2_tick )
device_set_input_line_and_vector(n8080->m_maincpu, INPUT_LINE_IRQ0, state, 0xd7);
}
-static WRITE_LINE_DEVICE_HANDLER( n8080_inte_callback )
+WRITE_LINE_MEMBER(n8080_state::n8080_inte_callback)
{
- n8080_state *n8080 = device->machine().driver_data<n8080_state>();
- n8080->m_inte = state;
+ m_inte = state;
}
-static WRITE8_DEVICE_HANDLER( n8080_status_callback )
+WRITE8_MEMBER(n8080_state::n8080_status_callback)
{
+ device_t *device = machine().device("maincpu");
if (data & I8085_STATUS_INTA)
{
/* interrupt acknowledge */
@@ -463,8 +463,8 @@ static WRITE8_DEVICE_HANDLER( n8080_status_callback )
static I8085_CONFIG( n8080_cpu_config )
{
- DEVCB_DEVICE_HANDLER("maincpu",n8080_status_callback), /* STATUS changed callback */
- DEVCB_DEVICE_LINE("maincpu",n8080_inte_callback), /* INTE changed callback */
+ DEVCB_DRIVER_MEMBER(n8080_state,n8080_status_callback), /* STATUS changed callback */
+ DEVCB_DRIVER_LINE_MEMBER(n8080_state,n8080_inte_callback), /* INTE changed callback */
DEVCB_NULL, /* SID changed callback (8085A only) */
DEVCB_NULL /* SOD changed callback (8085A only) */
};
diff --git a/src/mame/drivers/namcona1.c b/src/mame/drivers/namcona1.c
index 92eacd8cef0..5c9cbb28e2d 100644
--- a/src/mame/drivers/namcona1.c
+++ b/src/mame/drivers/namcona1.c
@@ -802,14 +802,16 @@ WRITE16_MEMBER(namcona1_state::na1mcu_shared_w)
COMBINE_DATA(&m_workram[offset]);
}
-static READ16_DEVICE_HANDLER(snd_r)
+READ16_MEMBER(namcona1_state::snd_r)
{
+ device_t *device = machine().device("c140");
/* can't use DEVREADWRITE8 for this because it is opposite endianness to the CPU for some reason */
return c140_r(device,offset*2+1) | c140_r(device,offset*2)<<8;
}
-static WRITE16_DEVICE_HANDLER(snd_w)
+WRITE16_MEMBER(namcona1_state::snd_w)
{
+ device_t *device = machine().device("c140");
/* can't use DEVREADWRITE8 for this because it is opposite endianness to the CPU for some reason */
if (ACCESSING_BITS_0_7)
{
@@ -824,7 +826,7 @@ static WRITE16_DEVICE_HANDLER(snd_w)
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_LEGACY("c140", snd_r, snd_w) // C140-alike sound chip
+ AM_RANGE(0x001000, 0x001fff) AM_READWRITE(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
AM_RANGE(0x003000, 0x00afff) AM_RAM // there is a 32k RAM chip according to CGFM
AM_RANGE(0x00c000, 0x00ffff) AM_ROM AM_REGION("mcu", 0) // internal ROM BIOS
diff --git a/src/mame/drivers/nemesis.c b/src/mame/drivers/nemesis.c
index a667a0b2785..09608be9fad 100644
--- a/src/mame/drivers/nemesis.c
+++ b/src/mame/drivers/nemesis.c
@@ -244,23 +244,24 @@ WRITE16_MEMBER(nemesis_state::nemesis_soundlatch_word_w)
soundlatch_byte_w(space, offset, data & 0xff);
}
-static WRITE8_DEVICE_HANDLER( gx400_speech_start_w )
+WRITE8_MEMBER(nemesis_state::gx400_speech_start_w)
{
- nemesis_state *state = device->machine().driver_data<nemesis_state>();
+ device_t *device = machine().device("vlm");
/* the voice data is not in a rom but in sound RAM at $8000 */
- vlm5030_set_rom(device, state->m_gx400_shared_ram + 0x4000);
+ vlm5030_set_rom(device, m_gx400_shared_ram + 0x4000);
vlm5030_st(device, 1);
vlm5030_st(device, 0);
}
-static WRITE8_DEVICE_HANDLER( salamand_speech_start_w )
+WRITE8_MEMBER(nemesis_state::salamand_speech_start_w)
{
+ device_t *device = machine().device("vlm");
vlm5030_st(device, 1);
vlm5030_st(device, 0);
}
-static READ8_DEVICE_HANDLER( nemesis_portA_r )
+READ8_MEMBER(nemesis_state::nemesis_portA_r)
{
/*
bit 0-3: timer
@@ -268,19 +269,19 @@ static READ8_DEVICE_HANDLER( nemesis_portA_r )
bit 5: vlm5030 busy
bit 7: unused by this software version. Bubble Memory version uses this bit.
*/
- nemesis_state *state = device->machine().driver_data<nemesis_state>();
- int res = (state->m_audiocpu->total_cycles() / 1024) & 0x2f; // this should be 0x0f, but it doesn't work
+ int res = (m_audiocpu->total_cycles() / 1024) & 0x2f; // this should be 0x0f, but it doesn't work
res |= 0xd0;
- if (state->m_vlm != NULL && vlm5030_bsy(state->m_vlm))
+ if (m_vlm != NULL && vlm5030_bsy(m_vlm))
res |= 0x20;
return res;
}
-static WRITE8_DEVICE_HANDLER( city_sound_bank_w )
+WRITE8_MEMBER(nemesis_state::city_sound_bank_w)
{
+ device_t *device = machine().device("k007232");
int bank_A = (data & 0x03);
int bank_B = ((data >> 2) & 0x03);
k007232_set_bank(device, bank_A, bank_B);
@@ -448,7 +449,7 @@ static ADDRESS_MAP_START( gx400_sound_map, AS_PROGRAM, 8, nemesis_state )
AM_RANGE(0xe004, 0xe004) AM_DEVWRITE_LEGACY("k007232", k005289_keylatch_B_w)
AM_RANGE(0xe005, 0xe005) AM_DEVWRITE_LEGACY("ay2", ay8910_address_w)
AM_RANGE(0xe006, 0xe006) AM_DEVWRITE_LEGACY("ay1", ay8910_address_w)
- AM_RANGE(0xe030, 0xe030) AM_DEVWRITE_LEGACY("vlm", gx400_speech_start_w)
+ AM_RANGE(0xe030, 0xe030) AM_WRITE(gx400_speech_start_w)
AM_RANGE(0xe086, 0xe086) AM_DEVREAD_LEGACY("ay1", ay8910_r)
AM_RANGE(0xe106, 0xe106) AM_DEVWRITE_LEGACY("ay1", ay8910_data_w)
AM_RANGE(0xe205, 0xe205) AM_DEVREAD_LEGACY("ay2", ay8910_r)
@@ -574,7 +575,7 @@ static ADDRESS_MAP_START( sal_sound_map, AS_PROGRAM, 8, nemesis_state )
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xd000, 0xd000) AM_DEVWRITE_LEGACY("vlm", vlm5030_data_w)
AM_RANGE(0xe000, 0xe000) AM_READ(wd_r) /* watchdog?? */
- AM_RANGE(0xf000, 0xf000) AM_DEVWRITE_LEGACY("vlm", salamand_speech_start_w)
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(salamand_speech_start_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( blkpnthr_sound_map, AS_PROGRAM, 8, nemesis_state )
@@ -596,7 +597,7 @@ static ADDRESS_MAP_START( city_sound_map, AS_PROGRAM, 8, nemesis_state )
AM_RANGE(0x98e0, 0x98ff) AM_DEVREADWRITE_LEGACY("k051649", k051649_test_r, k051649_test_w)
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w)
- AM_RANGE(0xc000, 0xc000) AM_DEVWRITE_LEGACY("k007232", city_sound_bank_w) /* 7232 bankswitch */
+ AM_RANGE(0xc000, 0xc000) AM_WRITE(city_sound_bank_w) /* 7232 bankswitch */
AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_byte_r)
ADDRESS_MAP_END
@@ -1496,7 +1497,7 @@ static const ay8910_interface ay8910_interface_1 =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(nemesis_portA_r),
+ DEVCB_DRIVER_MEMBER(nemesis_state,nemesis_portA_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c
index ee39b54f0d9..fdece640f80 100644
--- a/src/mame/drivers/nmk16.c
+++ b/src/mame/drivers/nmk16.c
@@ -4671,8 +4671,9 @@ WRITE16_MEMBER(nmk16_state::twinactn_flipscreen_w)
***************************************************************************/
-static WRITE8_DEVICE_HANDLER( spec2k_oki1_banking_w )
+WRITE8_MEMBER(nmk16_state::spec2k_oki1_banking_w)
{
+ device_t *device = machine().device("oki2");
if(data == 0xfe)
downcast<okim6295_device *>(device)->set_bank_base(0);
else if(data == 0xff)
@@ -4693,19 +4694,20 @@ 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_byte_r)
- AM_RANGE(0xfff2, 0xfff2) AM_DEVWRITE_LEGACY("oki2", spec2k_oki1_banking_w )
+ AM_RANGE(0xfff2, 0xfff2) AM_WRITE(spec2k_oki1_banking_w )
AM_RANGE(0xfff8, 0xfff8) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
AM_RANGE(0xfffa, 0xfffa) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0xf800, 0xffff) AM_RAM // not used, only tested
ADDRESS_MAP_END
-static WRITE8_DEVICE_HANDLER( twinactn_oki_bank_w )
+WRITE8_MEMBER(nmk16_state::twinactn_oki_bank_w)
{
+ device_t *device = machine().device("oki1");
downcast<okim6295_device *>(device)->set_bank_base((data & 3) * 0x40000);
if (data & (~3))
- logerror("%s: invalid oki bank %02x\n", device->machine().describe_context(), data);
+ logerror("%s: invalid oki bank %02x\n", machine().describe_context(), data);
// logerror("%04x: oki bank %02x\n", cpu_get_pc(&space->device()), data);
}
@@ -4713,7 +4715,7 @@ static WRITE8_DEVICE_HANDLER( twinactn_oki_bank_w )
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_LEGACY("oki1", twinactn_oki_bank_w)
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(twinactn_oki_bank_w)
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) // From Main CPU
ADDRESS_MAP_END
diff --git a/src/mame/drivers/norautp.c b/src/mame/drivers/norautp.c
index efedadc1e19..38b786ef571 100644
--- a/src/mame/drivers/norautp.c
+++ b/src/mame/drivers/norautp.c
@@ -624,7 +624,7 @@ static PALETTE_INIT( norautp )
* R/W Handlers *
*************************/
-static WRITE8_DEVICE_HANDLER( mainlamps_w )
+WRITE8_MEMBER(norautp_state::mainlamps_w)
{
/* PPI-0 (60h-63h); PortB OUT.
Lamps:
@@ -651,7 +651,7 @@ static WRITE8_DEVICE_HANDLER( mainlamps_w )
// popmessage("lamps: %02x", data);
}
-static WRITE8_DEVICE_HANDLER( soundlamps_w )
+WRITE8_MEMBER(norautp_state::soundlamps_w)
{
/* PPI-1 (a0h-a3h); PortC OUT.
Sound & Lamps:
@@ -664,7 +664,7 @@ static WRITE8_DEVICE_HANDLER( soundlamps_w )
xxxx ---- * Discrete Sound Lines.
*/
- device_t *discrete = device->machine().device("discrete");
+ device_t *discrete = machine().device("discrete");
output_set_lamp_value(8, (data >> 0) & 1); /* DEAL / DRAW lamp */
output_set_lamp_value(9, (data >> 1) & 1); /* BET / COLLECT lamp */
@@ -676,7 +676,7 @@ static WRITE8_DEVICE_HANDLER( soundlamps_w )
// popmessage("sound bits 4-5-6-7: %02x, %02x, %02x, %02x", ((data >> 4) & 0x01), ((data >> 5) & 0x01), ((data >> 6) & 0x01), ((data >> 7) & 0x01));
}
-static WRITE8_DEVICE_HANDLER( counterlamps_w )
+WRITE8_MEMBER(norautp_state::counterlamps_w)
{
/* PPI-0 (60h-63h); PortC OUT.
Lamps & Coin Counters:
@@ -694,9 +694,9 @@ static WRITE8_DEVICE_HANDLER( counterlamps_w )
output_set_lamp_value(10, (data >> 0) & 1); /* HI lamp */
output_set_lamp_value(11, (data >> 1) & 1); /* LO lamp */
- coin_counter_w(device->machine(), 0, data & 0x10); /* Coin1/3 counter */
- coin_counter_w(device->machine(), 1, data & 0x20); /* Coin2 counter */
- coin_counter_w(device->machine(), 2, data & 0x08); /* Payout pulse */
+ coin_counter_w(machine(), 0, data & 0x10); /* Coin1/3 counter */
+ coin_counter_w(machine(), 1, data & 0x20); /* Coin2 counter */
+ coin_counter_w(machine(), 2, data & 0x08); /* Payout pulse */
}
@@ -1208,9 +1208,9 @@ static I8255_INTERFACE (ppi8255_intf_0)
DEVCB_INPUT_PORT("DSW1"), /* Port A read */
DEVCB_NULL, /* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(mainlamps_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(norautp_state,mainlamps_w), /* Port B write */
DEVCB_NULL, /* Port C read */
- DEVCB_HANDLER(counterlamps_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(norautp_state,counterlamps_w) /* Port C write */
};
static I8255_INTERFACE (ppi8255_intf_1)
@@ -1221,7 +1221,7 @@ static I8255_INTERFACE (ppi8255_intf_1)
DEVCB_INPUT_PORT("IN1"), /* Port B read */
DEVCB_NULL, /* Port B write */
DEVCB_NULL, /* Port C read */
- DEVCB_HANDLER(soundlamps_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(norautp_state,soundlamps_w) /* Port C write */
};
//static I8255A_INTERFACE (ppi8255_intf_2)
diff --git a/src/mame/drivers/nycaptor.c b/src/mame/drivers/nycaptor.c
index 2f21805cd90..155f640291b 100644
--- a/src/mame/drivers/nycaptor.c
+++ b/src/mame/drivers/nycaptor.c
@@ -302,7 +302,7 @@ WRITE8_MEMBER(nycaptor_state::nmi_enable_w)
}
}
-static WRITE8_DEVICE_HANDLER(unk_w)
+WRITE8_MEMBER(nycaptor_state::unk_w)
{
}
@@ -313,8 +313,8 @@ static const ay8910_interface ay8910_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(unk_w),
- DEVCB_HANDLER(unk_w)
+ DEVCB_DRIVER_MEMBER(nycaptor_state,unk_w),
+ DEVCB_DRIVER_MEMBER(nycaptor_state,unk_w)
};
static const msm5232_interface msm5232_config =
diff --git a/src/mame/drivers/ojankohs.c b/src/mame/drivers/ojankohs.c
index 180e10302f9..cdae554d0b3 100644
--- a/src/mame/drivers/ojankohs.c
+++ b/src/mame/drivers/ojankohs.c
@@ -56,13 +56,13 @@ WRITE8_MEMBER(ojankohs_state::ojankoy_rombank_w)
msm5205_reset_w(m_msm, !m_adpcm_reset);
}
-static WRITE8_DEVICE_HANDLER( ojankohs_adpcm_reset_w )
+WRITE8_MEMBER(ojankohs_state::ojankohs_adpcm_reset_w)
{
- ojankohs_state *state = device->machine().driver_data<ojankohs_state>();
- state->m_adpcm_reset = BIT(data, 0);
- state->m_vclk_left = 0;
+ device_t *device = machine().device("msm");
+ m_adpcm_reset = BIT(data, 0);
+ m_vclk_left = 0;
- msm5205_reset_w(device, !state->m_adpcm_reset);
+ msm5205_reset_w(device, !m_adpcm_reset);
}
WRITE8_MEMBER(ojankohs_state::ojankohs_msm5205_w)
@@ -153,20 +153,20 @@ READ8_MEMBER(ojankohs_state::ojankoc_keymatrix_r)
return (ret & 0x3f) | (ioport(offset ? "IN1" : "IN0")->read() & 0xc0);
}
-static READ8_DEVICE_HANDLER( ojankohs_ay8910_0_r )
+READ8_MEMBER(ojankohs_state::ojankohs_ay8910_0_r)
{
// DIPSW 1
- device_t &root = device->machine().root_device();
+ device_t &root = machine().root_device();
return (((root.ioport("DSW1")->read() & 0x01) << 7) | ((root.ioport("DSW1")->read() & 0x02) << 5) |
((root.ioport("DSW1")->read() & 0x04) << 3) | ((root.ioport("DSW1")->read() & 0x08) << 1) |
((root.ioport("DSW1")->read() & 0x10) >> 1) | ((root.ioport("DSW1")->read() & 0x20) >> 3) |
((root.ioport("DSW1")->read() & 0x40) >> 5) | ((root.ioport("DSW1")->read() & 0x80) >> 7));
}
-static READ8_DEVICE_HANDLER( ojankohs_ay8910_1_r )
+READ8_MEMBER(ojankohs_state::ojankohs_ay8910_1_r)
{
// DIPSW 1
- device_t &root = device->machine().root_device();
+ device_t &root = machine().root_device();
return (((root.ioport("DSW2")->read() & 0x01) << 7) | ((root.ioport("DSW2")->read() & 0x02) << 5) |
((root.ioport("DSW2")->read() & 0x04) << 3) | ((root.ioport("DSW2")->read() & 0x08) << 1) |
((root.ioport("DSW2")->read() & 0x10) >> 1) | ((root.ioport("DSW2")->read() & 0x20) >> 3) |
@@ -225,7 +225,7 @@ static ADDRESS_MAP_START( ojankohs_io_map, AS_IO, 8, ojankohs_state )
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)
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN1") AM_WRITE(ojankohs_gfxreg_w)
- AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("msm", ojankohs_adpcm_reset_w)
+ AM_RANGE(0x03, 0x03) AM_WRITE(ojankohs_adpcm_reset_w)
AM_RANGE(0x04, 0x04) AM_WRITE(ojankohs_flipscreen_w)
AM_RANGE(0x05, 0x05) AM_WRITE(ojankohs_msm5205_w)
AM_RANGE(0x06, 0x06) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
@@ -250,7 +250,7 @@ static ADDRESS_MAP_START( ccasino_io_map, AS_IO, 8, ojankohs_state )
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)
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN1") AM_WRITE(ccasino_coinctr_w)
- AM_RANGE(0x03, 0x03) AM_READ(ccasino_dipsw3_r) AM_DEVWRITE_LEGACY("msm", ojankohs_adpcm_reset_w)
+ AM_RANGE(0x03, 0x03) AM_READ(ccasino_dipsw3_r) AM_WRITE(ojankohs_adpcm_reset_w)
AM_RANGE(0x04, 0x04) AM_READ(ccasino_dipsw4_r) AM_WRITE(ojankohs_flipscreen_w)
AM_RANGE(0x05, 0x05) AM_WRITE(ojankohs_msm5205_w)
AM_RANGE(0x06, 0x06) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
@@ -762,8 +762,8 @@ static const ay8910_interface ojankohs_ay8910_interface =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(ojankohs_ay8910_0_r), /* read port #0 */
- DEVCB_HANDLER(ojankohs_ay8910_1_r) /* read port #1 */
+ DEVCB_DRIVER_MEMBER(ojankohs_state,ojankohs_ay8910_0_r), /* read port #0 */
+ DEVCB_DRIVER_MEMBER(ojankohs_state,ojankohs_ay8910_1_r) /* read port #1 */
};
static const ay8910_interface ojankoy_ay8910_interface =
diff --git a/src/mame/drivers/oneshot.c b/src/mame/drivers/oneshot.c
index a0b89624171..d5d8dcf57f5 100644
--- a/src/mame/drivers/oneshot.c
+++ b/src/mame/drivers/oneshot.c
@@ -90,8 +90,9 @@ READ16_MEMBER(oneshot_state::oneshot_gun_y_p2_r)
return m_gun_y_p2;
}
-static WRITE16_DEVICE_HANDLER( soundbank_w )
+WRITE16_MEMBER(oneshot_state::soundbank_w)
{
+ device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
{
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * ((data & 0x03) ^ 0x03));
@@ -111,7 +112,7 @@ static ADDRESS_MAP_START( oneshot_map, AS_PROGRAM, 16, oneshot_state )
AM_RANGE(0x188000, 0x18800f) AM_WRITEONLY AM_SHARE("scroll") // scroll registers
AM_RANGE(0x190002, 0x190003) AM_READ(soundlatch_word_r)
AM_RANGE(0x190010, 0x190011) AM_WRITE(soundlatch_word_w)
- AM_RANGE(0x190018, 0x190019) AM_DEVWRITE_LEGACY("oki", soundbank_w)
+ AM_RANGE(0x190018, 0x190019) AM_WRITE(soundbank_w)
AM_RANGE(0x190026, 0x190027) AM_READ(oneshot_gun_x_p1_r)
AM_RANGE(0x19002e, 0x19002f) AM_READ(oneshot_gun_x_p2_r)
AM_RANGE(0x190036, 0x190037) AM_READ(oneshot_gun_y_p1_r)
diff --git a/src/mame/drivers/opwolf.c b/src/mame/drivers/opwolf.c
index c026266072e..4ee1481faa4 100644
--- a/src/mame/drivers/opwolf.c
+++ b/src/mame/drivers/opwolf.c
@@ -344,9 +344,9 @@ READ8_MEMBER(opwolf_state::z80_input2_r)
SOUND
******************************************************/
-static WRITE8_DEVICE_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(opwolf_state::sound_bankswitch_w)
{
- device->machine().root_device().membank("bank10")->set_entry((data - 1) & 0x03);
+ machine().root_device().membank("bank10")->set_entry((data - 1) & 0x03);
}
/***********************************************************
@@ -482,22 +482,22 @@ static void opwolf_msm5205_vck( device_t *device )
}
}
-static WRITE8_DEVICE_HANDLER( opwolf_adpcm_b_w )
+WRITE8_MEMBER(opwolf_state::opwolf_adpcm_b_w)
{
- opwolf_state *state = device->machine().driver_data<opwolf_state>();
+ device_t *device = machine().device("msm1");
int start;
int end;
- state->m_adpcm_b[offset] = data;
+ m_adpcm_b[offset] = data;
if (offset == 0x04) //trigger ?
{
- start = state->m_adpcm_b[0] + state->m_adpcm_b[1] * 256;
- end = state->m_adpcm_b[2] + state->m_adpcm_b[3] * 256;
+ start = m_adpcm_b[0] + m_adpcm_b[1] * 256;
+ end = m_adpcm_b[2] + m_adpcm_b[3] * 256;
start *= 16;
end *= 16;
- state->m_adpcm_pos[0] = start;
- state->m_adpcm_end[0] = end;
+ m_adpcm_pos[0] = start;
+ m_adpcm_end[0] = end;
msm5205_reset_w(device, 0);
}
@@ -505,22 +505,22 @@ static WRITE8_DEVICE_HANDLER( opwolf_adpcm_b_w )
}
-static WRITE8_DEVICE_HANDLER( opwolf_adpcm_c_w )
+WRITE8_MEMBER(opwolf_state::opwolf_adpcm_c_w)
{
- opwolf_state *state = device->machine().driver_data<opwolf_state>();
+ device_t *device = machine().device("msm2");
int start;
int end;
- state->m_adpcm_c[offset] = data;
+ m_adpcm_c[offset] = data;
if (offset == 0x04) //trigger ?
{
- start = state->m_adpcm_c[0] + state->m_adpcm_c[1] * 256;
- end = state->m_adpcm_c[2] + state->m_adpcm_c[3] * 256;
+ start = m_adpcm_c[0] + m_adpcm_c[1] * 256;
+ end = m_adpcm_c[2] + m_adpcm_c[3] * 256;
start *= 16;
end *= 16;
- state->m_adpcm_pos[1] = start;
- state->m_adpcm_end[1] = end;
+ m_adpcm_pos[1] = start;
+ m_adpcm_end[1] = end;
msm5205_reset_w(device, 0);
}
@@ -546,8 +546,8 @@ static ADDRESS_MAP_START( opwolf_sound_z80_map, AS_PROGRAM, 8, opwolf_state )
AM_RANGE(0x9002, 0x9100) AM_READNOP
AM_RANGE(0xa000, 0xa000) AM_DEVWRITE_LEGACY("tc0140syt", tc0140syt_slave_port_w)
AM_RANGE(0xa001, 0xa001) AM_DEVREADWRITE_LEGACY("tc0140syt", tc0140syt_slave_comm_r, tc0140syt_slave_comm_w)
- AM_RANGE(0xb000, 0xb006) AM_DEVWRITE_LEGACY("msm1", opwolf_adpcm_b_w)
- AM_RANGE(0xc000, 0xc006) AM_DEVWRITE_LEGACY("msm2", opwolf_adpcm_c_w)
+ AM_RANGE(0xb000, 0xb006) AM_WRITE(opwolf_adpcm_b_w)
+ AM_RANGE(0xc000, 0xc006) AM_WRITE(opwolf_adpcm_c_w)
AM_RANGE(0xd000, 0xd000) AM_WRITE(opwolf_adpcm_d_w)
AM_RANGE(0xe000, 0xe000) AM_WRITE(opwolf_adpcm_e_w)
ADDRESS_MAP_END
@@ -700,7 +700,7 @@ static void irq_handler( device_t *device, int irq )
static const ym2151_interface ym2151_config =
{
DEVCB_LINE(irq_handler),
- DEVCB_HANDLER(sound_bankswitch_w)
+ DEVCB_DRIVER_MEMBER(opwolf_state,sound_bankswitch_w)
};
diff --git a/src/mame/drivers/othldrby.c b/src/mame/drivers/othldrby.c
index 5686b050246..6cc5fe9d570 100644
--- a/src/mame/drivers/othldrby.c
+++ b/src/mame/drivers/othldrby.c
@@ -30,8 +30,9 @@ READ16_MEMBER(othldrby_state::othldrby_scanline_r)
}
-static WRITE16_DEVICE_HANDLER( oki_bankswitch_w )
+WRITE16_MEMBER(othldrby_state::oki_bankswitch_w)
{
+ device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
downcast<okim6295_device *>(device)->set_bank_base((data & 1) * 0x40000);
}
@@ -97,7 +98,7 @@ static ADDRESS_MAP_START( othldrby_map, AS_PROGRAM, 16, othldrby_state )
AM_RANGE(0x70000c, 0x70000d) AM_READ_PORT("P1")
AM_RANGE(0x700010, 0x700011) AM_READ_PORT("P2")
AM_RANGE(0x70001c, 0x70001d) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x700030, 0x700031) AM_DEVWRITE_LEGACY("oki", oki_bankswitch_w)
+ AM_RANGE(0x700030, 0x700031) AM_WRITE(oki_bankswitch_w)
AM_RANGE(0x700034, 0x700035) AM_WRITE(coinctrl_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/overdriv.c b/src/mame/drivers/overdriv.c
index 3e83ed23119..cc6d75c639f 100644
--- a/src/mame/drivers/overdriv.c
+++ b/src/mame/drivers/overdriv.c
@@ -134,8 +134,15 @@ WRITE16_MEMBER(overdriv_state::cpuB_ctrl_w)
}
-static READ8_DEVICE_HANDLER( overdriv_sound_r )
+READ8_MEMBER(overdriv_state::overdriv_1_sound_r)
{
+ device_t *device = machine().device("k053260_1");
+ return k053260_r(device, 2 + offset);
+}
+
+READ8_MEMBER(overdriv_state::overdriv_2_sound_r)
+{
+ device_t *device = machine().device("k053260_2");
return k053260_r(device, 2 + offset);
}
@@ -167,8 +174,8 @@ static ADDRESS_MAP_START( overdriv_master_map, AS_PROGRAM, 16, overdriv_state )
AM_RANGE(0x1c0000, 0x1c001f) AM_DEVWRITE8_LEGACY("k051316_1", k051316_ctrl_w, 0xff00)
AM_RANGE(0x1c8000, 0x1c801f) AM_DEVWRITE8_LEGACY("k051316_2", k051316_ctrl_w, 0xff00)
AM_RANGE(0x1d0000, 0x1d001f) AM_DEVWRITE_LEGACY("k053251", k053251_msb_w)
- AM_RANGE(0x1d8000, 0x1d8003) AM_DEVREADWRITE8_LEGACY("k053260_1", overdriv_sound_r, k053260_w, 0x00ff) /* K053260 */
- AM_RANGE(0x1e0000, 0x1e0003) AM_DEVREADWRITE8_LEGACY("k053260_2", overdriv_sound_r, k053260_w, 0x00ff) /* K053260 */
+ AM_RANGE(0x1d8000, 0x1d8003) AM_READ8(overdriv_1_sound_r, 0x00ff) AM_DEVWRITE8_LEGACY("k053260_1", k053260_w, 0x00ff) /* K053260 */
+ AM_RANGE(0x1e0000, 0x1e0003) AM_READ8(overdriv_2_sound_r, 0x00ff) AM_DEVWRITE8_LEGACY("k053260_2", k053260_w, 0x00ff) /* K053260 */
AM_RANGE(0x1e8000, 0x1e8001) AM_WRITE(overdriv_soundirq_w)
AM_RANGE(0x1f0000, 0x1f0001) AM_WRITE(cpuA_ctrl_w) /* halt cpu B, coin counter, start lamp, other? */
AM_RANGE(0x1f8000, 0x1f8001) AM_WRITE(eeprom_w)
diff --git a/src/mame/drivers/pandoras.c b/src/mame/drivers/pandoras.c
index ec6d643a125..79c37f8ed41 100644
--- a/src/mame/drivers/pandoras.c
+++ b/src/mame/drivers/pandoras.c
@@ -321,24 +321,22 @@ static MACHINE_RESET( pandoras )
state->m_flipscreen = 0;
}
-static READ8_DEVICE_HANDLER( pandoras_portA_r )
+READ8_MEMBER(pandoras_state::pandoras_portA_r)
{
- pandoras_state *state = device->machine().driver_data<pandoras_state>();
- return state->m_i8039_status;
+ return m_i8039_status;
}
-static READ8_DEVICE_HANDLER( pandoras_portB_r )
+READ8_MEMBER(pandoras_state::pandoras_portB_r)
{
- pandoras_state *state = device->machine().driver_data<pandoras_state>();
- return (state->m_audiocpu->total_cycles() / 512) & 0x0f;
+ return (m_audiocpu->total_cycles() / 512) & 0x0f;
}
static const ay8910_interface ay8910_config =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(pandoras_portA_r), // not used
- DEVCB_HANDLER(pandoras_portB_r),
+ DEVCB_DRIVER_MEMBER(pandoras_state,pandoras_portA_r), // not used
+ DEVCB_DRIVER_MEMBER(pandoras_state,pandoras_portB_r),
DEVCB_NULL,
DEVCB_NULL
};
diff --git a/src/mame/drivers/paradise.c b/src/mame/drivers/paradise.c
index 0d65b635d32..ee69a325c58 100644
--- a/src/mame/drivers/paradise.c
+++ b/src/mame/drivers/paradise.c
@@ -106,10 +106,11 @@ WRITE8_MEMBER(paradise_state::paradise_rombank_w)
membank("bank1")->set_entry(bank);
}
-static WRITE8_DEVICE_HANDLER( paradise_okibank_w )
+WRITE8_MEMBER(paradise_state::paradise_okibank_w)
{
+ device_t *device = machine().device("oki2");
if (data & ~0x02)
- logerror("%s: unknown oki bank bits %02X\n", device->machine().describe_context(), data);
+ logerror("%s: unknown oki bank bits %02X\n", machine().describe_context(), data);
downcast<okim6295_device *>(device)->set_bank_base((data & 0x02) ? 0x40000 : 0);
}
@@ -153,7 +154,7 @@ static ADDRESS_MAP_START( paradise_io_map, AS_IO, 8, paradise_state )
AM_RANGE(0x2001, 0x2001) AM_WRITE(paradise_flipscreen_w) // Flip Screen
AM_RANGE(0x2004, 0x2004) AM_WRITE(paradise_palbank_w) // Layers palette bank
AM_RANGE(0x2006, 0x2006) AM_WRITE(paradise_rombank_w) // ROM bank
- AM_RANGE(0x2007, 0x2007) AM_DEVWRITE_LEGACY("oki2", paradise_okibank_w) // OKI 1 samples bank
+ AM_RANGE(0x2007, 0x2007) AM_WRITE(paradise_okibank_w) // OKI 1 samples bank
AM_RANGE(0x2010, 0x2010) AM_DEVREADWRITE("oki1", okim6295_device, read, write) // OKI 0
AM_RANGE(0x2020, 0x2020) AM_READ_PORT("DSW1")
AM_RANGE(0x2021, 0x2021) AM_READ_PORT("DSW2")
diff --git a/src/mame/drivers/parodius.c b/src/mame/drivers/parodius.c
index 8cb82ef642d..f5333c42aca 100644
--- a/src/mame/drivers/parodius.c
+++ b/src/mame/drivers/parodius.c
@@ -100,8 +100,9 @@ WRITE8_MEMBER(parodius_state::parodius_3fc0_w)
/* other bits unknown */
}
-static READ8_DEVICE_HANDLER( parodius_sound_r )
+READ8_MEMBER(parodius_state::parodius_sound_r)
{
+ device_t *device = machine().device("k053260");
return k053260_r(device, 2 + offset);
}
@@ -149,7 +150,7 @@ static ADDRESS_MAP_START( parodius_map, AS_PROGRAM, 8, parodius_state )
AM_RANGE(0x3fc0, 0x3fc0) AM_READ(watchdog_reset_r) AM_WRITE(parodius_3fc0_w)
AM_RANGE(0x3fc4, 0x3fc4) AM_WRITE(parodius_videobank_w)
AM_RANGE(0x3fc8, 0x3fc8) AM_WRITE(parodius_sh_irqtrigger_w)
- AM_RANGE(0x3fcc, 0x3fcd) AM_DEVREADWRITE_LEGACY("k053260", parodius_sound_r, k053260_w) /* K053260 */
+ AM_RANGE(0x3fcc, 0x3fcd) AM_READ(parodius_sound_r) AM_DEVWRITE_LEGACY("k053260", k053260_w) /* K053260 */
AM_RANGE(0x2000, 0x27ff) AM_READWRITE(parodius_052109_053245_r, parodius_052109_053245_w)
AM_RANGE(0x2000, 0x5fff) AM_DEVREADWRITE_LEGACY("k052109", k052109_r, k052109_w)
AM_RANGE(0x6000, 0x9fff) AM_ROMBANK("bank1") /* banked ROM */
diff --git a/src/mame/drivers/pcktgal.c b/src/mame/drivers/pcktgal.c
index 79311e0ca69..dd559dc19af 100644
--- a/src/mame/drivers/pcktgal.c
+++ b/src/mame/drivers/pcktgal.c
@@ -62,8 +62,9 @@ WRITE8_MEMBER(pcktgal_state::pcktgal_adpcm_data_w)
m_msm5205next=data;
}
-static READ8_DEVICE_HANDLER( pcktgal_adpcm_reset_r )
+READ8_MEMBER(pcktgal_state::pcktgal_adpcm_reset_r)
{
+ device_t *device = machine().device("msm");
msm5205_reset_w(device,0);
return 0;
}
@@ -95,7 +96,7 @@ static ADDRESS_MAP_START( pcktgal_sound_map, AS_PROGRAM, 8, pcktgal_state )
AM_RANGE(0x1800, 0x1800) AM_WRITE(pcktgal_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
AM_RANGE(0x2000, 0x2000) AM_WRITE(pcktgal_sound_bank_w)
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_byte_r)
- AM_RANGE(0x3400, 0x3400) AM_DEVREAD_LEGACY("msm", pcktgal_adpcm_reset_r) /* ? not sure */
+ AM_RANGE(0x3400, 0x3400) AM_READ(pcktgal_adpcm_reset_r) /* ? not sure */
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank3")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/pktgaldx.c b/src/mame/drivers/pktgaldx.c
index 3181cf048e4..65c197eb285 100644
--- a/src/mame/drivers/pktgaldx.c
+++ b/src/mame/drivers/pktgaldx.c
@@ -64,8 +64,9 @@ bootleg todo:
/**********************************************************************************/
-static WRITE16_DEVICE_HANDLER(pktgaldx_oki_bank_w)
+WRITE16_MEMBER(pktgaldx_state::pktgaldx_oki_bank_w)
{
+ device_t *device = machine().device("oki2");
downcast<okim6295_device *>(device)->set_bank_base((data & 3) * 0x40000);
}
@@ -88,7 +89,7 @@ static ADDRESS_MAP_START( pktgaldx_map, AS_PROGRAM, 16, pktgaldx_state )
AM_RANGE(0x150006, 0x150007) AM_DEVREAD8("oki2", okim6295_device, read, 0x00ff)
AM_RANGE(0x161800, 0x16180f) AM_DEVWRITE_LEGACY("tilegen1", deco16ic_pf_control_w)
- AM_RANGE(0x164800, 0x164801) AM_DEVWRITE_LEGACY("oki2", pktgaldx_oki_bank_w)
+ AM_RANGE(0x164800, 0x164801) AM_WRITE(pktgaldx_oki_bank_w)
AM_RANGE(0x167800, 0x167fff) AM_READWRITE_LEGACY(deco16_104_pktgaldx_prot_r,deco16_104_pktgaldx_prot_w) AM_BASE_LEGACY(&deco16_prot_ram)
AM_RANGE(0x170000, 0x17ffff) AM_RAM
ADDRESS_MAP_END
@@ -134,7 +135,7 @@ static ADDRESS_MAP_START( pktgaldb_map, AS_PROGRAM, 16, pktgaldx_state )
AM_RANGE(0x150006, 0x150007) AM_DEVREAD8("oki2", okim6295_device, read, 0x00ff)
// AM_RANGE(0x160000, 0x167fff) AM_RAM
- AM_RANGE(0x164800, 0x164801) AM_DEVWRITE_LEGACY("oki2", pktgaldx_oki_bank_w)
+ AM_RANGE(0x164800, 0x164801) AM_WRITE(pktgaldx_oki_bank_w)
AM_RANGE(0x160000, 0x167fff) AM_WRITENOP
AM_RANGE(0x16500a, 0x16500b) AM_READ(pckgaldx_unknown_r)
diff --git a/src/mame/drivers/playch10.c b/src/mame/drivers/playch10.c
index 80d171e7a64..c09daed5a3e 100644
--- a/src/mame/drivers/playch10.c
+++ b/src/mame/drivers/playch10.c
@@ -347,18 +347,21 @@ WRITE8_MEMBER(playch10_state::time_w)
popmessage("Time: %d%d%d%d",m_timedata[3],m_timedata[2],m_timedata[1],m_timedata[0]);
}
-static READ8_DEVICE_HANDLER( psg_4015_r )
+READ8_MEMBER(playch10_state::psg_4015_r)
{
+ device_t *device = machine().device("nes");
return nes_psg_r(device, 0x15);
}
-static WRITE8_DEVICE_HANDLER( psg_4015_w )
+WRITE8_MEMBER(playch10_state::psg_4015_w)
{
+ device_t *device = machine().device("nes");
nes_psg_w(device, 0x15, data);
}
-static WRITE8_DEVICE_HANDLER( psg_4017_w )
+WRITE8_MEMBER(playch10_state::psg_4017_w)
{
+ device_t *device = machine().device("nes");
nes_psg_w(device, 0x17, data);
}
@@ -397,9 +400,9 @@ static ADDRESS_MAP_START( cart_map, AS_PROGRAM, 8, playch10_state )
AM_RANGE(0x4011, 0x4011) AM_DEVWRITE_LEGACY("dac", dac_w)
AM_RANGE(0x4000, 0x4013) AM_DEVREADWRITE_LEGACY("nes", nes_psg_r, nes_psg_w)
AM_RANGE(0x4014, 0x4014) AM_WRITE(sprite_dma_w)
- AM_RANGE(0x4015, 0x4015) AM_DEVREADWRITE_LEGACY("nes", psg_4015_r, psg_4015_w) /* PSG status / first control register */
+ AM_RANGE(0x4015, 0x4015) AM_READWRITE(psg_4015_r, psg_4015_w) /* PSG status / first control register */
AM_RANGE(0x4016, 0x4016) AM_READWRITE(pc10_in0_r, pc10_in0_w)
- AM_RANGE(0x4017, 0x4017) AM_READ(pc10_in1_r) AM_DEVWRITE_LEGACY("nes", psg_4017_w) /* IN1 - input port 2 / PSG second control register */
+ AM_RANGE(0x4017, 0x4017) AM_READ(pc10_in1_r) AM_WRITE(psg_4017_w) /* IN1 - input port 2 / PSG second control register */
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/playmark.c b/src/mame/drivers/playmark.c
index fe789c3ea02..2b31c076ee4 100644
--- a/src/mame/drivers/playmark.c
+++ b/src/mame/drivers/playmark.c
@@ -159,17 +159,17 @@ READ8_MEMBER(playmark_state::playmark_snd_flag_r)
}
-static WRITE8_DEVICE_HANDLER( playmark_oki_banking_w )
+WRITE8_MEMBER(playmark_state::playmark_oki_banking_w)
{
- playmark_state *state = device->machine().driver_data<playmark_state>();
+ device_t *device = machine().device("oki");
- if (state->m_old_oki_bank != (data & 7))
+ if (m_old_oki_bank != (data & 7))
{
- state->m_old_oki_bank = data & 7;
+ m_old_oki_bank = data & 7;
- if (((state->m_old_oki_bank - 1) * 0x40000) < state->memregion("oki")->bytes())
+ if (((m_old_oki_bank - 1) * 0x40000) < memregion("oki")->bytes())
{
- downcast<okim6295_device *>(device)->set_bank_base(0x40000 * (state->m_old_oki_bank - 1));
+ downcast<okim6295_device *>(device)->set_bank_base(0x40000 * (m_old_oki_bank - 1));
}
}
}
@@ -347,7 +347,7 @@ ADDRESS_MAP_END
/* $000 - 07F PIC16C57 Internal Data RAM */
static ADDRESS_MAP_START( playmark_sound_io_map, AS_IO, 8, playmark_state )
- AM_RANGE(0x00, 0x00) AM_DEVWRITE_LEGACY("oki", playmark_oki_banking_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(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)
AM_RANGE(PIC16C5x_T0, PIC16C5x_T0) AM_READ(PIC16C5X_T0_clk_r)
diff --git a/src/mame/drivers/plygonet.c b/src/mame/drivers/plygonet.c
index 17baaffa8e5..0c2cee38c95 100644
--- a/src/mame/drivers/plygonet.c
+++ b/src/mame/drivers/plygonet.c
@@ -101,8 +101,9 @@ static const eeprom_interface eeprom_intf =
"0100110000000" /* unlock command */
};
-static READ32_DEVICE_HANDLER( polygonet_eeprom_r )
+READ32_MEMBER(polygonet_state::polygonet_eeprom_r)
{
+ device_t *device = machine().device("eeprom");
if (ACCESSING_BITS_0_15)
{
eeprom_device *eeprom = downcast<eeprom_device *>(device);
@@ -110,8 +111,8 @@ static READ32_DEVICE_HANDLER( polygonet_eeprom_r )
}
else
{
- UINT8 lowInputBits = device->machine().root_device().ioport("IN1")->read();
- UINT8 highInputBits = device->machine().root_device().ioport("IN0")->read();
+ UINT8 lowInputBits = machine().root_device().ioport("IN1")->read();
+ UINT8 highInputBits = machine().root_device().ioport("IN0")->read();
return ((highInputBits << 24) | (lowInputBits << 16));
}
@@ -505,7 +506,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, polygonet_state )
AM_RANGE(0x200000, 0x21ffff) AM_RAM_WRITE(plygonet_palette_w) AM_SHARE("paletteram")
AM_RANGE(0x400000, 0x40001f) AM_DEVREADWRITE16_LEGACY("k053936", k053936_ctrl_r, k053936_ctrl_w, 0xffffffff)
AM_RANGE(0x440000, 0x440fff) AM_READWRITE(polygonet_roz_ram_r, polygonet_roz_ram_w)
- AM_RANGE(0x480000, 0x4bffff) AM_DEVREAD_LEGACY("eeprom", polygonet_eeprom_r)
+ AM_RANGE(0x480000, 0x4bffff) AM_READ(polygonet_eeprom_r)
AM_RANGE(0x4C0000, 0x4fffff) AM_WRITE(polygonet_eeprom_w)
AM_RANGE(0x500000, 0x503fff) AM_RAM_WRITE(shared_ram_write) AM_SHARE("shared_ram")
AM_RANGE(0x504000, 0x504003) AM_WRITE(dsp_w_lines)
diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c
index 6aa48f740df..6b3c5c7b83d 100644
--- a/src/mame/drivers/polepos.c
+++ b/src/mame/drivers/polepos.c
@@ -347,18 +347,18 @@ CUSTOM_INPUT_MEMBER(polepos_state::auto_start_r)
return m_auto_start_mask;
}
-static WRITE8_DEVICE_HANDLER( out_0 )
+WRITE8_MEMBER(polepos_state::out_0)
{
// no start lamps in pole position
-// set_led_status(device->machine(), 1,data & 1);
-// set_led_status(device->machine(), 0,data & 2);
- coin_counter_w(device->machine(), 1,~data & 4);
- coin_counter_w(device->machine(), 0,~data & 8);
+// set_led_status(machine(), 1,data & 1);
+// set_led_status(machine(), 0,data & 2);
+ coin_counter_w(machine(), 1,~data & 4);
+ coin_counter_w(machine(), 0,~data & 8);
}
-static WRITE8_DEVICE_HANDLER( out_1 )
+WRITE8_MEMBER(polepos_state::out_1)
{
- coin_lockout_global_w(device->machine(), data & 1);
+ coin_lockout_global_w(machine(), data & 1);
}
static const namco_51xx_interface namco_51xx_intf =
@@ -370,20 +370,20 @@ static const namco_51xx_interface namco_51xx_intf =
DEVCB_INPUT_PORT("DSWB_HI")
},
{ /* port write handlers */
- DEVCB_HANDLER(out_0),
- DEVCB_HANDLER(out_1)
+ DEVCB_DRIVER_MEMBER(polepos_state,out_0),
+ DEVCB_DRIVER_MEMBER(polepos_state,out_1)
}
};
-static READ8_DEVICE_HANDLER( namco_52xx_rom_r )
+READ8_MEMBER(polepos_state::namco_52xx_rom_r)
{
- UINT32 length = device->machine().root_device().memregion("52xx")->bytes();
+ UINT32 length = machine().root_device().memregion("52xx")->bytes();
logerror("ROM @ %04X\n", offset);
- return (offset < length) ? device->machine().root_device().memregion("52xx")->base()[offset] : 0xff;
+ return (offset < length) ? machine().root_device().memregion("52xx")->base()[offset] : 0xff;
}
-static READ8_DEVICE_HANDLER( namco_52xx_si_r )
+READ8_MEMBER(polepos_state::namco_52xx_si_r)
{
/* pulled to +5V */
return 1;
@@ -394,52 +394,50 @@ static const namco_52xx_interface namco_52xx_intf =
"discrete", /* name of the discrete sound device */
NODE_04, /* index of the first node */
0, /* external clock rate */
- DEVCB_HANDLER(namco_52xx_rom_r), /* ROM read handler */
- DEVCB_HANDLER(namco_52xx_si_r) /* SI (pin 6) read handler */
+ DEVCB_DRIVER_MEMBER(polepos_state,namco_52xx_rom_r), /* ROM read handler */
+ DEVCB_DRIVER_MEMBER(polepos_state,namco_52xx_si_r) /* SI (pin 6) read handler */
};
-static READ8_DEVICE_HANDLER( namco_53xx_k_r )
+READ8_MEMBER(polepos_state::namco_53xx_k_r)
{
/* hardwired to 0 */
return 0;
}
-static READ8_DEVICE_HANDLER( steering_changed_r )
+READ8_MEMBER(polepos_state::steering_changed_r)
{
- polepos_state *state = device->machine().driver_data<polepos_state>();
/* read the current steering value and update our delta */
- UINT8 steer_new = state->ioport("STEER")->read();
- state->m_steer_accum += (INT8)(steer_new - state->m_steer_last) * 2;
- state->m_steer_last = steer_new;
+ UINT8 steer_new = ioport("STEER")->read();
+ m_steer_accum += (INT8)(steer_new - m_steer_last) * 2;
+ m_steer_last = steer_new;
/* if we have delta, clock things */
- if (state->m_steer_accum < 0)
+ if (m_steer_accum < 0)
{
- state->m_steer_delta = 0;
- state->m_steer_accum++;
+ m_steer_delta = 0;
+ m_steer_accum++;
}
- else if (state->m_steer_accum > 0)
+ else if (m_steer_accum > 0)
{
- state->m_steer_delta = 1;
- state->m_steer_accum--;
+ m_steer_delta = 1;
+ m_steer_accum--;
}
- return state->m_steer_accum & 1;
+ return m_steer_accum & 1;
}
-static READ8_DEVICE_HANDLER( steering_delta_r )
+READ8_MEMBER(polepos_state::steering_delta_r)
{
- polepos_state *state = device->machine().driver_data<polepos_state>();
- return state->m_steer_delta;
+ return m_steer_delta;
}
static const namco_53xx_interface namco_53xx_intf =
{
- DEVCB_HANDLER(namco_53xx_k_r), /* K port */
+ DEVCB_DRIVER_MEMBER(polepos_state,namco_53xx_k_r), /* K port */
{
- DEVCB_HANDLER(steering_changed_r), /* R0 port */
- DEVCB_HANDLER(steering_delta_r), /* R1 port */
+ DEVCB_DRIVER_MEMBER(polepos_state,steering_changed_r), /* R0 port */
+ DEVCB_DRIVER_MEMBER(polepos_state,steering_delta_r), /* R1 port */
DEVCB_INPUT_PORT("DSWA"), /* R2 port */
DEVCB_INPUT_PORT("DSWA_HI") /* R3 port */
},
diff --git a/src/mame/drivers/popeye.c b/src/mame/drivers/popeye.c
index 7fdd3175c19..797d1beee92 100644
--- a/src/mame/drivers/popeye.c
+++ b/src/mame/drivers/popeye.c
@@ -391,24 +391,22 @@ GFXDECODE_END
-static WRITE8_DEVICE_HANDLER( popeye_portB_w )
+WRITE8_MEMBER(popeye_state::popeye_portB_w)
{
- popeye_state *state = device->machine().driver_data<popeye_state>();
/* bit 0 flips screen */
- state->flip_screen_set(data & 1);
+ flip_screen_set(data & 1);
/* bits 1-3 select DSW1 bit to read */
- state->m_dswbit = (data & 0x0e) >> 1;
+ m_dswbit = (data & 0x0e) >> 1;
}
-static READ8_DEVICE_HANDLER( popeye_portA_r )
+READ8_MEMBER(popeye_state::popeye_portA_r)
{
- popeye_state *state = device->machine().driver_data<popeye_state>();
int res;
- res = state->ioport("DSW0")->read();
- res |= (state->ioport("DSW1")->read() << (7-state->m_dswbit)) & 0x80;
+ res = ioport("DSW0")->read();
+ res |= (ioport("DSW1")->read() << (7-m_dswbit)) & 0x80;
return res;
}
@@ -417,10 +415,10 @@ static const ay8910_interface ay8910_config =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(popeye_portA_r),
+ DEVCB_DRIVER_MEMBER(popeye_state,popeye_portA_r),
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(popeye_portB_w)
+ DEVCB_DRIVER_MEMBER(popeye_state,popeye_portB_w)
};
diff --git a/src/mame/drivers/prehisle.c b/src/mame/drivers/prehisle.c
index 823e9d5dbf8..23c698798fe 100644
--- a/src/mame/drivers/prehisle.c
+++ b/src/mame/drivers/prehisle.c
@@ -39,15 +39,17 @@ ADDRESS_MAP_END
/******************************************************************************/
-static WRITE8_DEVICE_HANDLER( D7759_write_port_0_w )
+WRITE8_MEMBER(prehisle_state::D7759_write_port_0_w)
{
+ device_t *device = machine().device("upd");
upd7759_port_w(device, 0, data);
upd7759_start_w(device, 0);
upd7759_start_w(device, 1);
}
-static WRITE8_DEVICE_HANDLER( D7759_upd_reset_w )
+WRITE8_MEMBER(prehisle_state::D7759_upd_reset_w)
{
+ device_t *device = machine().device("upd");
upd7759_reset_w(device, data & 0x80);
}
@@ -62,8 +64,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_LEGACY("ymsnd", ym3812_status_port_r, ym3812_control_port_w)
AM_RANGE(0x20, 0x20) AM_DEVWRITE_LEGACY("ymsnd", ym3812_write_port_w)
- AM_RANGE(0x40, 0x40) AM_DEVWRITE_LEGACY("upd", D7759_write_port_0_w)
- AM_RANGE(0x80, 0x80) AM_DEVWRITE_LEGACY("upd", D7759_upd_reset_w)
+ AM_RANGE(0x40, 0x40) AM_WRITE(D7759_write_port_0_w)
+ AM_RANGE(0x80, 0x80) AM_WRITE(D7759_upd_reset_w)
ADDRESS_MAP_END
/******************************************************************************/
diff --git a/src/mame/drivers/psikyo4.c b/src/mame/drivers/psikyo4.c
index 98a23f931c0..51a9027565c 100644
--- a/src/mame/drivers/psikyo4.c
+++ b/src/mame/drivers/psikyo4.c
@@ -163,8 +163,9 @@ static const eeprom_interface eeprom_interface_93C56 =
// "*10010xxxx" // erase all 1 00 10xxxx
};
-static WRITE32_DEVICE_HANDLER( ps4_eeprom_w )
+WRITE32_MEMBER(psikyo4_state::ps4_eeprom_w)
{
+ device_t *device = machine().device("eeprom");
if (ACCESSING_BITS_16_31)
{
eeprom_device *eeprom = downcast<eeprom_device *>(device);
@@ -178,11 +179,11 @@ static WRITE32_DEVICE_HANDLER( ps4_eeprom_w )
logerror("Unk EEPROM write %x mask %x\n", data, mem_mask);
}
-static READ32_DEVICE_HANDLER( ps4_eeprom_r )
+READ32_MEMBER(psikyo4_state::ps4_eeprom_r)
{
if (ACCESSING_BITS_16_31)
{
- return device->machine().root_device().ioport("JP4")->read();
+ return machine().root_device().ioport("JP4")->read();
}
// logerror("Unk EEPROM read mask %x\n", mem_mask);
@@ -356,7 +357,7 @@ 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_SHARE("spriteram")
- AM_RANGE(0x03003fe0, 0x03003fe3) AM_DEVREADWRITE_LEGACY("eeprom", ps4_eeprom_r,ps4_eeprom_w)
+ AM_RANGE(0x03003fe0, 0x03003fe3) AM_READWRITE(ps4_eeprom_r,ps4_eeprom_w)
AM_RANGE(0x03003fe4, 0x03003fe7) AM_READNOP // also writes to this address - might be vblank?
// AM_RANGE(0x03003fe4, 0x03003fe7) AM_WRITENOP // might be vblank?
AM_RANGE(0x03003fe4, 0x03003fef) AM_RAM_WRITE(ps4_vidregs_w) AM_SHARE("vidregs") // vid regs?
diff --git a/src/mame/drivers/psikyosh.c b/src/mame/drivers/psikyosh.c
index d17d437a835..66936488866 100644
--- a/src/mame/drivers/psikyosh.c
+++ b/src/mame/drivers/psikyosh.c
@@ -319,8 +319,9 @@ static const eeprom_interface eeprom_interface_93C56 =
// "*10010xxxx" // erase all 1 00 10xxxx
};
-static WRITE32_DEVICE_HANDLER( psh_eeprom_w )
+WRITE32_MEMBER(psikyosh_state::psh_eeprom_w)
{
+ device_t *device = machine().device("eeprom");
if (ACCESSING_BITS_24_31)
{
eeprom_device *eeprom = downcast<eeprom_device *>(device);
@@ -334,11 +335,11 @@ static WRITE32_DEVICE_HANDLER( psh_eeprom_w )
logerror("Unk EEPROM write %x mask %x\n", data, mem_mask);
}
-static READ32_DEVICE_HANDLER( psh_eeprom_r )
+READ32_MEMBER(psikyosh_state::psh_eeprom_r)
{
if (ACCESSING_BITS_24_31)
{
- return device->machine().root_device().ioport("JP4")->read();
+ return machine().root_device().ioport("JP4")->read();
}
logerror("Unk EEPROM read mask %x\n", mem_mask);
@@ -526,7 +527,7 @@ static ADDRESS_MAP_START( ps3v1_map, AS_PROGRAM, 32, psikyosh_state )
AM_RANGE(0x05000000, 0x05000007) AM_DEVREADWRITE8_LEGACY("ymf", ymf278b_r, ymf278b_w, 0xffffffff)
// inputs/eeprom
AM_RANGE(0x05800000, 0x05800003) AM_READ_PORT("INPUTS")
- AM_RANGE(0x05800004, 0x05800007) AM_DEVREADWRITE_LEGACY("eeprom", psh_eeprom_r, psh_eeprom_w)
+ AM_RANGE(0x05800004, 0x05800007) AM_READWRITE(psh_eeprom_r, psh_eeprom_w)
// ram
AM_RANGE(0x06000000, 0x060fffff) AM_RAM AM_SHARE("ram") // main RAM (1 meg)
ADDRESS_MAP_END
@@ -537,7 +538,7 @@ static ADDRESS_MAP_START( ps5_map, AS_PROGRAM, 32, psikyosh_state )
AM_RANGE(0x00000000, 0x000fffff) AM_ROM // program ROM (1 meg)
// inputs/eeprom
AM_RANGE(0x03000000, 0x03000003) AM_READ_PORT("INPUTS")
- AM_RANGE(0x03000004, 0x03000007) AM_DEVREADWRITE_LEGACY("eeprom", psh_eeprom_r, psh_eeprom_w)
+ AM_RANGE(0x03000004, 0x03000007) AM_READWRITE(psh_eeprom_r, psh_eeprom_w)
// sound chip
AM_RANGE(0x03100000, 0x03100007) AM_DEVREADWRITE8_LEGACY("ymf", ymf278b_r, ymf278b_w, 0xffffffff)
// video chip
diff --git a/src/mame/drivers/punchout.c b/src/mame/drivers/punchout.c
index 985adc2425a..019eaa9592f 100644
--- a/src/mame/drivers/punchout.c
+++ b/src/mame/drivers/punchout.c
@@ -125,18 +125,21 @@ CUSTOM_INPUT_MEMBER(punchout_state::punchout_vlm5030_busy_r)
return (vlm5030_bsy(machine().device("vlm"))) ? 0x00 : 0x01;
}
-static WRITE8_DEVICE_HANDLER( punchout_speech_reset_w )
+WRITE8_MEMBER(punchout_state::punchout_speech_reset_w)
{
+ device_t *device = machine().device("vlm");
vlm5030_rst( device, data & 0x01 );
}
-static WRITE8_DEVICE_HANDLER( punchout_speech_st_w )
+WRITE8_MEMBER(punchout_state::punchout_speech_st_w)
{
+ device_t *device = machine().device("vlm");
vlm5030_st( device, data & 0x01 );
}
-static WRITE8_DEVICE_HANDLER( punchout_speech_vcu_w )
+WRITE8_MEMBER(punchout_state::punchout_speech_vcu_w)
{
+ device_t *device = machine().device("vlm");
vlm5030_vcu( device, data & 0x01 );
}
@@ -359,9 +362,9 @@ static ADDRESS_MAP_START( punchout_io_map, AS_IO, 8, punchout_state )
AM_RANGE(0x09, 0x09) AM_WRITENOP /* watchdog reset, seldom used because 08 clears the watchdog as well */
AM_RANGE(0x0a, 0x0a) AM_WRITENOP /* ?? */
AM_RANGE(0x0b, 0x0b) AM_WRITE(punchout_2a03_reset_w)
- AM_RANGE(0x0c, 0x0c) AM_DEVWRITE_LEGACY("vlm", punchout_speech_reset_w) /* VLM5030 */
- AM_RANGE(0x0d, 0x0d) AM_DEVWRITE_LEGACY("vlm", punchout_speech_st_w) /* VLM5030 */
- AM_RANGE(0x0e, 0x0e) AM_DEVWRITE_LEGACY("vlm", punchout_speech_vcu_w) /* VLM5030 */
+ AM_RANGE(0x0c, 0x0c) AM_WRITE(punchout_speech_reset_w) /* VLM5030 */
+ AM_RANGE(0x0d, 0x0d) AM_WRITE(punchout_speech_st_w) /* VLM5030 */
+ AM_RANGE(0x0e, 0x0e) AM_WRITE(punchout_speech_vcu_w) /* VLM5030 */
AM_RANGE(0x0f, 0x0f) AM_WRITENOP /* enable NVRAM ? */
/* protection ports - Super Punchout only (move to install handler?) */
diff --git a/src/mame/drivers/qdrmfgp.c b/src/mame/drivers/qdrmfgp.c
index b0b1b94968b..966edf05402 100644
--- a/src/mame/drivers/qdrmfgp.c
+++ b/src/mame/drivers/qdrmfgp.c
@@ -197,32 +197,36 @@ WRITE16_MEMBER(qdrmfgp_state::sndram_w)
#define IDE_STD_OFFSET (0x1f0/2)
#define IDE_ALT_OFFSET (0x3f6/2)
-static READ16_DEVICE_HANDLER( ide_std_r )
+READ16_MEMBER(qdrmfgp_state::ide_std_r)
{
+ device_t *device = machine().device("ide");
if (offset & 0x01)
return ide_controller16_r(device, IDE_STD_OFFSET + offset/2, 0xff00) >> 8;
else
return ide_controller16_r(device, IDE_STD_OFFSET + offset/2, 0xffff);
}
-static WRITE16_DEVICE_HANDLER( ide_std_w )
+WRITE16_MEMBER(qdrmfgp_state::ide_std_w)
{
+ device_t *device = machine().device("ide");
if (offset & 0x01)
ide_controller16_w(device, IDE_STD_OFFSET + offset/2, data << 8, 0xff00);
else
ide_controller16_w(device, IDE_STD_OFFSET + offset/2, data, 0xffff);
}
-static READ16_DEVICE_HANDLER( ide_alt_r )
+READ16_MEMBER(qdrmfgp_state::ide_alt_r)
{
+ device_t *device = machine().device("ide");
if (offset == 0)
return ide_controller16_r(device, IDE_ALT_OFFSET, 0x00ff);
return 0;
}
-static WRITE16_DEVICE_HANDLER( ide_alt_w )
+WRITE16_MEMBER(qdrmfgp_state::ide_alt_w)
{
+ device_t *device = machine().device("ide");
if (offset == 0)
ide_controller16_w(device, IDE_ALT_OFFSET, data, 0x00ff);
}
@@ -347,8 +351,8 @@ static ADDRESS_MAP_START( qdrmfgp_map, AS_PROGRAM, 16, qdrmfgp_state )
AM_RANGE(0x880000, 0x881fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_word_r, k056832_ram_word_w) /* vram */
AM_RANGE(0x882000, 0x883fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_word_r, k056832_ram_word_w) /* vram (mirror) */
AM_RANGE(0x900000, 0x901fff) AM_READ(v_rom_r) /* gfxrom through */
- AM_RANGE(0xa00000, 0xa0000f) AM_DEVREADWRITE_LEGACY("ide", ide_std_r,ide_std_w) /* IDE control regs */
- AM_RANGE(0xa4000c, 0xa4000f) AM_DEVREADWRITE_LEGACY("ide", ide_alt_r,ide_alt_w) /* IDE status control reg */
+ AM_RANGE(0xa00000, 0xa0000f) AM_READWRITE(ide_std_r,ide_std_w) /* IDE control regs */
+ AM_RANGE(0xa4000c, 0xa4000f) AM_READWRITE(ide_alt_r,ide_alt_w) /* IDE status control reg */
AM_RANGE(0xc00000, 0xcbffff) AM_READWRITE(sndram_r, sndram_w) /* sound ram */
ADDRESS_MAP_END
@@ -370,8 +374,8 @@ static ADDRESS_MAP_START( qdrmfgp2_map, AS_PROGRAM, 16, qdrmfgp_state )
AM_RANGE(0x880000, 0x881fff) AM_READWRITE(gp2_vram_r, gp2_vram_w) /* vram */
AM_RANGE(0x89f000, 0x8a0fff) AM_READWRITE(gp2_vram_mirror_r, gp2_vram_mirror_w) /* vram (mirror) */
AM_RANGE(0x900000, 0x901fff) AM_READ(v_rom_r) /* gfxrom through */
- AM_RANGE(0xa00000, 0xa0000f) AM_READ(gp2_ide_std_r) AM_DEVWRITE_LEGACY("ide", ide_std_w) /* IDE control regs */
- AM_RANGE(0xa4000c, 0xa4000f) AM_DEVREADWRITE_LEGACY("ide", ide_alt_r,ide_alt_w) /* IDE status control reg */
+ AM_RANGE(0xa00000, 0xa0000f) AM_READ(gp2_ide_std_r) AM_WRITE(ide_std_w) /* IDE control regs */
+ AM_RANGE(0xa4000c, 0xa4000f) AM_READWRITE(ide_alt_r,ide_alt_w) /* IDE status control reg */
AM_RANGE(0xc00000, 0xcbffff) AM_READWRITE(sndram_r,sndram_w) /* sound ram */
ADDRESS_MAP_END
@@ -601,14 +605,14 @@ static const k056832_interface qdrmfgp2_k056832_intf =
qdrmfgp2_tile_callback, "none"
};
-static WRITE_LINE_DEVICE_HANDLER( qdrmfgp_irq3_ack_w )
+WRITE_LINE_MEMBER(qdrmfgp_state::qdrmfgp_irq3_ack_w)
{
-// cputag_set_input_line(device->machine(), "maincpu", M68K_IRQ_3, CLEAR_LINE);
+// cputag_set_input_line(machine(), "maincpu", M68K_IRQ_3, CLEAR_LINE);
}
-static WRITE_LINE_DEVICE_HANDLER( qdrmfgp_irq4_ack_w )
+WRITE_LINE_MEMBER(qdrmfgp_state::qdrmfgp_irq4_ack_w)
{
-// cputag_set_input_line(device->machine(), "maincpu", M68K_IRQ_4, CLEAR_LINE);
+// cputag_set_input_line(machine(), "maincpu", M68K_IRQ_4, CLEAR_LINE);
}
static const k053252_interface qdrmfgp_k053252_intf =
@@ -616,7 +620,7 @@ static const k053252_interface qdrmfgp_k053252_intf =
"screen",
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_LINE(qdrmfgp_irq3_ack_w),
+ DEVCB_DRIVER_LINE_MEMBER(qdrmfgp_state,qdrmfgp_irq3_ack_w),
DEVCB_NULL,
40, 16
};
@@ -626,8 +630,8 @@ static const k053252_interface qdrmfgp2_k053252_intf =
"screen",
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_LINE(qdrmfgp_irq4_ack_w),
- DEVCB_LINE(qdrmfgp_irq3_ack_w),
+ DEVCB_DRIVER_LINE_MEMBER(qdrmfgp_state,qdrmfgp_irq4_ack_w),
+ DEVCB_DRIVER_LINE_MEMBER(qdrmfgp_state,qdrmfgp_irq3_ack_w),
40, 16
};
diff --git a/src/mame/drivers/rainbow.c b/src/mame/drivers/rainbow.c
index ce574e15672..b4611fa26b6 100644
--- a/src/mame/drivers/rainbow.c
+++ b/src/mame/drivers/rainbow.c
@@ -395,9 +395,9 @@ ADDRESS_MAP_END
Jumping uses two YM2203's
***********************************************************/
-static WRITE8_DEVICE_HANDLER( bankswitch_w )
+WRITE8_MEMBER(rbisland_state::bankswitch_w)
{
- device->machine().root_device().membank("bank1")->set_entry(data & 3);
+ machine().root_device().membank("bank1")->set_entry(data & 3);
}
READ8_MEMBER(rbisland_state::jumping_latch_r)
@@ -632,7 +632,7 @@ static void irqhandler( device_t *device, int irq )
static const ym2151_interface ym2151_config =
{
DEVCB_LINE(irqhandler),
- DEVCB_HANDLER(bankswitch_w)
+ DEVCB_DRIVER_MEMBER(rbisland_state,bankswitch_w)
};
diff --git a/src/mame/drivers/rastan.c b/src/mame/drivers/rastan.c
index 0a5c01c0218..487a853d00e 100644
--- a/src/mame/drivers/rastan.c
+++ b/src/mame/drivers/rastan.c
@@ -161,9 +161,9 @@ Note: The 'rastsagaa' set's rom numbers were named as RSxx_37 through RSxx_42
#include "sound/msm5205.h"
#include "includes/rastan.h"
-static WRITE8_DEVICE_HANDLER( rastan_bankswitch_w )
+WRITE8_MEMBER(rastan_state::rastan_bankswitch_w)
{
- device->machine().root_device().membank("bank1")->set_entry(data & 3);
+ machine().root_device().membank("bank1")->set_entry(data & 3);
}
@@ -188,16 +188,17 @@ WRITE8_MEMBER(rastan_state::rastan_msm5205_address_w)
m_adpcm_pos = (m_adpcm_pos & 0x00ff) | (data << 8);
}
-static WRITE8_DEVICE_HANDLER( rastan_msm5205_start_w )
+WRITE8_MEMBER(rastan_state::rastan_msm5205_start_w)
{
+ device_t *device = machine().device("msm");
msm5205_reset_w(device, 0);
}
-static WRITE8_DEVICE_HANDLER( rastan_msm5205_stop_w )
+WRITE8_MEMBER(rastan_state::rastan_msm5205_stop_w)
{
- rastan_state *state = device->machine().driver_data<rastan_state>();
+ device_t *device = machine().device("msm");
msm5205_reset_w(device, 1);
- state->m_adpcm_pos &= 0xff00;
+ m_adpcm_pos &= 0xff00;
}
@@ -233,8 +234,8 @@ static ADDRESS_MAP_START( rastan_s_map, AS_PROGRAM, 8, rastan_state )
AM_RANGE(0xa000, 0xa000) AM_DEVWRITE_LEGACY("tc0140syt", tc0140syt_slave_port_w)
AM_RANGE(0xa001, 0xa001) AM_DEVREADWRITE_LEGACY("tc0140syt", tc0140syt_slave_comm_r, tc0140syt_slave_comm_w)
AM_RANGE(0xb000, 0xb000) AM_WRITE(rastan_msm5205_address_w)
- AM_RANGE(0xc000, 0xc000) AM_DEVWRITE_LEGACY("msm", rastan_msm5205_start_w)
- AM_RANGE(0xd000, 0xd000) AM_DEVWRITE_LEGACY("msm", rastan_msm5205_stop_w)
+ AM_RANGE(0xc000, 0xc000) AM_WRITE(rastan_msm5205_start_w)
+ AM_RANGE(0xd000, 0xd000) AM_WRITE(rastan_msm5205_stop_w)
ADDRESS_MAP_END
@@ -347,7 +348,7 @@ static void irqhandler( device_t *device, int irq )
static const ym2151_interface ym2151_config =
{
DEVCB_LINE(irqhandler),
- DEVCB_HANDLER(rastan_bankswitch_w)
+ DEVCB_DRIVER_MEMBER(rastan_state,rastan_bankswitch_w)
};
static const msm5205_interface msm5205_config =
diff --git a/src/mame/drivers/renegade.c b/src/mame/drivers/renegade.c
index afbb2bc41b7..8376f686e50 100644
--- a/src/mame/drivers/renegade.c
+++ b/src/mame/drivers/renegade.c
@@ -188,9 +188,10 @@ DEVICE_GET_INFO( renegade_adpcm )
DEFINE_LEGACY_SOUND_DEVICE(RENEGADE_ADPCM, renegade_adpcm);
-static WRITE8_DEVICE_HANDLER( adpcm_play_w )
+WRITE8_MEMBER(renegade_state::adpcm_play_w)
{
- renegade_adpcm_state *state = get_safe_token(device);
+ device_t *device = machine().device("adpcm");
+ renegade_adpcm_state *renstate = get_safe_token(device);
int offs = (data - 0x2c) * 0x2000;
int len = 0x2000 * 2;
@@ -200,13 +201,13 @@ static WRITE8_DEVICE_HANDLER( adpcm_play_w )
if (offs >= 0 && offs+len <= 0x20000)
{
- state->m_stream->update();
- state->m_adpcm.reset();
+ renstate->m_stream->update();
+ renstate->m_adpcm.reset();
- state->m_current = offs;
- state->m_end = offs + len/2;
- state->m_nibble = 4;
- state->m_playing = 1;
+ renstate->m_current = offs;
+ renstate->m_end = offs + len/2;
+ renstate->m_nibble = 4;
+ renstate->m_playing = 1;
}
else
logerror("out of range adpcm command: 0x%02x\n", data);
@@ -665,7 +666,7 @@ 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_byte_r)
AM_RANGE(0x1800, 0x1800) AM_WRITENOP // this gets written the same values as 0x2000
- AM_RANGE(0x2000, 0x2000) AM_DEVWRITE_LEGACY("adpcm", adpcm_play_w)
+ AM_RANGE(0x2000, 0x2000) AM_WRITE(adpcm_play_w)
AM_RANGE(0x2800, 0x2801) AM_DEVREADWRITE_LEGACY("ymsnd", ym3526_r,ym3526_w)
AM_RANGE(0x3000, 0x3000) AM_WRITENOP /* adpcm related? stereo pan? */
AM_RANGE(0x8000, 0xffff) AM_ROM
diff --git a/src/mame/drivers/rockrage.c b/src/mame/drivers/rockrage.c
index 4823fbb7eb6..0ac203df980 100644
--- a/src/mame/drivers/rockrage.c
+++ b/src/mame/drivers/rockrage.c
@@ -82,13 +82,15 @@ WRITE8_MEMBER(rockrage_state::rockrage_sh_irqtrigger_w)
device_set_input_line(m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
}
-static READ8_DEVICE_HANDLER( rockrage_VLM5030_busy_r )
+READ8_MEMBER(rockrage_state::rockrage_VLM5030_busy_r)
{
+ device_t *device = machine().device("vlm");
return (vlm5030_bsy(device) ? 1 : 0);
}
-static WRITE8_DEVICE_HANDLER( rockrage_speech_w )
+WRITE8_MEMBER(rockrage_state::rockrage_speech_w)
{
+ device_t *device = machine().device("vlm");
/* bit2 = data bus enable */
vlm5030_rst(device, (data >> 1) & 0x01);
vlm5030_st(device, (data >> 0) & 0x01);
@@ -116,8 +118,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( rockrage_sound_map, AS_PROGRAM, 8, rockrage_state )
AM_RANGE(0x2000, 0x2000) AM_DEVWRITE_LEGACY("vlm", vlm5030_data_w) /* VLM5030 */
- AM_RANGE(0x3000, 0x3000) AM_DEVREAD_LEGACY("vlm", rockrage_VLM5030_busy_r) /* VLM5030 */
- AM_RANGE(0x4000, 0x4000) AM_DEVWRITE_LEGACY("vlm", rockrage_speech_w) /* VLM5030 */
+ AM_RANGE(0x3000, 0x3000) AM_READ(rockrage_VLM5030_busy_r) /* VLM5030 */
+ AM_RANGE(0x4000, 0x4000) AM_WRITE(rockrage_speech_w) /* VLM5030 */
AM_RANGE(0x5000, 0x5000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */
AM_RANGE(0x6000, 0x6001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r,ym2151_w) /* YM 2151 */
AM_RANGE(0x7000, 0x77ff) AM_RAM /* RAM */
diff --git a/src/mame/drivers/rohga.c b/src/mame/drivers/rohga.c
index 7ccb87db1e0..6a4e280e727 100644
--- a/src/mame/drivers/rohga.c
+++ b/src/mame/drivers/rohga.c
@@ -723,17 +723,16 @@ static void sound_irq(device_t *device, int state)
device_set_input_line(driver_state->m_audiocpu, 1, state); /* IRQ 2 */
}
-static WRITE8_DEVICE_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(rohga_state::sound_bankswitch_w)
{
- rohga_state *state = device->machine().driver_data<rohga_state>();
- state->m_oki1->set_bank_base(BIT(data, 0) * 0x40000);
- state->m_oki2->set_bank_base(BIT(data, 1) * 0x40000);
+ m_oki1->set_bank_base(BIT(data, 0) * 0x40000);
+ m_oki2->set_bank_base(BIT(data, 1) * 0x40000);
}
static const ym2151_interface ym2151_config =
{
DEVCB_LINE(sound_irq),
- DEVCB_HANDLER(sound_bankswitch_w)
+ DEVCB_DRIVER_MEMBER(rohga_state,sound_bankswitch_w)
};
/**********************************************************************************/
diff --git a/src/mame/drivers/rollerg.c b/src/mame/drivers/rollerg.c
index 1a3148cf0c7..204995df77a 100644
--- a/src/mame/drivers/rollerg.c
+++ b/src/mame/drivers/rollerg.c
@@ -48,8 +48,9 @@ READ8_MEMBER(rollerg_state::rollerg_k051316_r)
return k051316_r(m_k051316, offset);
}
-static READ8_DEVICE_HANDLER( rollerg_sound_r )
+READ8_MEMBER(rollerg_state::rollerg_sound_r)
{
+ device_t *device = machine().device("k053260");
/* If the sound CPU is running, read the status, otherwise
just make it pass the test */
return k053260_r(device, 2 + offset);
@@ -80,7 +81,7 @@ READ8_MEMBER(rollerg_state::pip_r)
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_LEGACY("k053260", rollerg_sound_r, k053260_w) /* K053260 */
+ AM_RANGE(0x0030, 0x0031) AM_READ(rollerg_sound_r) AM_DEVWRITE_LEGACY("k053260", k053260_w) /* K053260 */
AM_RANGE(0x0040, 0x0040) AM_WRITE(soundirq_w)
AM_RANGE(0x0050, 0x0050) AM_READ_PORT("P1")
AM_RANGE(0x0051, 0x0051) AM_READ_PORT("P2")
@@ -231,9 +232,9 @@ static const k051316_interface rollerg_k051316_intf =
rollerg_zoom_callback
};
-static WRITE_LINE_DEVICE_HANDLER( rollerg_irq_ack_w )
+WRITE_LINE_MEMBER(rollerg_state::rollerg_irq_ack_w)
{
- cputag_set_input_line(device->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
static const k053252_interface rollerg_k053252_intf =
@@ -241,7 +242,7 @@ static const k053252_interface rollerg_k053252_intf =
"screen",
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_LINE(rollerg_irq_ack_w),
+ DEVCB_DRIVER_LINE_MEMBER(rollerg_state,rollerg_irq_ack_w),
DEVCB_NULL,
14*8, 2*8
};
diff --git a/src/mame/drivers/route16.c b/src/mame/drivers/route16.c
index 4fbe1a250dd..181e7fa51d0 100644
--- a/src/mame/drivers/route16.c
+++ b/src/mame/drivers/route16.c
@@ -119,8 +119,9 @@ WRITE8_MEMBER(route16_state::route16_sharedram_w)
*
*************************************/
-static WRITE8_DEVICE_HANDLER( stratvox_sn76477_w )
+WRITE8_MEMBER(route16_state::stratvox_sn76477_w)
{
+ device_t *device = machine().device("snsnd");
/***************************************************************
* AY8910 output bits are connected to...
* 7 - direct: 5V * 30k/(100+30k) = 1.15V - via DAC??
@@ -561,7 +562,7 @@ static const ay8910_interface stratvox_ay8910_interface =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_DEVICE_HANDLER("snsnd", stratvox_sn76477_w), /* SN76477 commands (not used in Route 16?) */
+ DEVCB_DRIVER_MEMBER(route16_state,stratvox_sn76477_w), /* SN76477 commands (not used in Route 16?) */
DEVCB_NULL
};
diff --git a/src/mame/drivers/rpunch.c b/src/mame/drivers/rpunch.c
index 489339f83a0..aa79fe51c30 100644
--- a/src/mame/drivers/rpunch.c
+++ b/src/mame/drivers/rpunch.c
@@ -193,21 +193,22 @@ READ16_MEMBER(rpunch_state::sound_busy_r)
*
*************************************/
-static WRITE8_DEVICE_HANDLER( upd_control_w )
+WRITE8_MEMBER(rpunch_state::upd_control_w)
{
- rpunch_state *state = device->machine().driver_data<rpunch_state>();
- if ((data & 1) != state->m_upd_rom_bank)
+ device_t *device = machine().device("upd");
+ if ((data & 1) != m_upd_rom_bank)
{
- UINT8 *snd = state->memregion("upd")->base();
- state->m_upd_rom_bank = data & 1;
- memcpy(snd, snd + 0x20000 * (state->m_upd_rom_bank + 1), 0x20000);
+ UINT8 *snd = memregion("upd")->base();
+ m_upd_rom_bank = data & 1;
+ memcpy(snd, snd + 0x20000 * (m_upd_rom_bank + 1), 0x20000);
}
upd7759_reset_w(device, data >> 7);
}
-static WRITE8_DEVICE_HANDLER( upd_data_w )
+WRITE8_MEMBER(rpunch_state::upd_data_w)
{
+ device_t *device = machine().device("upd");
upd7759_port_w(device, 0, data);
upd7759_start_w(device, 0);
upd7759_start_w(device, 1);
@@ -253,8 +254,8 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, rpunch_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xf200, 0xf200) AM_READ(sound_command_r)
- AM_RANGE(0xf400, 0xf400) AM_DEVWRITE_LEGACY("upd", upd_control_w)
- AM_RANGE(0xf600, 0xf600) AM_DEVWRITE_LEGACY("upd", upd_data_w)
+ AM_RANGE(0xf400, 0xf400) AM_WRITE(upd_control_w)
+ AM_RANGE(0xf600, 0xf600) AM_WRITE(upd_data_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/runaway.c b/src/mame/drivers/runaway.c
index 85c024f0f0e..809f3eb06ad 100644
--- a/src/mame/drivers/runaway.c
+++ b/src/mame/drivers/runaway.c
@@ -63,9 +63,9 @@ READ8_MEMBER(runaway_state::runaway_input_r)
}
-static READ8_DEVICE_HANDLER( runaway_pot_r )
+READ8_MEMBER(runaway_state::runaway_pot_r)
{
- return (device->machine().root_device().ioport("7000")->read() << (7 - offset)) & 0x80;
+ return (machine().root_device().ioport("7000")->read() << (7 - offset)) & 0x80;
}
@@ -335,14 +335,14 @@ static const pokey_interface pokey_interface_1 =
static const pokey_interface pokey_interface_2 =
{
{
- DEVCB_HANDLER(runaway_pot_r),
- DEVCB_HANDLER(runaway_pot_r),
- DEVCB_HANDLER(runaway_pot_r),
- DEVCB_HANDLER(runaway_pot_r),
- DEVCB_HANDLER(runaway_pot_r),
- DEVCB_HANDLER(runaway_pot_r),
- DEVCB_HANDLER(runaway_pot_r),
- DEVCB_HANDLER(runaway_pot_r)
+ DEVCB_DRIVER_MEMBER(runaway_state,runaway_pot_r),
+ DEVCB_DRIVER_MEMBER(runaway_state,runaway_pot_r),
+ DEVCB_DRIVER_MEMBER(runaway_state,runaway_pot_r),
+ DEVCB_DRIVER_MEMBER(runaway_state,runaway_pot_r),
+ DEVCB_DRIVER_MEMBER(runaway_state,runaway_pot_r),
+ DEVCB_DRIVER_MEMBER(runaway_state,runaway_pot_r),
+ DEVCB_DRIVER_MEMBER(runaway_state,runaway_pot_r),
+ DEVCB_DRIVER_MEMBER(runaway_state,runaway_pot_r)
}
};
diff --git a/src/mame/drivers/sauro.c b/src/mame/drivers/sauro.c
index 864020f4f73..18a0ca1f4f8 100644
--- a/src/mame/drivers/sauro.c
+++ b/src/mame/drivers/sauro.c
@@ -158,8 +158,9 @@ WRITE8_MEMBER(sauro_state::flip_screen_w)
flip_screen_set(data);
}
-static WRITE8_DEVICE_HANDLER( adpcm_w )
+WRITE8_MEMBER(sauro_state::adpcm_w)
{
+ device_t *device = machine().device("speech");
sp0256_ALD_w(device, 0, data);
}
@@ -202,7 +203,7 @@ 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_LEGACY("ymsnd", ym3812_w)
- AM_RANGE(0xa000, 0xa000) AM_DEVWRITE_LEGACY("speech", adpcm_w)
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(adpcm_w)
AM_RANGE(0xe000, 0xe000) AM_READ(sauro_sound_command_r)
AM_RANGE(0xe000, 0xe006) AM_WRITENOP /* echo from write to e0000 */
AM_RANGE(0xe00e, 0xe00f) AM_WRITENOP
diff --git a/src/mame/drivers/sbugger.c b/src/mame/drivers/sbugger.c
index bd1f24e19a2..13e4bc02221 100644
--- a/src/mame/drivers/sbugger.c
+++ b/src/mame/drivers/sbugger.c
@@ -206,9 +206,9 @@ INPUT_PORTS_END
/* machine driver */
-static WRITE_LINE_DEVICE_HANDLER(sbugger_interrupt)
+WRITE_LINE_MEMBER(sbugger_state::sbugger_interrupt)
{
- cputag_set_input_line(device->machine(), "maincpu", I8085_RST75_LINE, state ? CLEAR_LINE : ASSERT_LINE );
+ cputag_set_input_line(machine(), "maincpu", I8085_RST75_LINE, state ? CLEAR_LINE : ASSERT_LINE );
}
static I8156_INTERFACE(i8156_intf)
@@ -220,7 +220,7 @@ static I8156_INTERFACE(i8156_intf)
DEVCB_NULL,
DEVCB_INPUT_PORT("DSW2"),
DEVCB_NULL,
- DEVCB_LINE(sbugger_interrupt)
+ DEVCB_DRIVER_LINE_MEMBER(sbugger_state,sbugger_interrupt)
};
static MACHINE_CONFIG_START( sbugger, sbugger_state )
diff --git a/src/mame/drivers/segag80r.c b/src/mame/drivers/segag80r.c
index e22156dc58b..2a1e53b406f 100644
--- a/src/mame/drivers/segag80r.c
+++ b/src/mame/drivers/segag80r.c
@@ -188,7 +188,7 @@ WRITE8_MEMBER(segag80r_state::vidram_w){ segag80r_videoram_w(space, decrypt_offs
WRITE8_MEMBER(segag80r_state::monsterb_vidram_w){ monsterb_videoram_w(space, decrypt_offset(&space, offset), data); }
WRITE8_MEMBER(segag80r_state::pignewt_vidram_w){ pignewt_videoram_w(space, decrypt_offset(&space, offset), data); }
WRITE8_MEMBER(segag80r_state::sindbadm_vidram_w){ sindbadm_videoram_w(space, decrypt_offset(&space, offset), data); }
-static WRITE8_DEVICE_HANDLER( usb_ram_w ) { sega_usb_ram_w(device, decrypt_offset(device->machine().device("maincpu")->memory().space(AS_PROGRAM), offset), data); }
+WRITE8_MEMBER(segag80r_state::usb_ram_w){ device_t *device = machine().device("usbsnd"); sega_usb_ram_w(device, decrypt_offset(machine().device("maincpu")->memory().space(AS_PROGRAM), offset), data); }
@@ -283,26 +283,30 @@ WRITE8_MEMBER(segag80r_state::coin_count_w)
*
*************************************/
-static WRITE8_DEVICE_HANDLER( sindbadm_soundport_w )
+WRITE8_MEMBER(segag80r_state::sindbadm_soundport_w)
{
- segag80r_state *state = device->machine().driver_data<segag80r_state>();
- address_space *space = device->machine().device("maincpu")->memory().space(AS_PROGRAM);
- state->soundlatch_byte_w(*space, 0, data);
- cputag_set_input_line(device->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
- device->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(50));
+ soundlatch_byte_w(space, 0, data);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(50));
}
-static WRITE8_DEVICE_HANDLER( sindbadm_misc_w )
+WRITE8_MEMBER(segag80r_state::sindbadm_misc_w)
{
- coin_counter_w(device->machine(), 0, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x02);
// mame_printf_debug("Unknown = %02X\n", data);
}
/* the data lines are flipped */
-static WRITE8_DEVICE_HANDLER( sindbadm_SN76496_w )
+WRITE8_MEMBER(segag80r_state::sindbadm_sn1_SN76496_w)
{
+ device_t *device = machine().device("sn1");
+ sn76496_w(device, offset, BITSWAP8(data, 0,1,2,3,4,5,6,7));
+}
+WRITE8_MEMBER(segag80r_state::sindbadm_sn2_SN76496_w)
+{
+ device_t *device = machine().device("sn2");
sn76496_w(device, offset, BITSWAP8(data, 0,1,2,3,4,5,6,7));
}
@@ -317,11 +321,11 @@ static WRITE8_DEVICE_HANDLER( sindbadm_SN76496_w )
static I8255A_INTERFACE( sindbadm_ppi_intf )
{
DEVCB_NULL, /* Port A read */
- DEVCB_HANDLER(sindbadm_soundport_w), /* Port A write */
+ DEVCB_DRIVER_MEMBER(segag80r_state,sindbadm_soundport_w), /* Port A write */
DEVCB_INPUT_PORT("FC"), /* Port B read */
DEVCB_NULL, /* Port B write */
DEVCB_NULL, /* Port C read */
- DEVCB_HANDLER(sindbadm_misc_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(segag80r_state,sindbadm_misc_w) /* Port C write */
};
@@ -380,8 +384,8 @@ ADDRESS_MAP_END
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_LEGACY("sn1", sindbadm_SN76496_w)
- AM_RANGE(0xc000, 0xc003) AM_MIRROR(0x1ffc) AM_DEVWRITE_LEGACY("sn2", sindbadm_SN76496_w)
+ AM_RANGE(0xa000, 0xa003) AM_MIRROR(0x1ffc) AM_WRITE(sindbadm_sn1_SN76496_w)
+ AM_RANGE(0xc000, 0xc003) AM_MIRROR(0x1ffc) AM_WRITE(sindbadm_sn2_SN76496_w)
AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x1fff) AM_READ(soundlatch_byte_r)
ADDRESS_MAP_END
@@ -1542,7 +1546,8 @@ static DRIVER_INIT( pignewt )
/* install Universal sound board */
iospace->install_legacy_readwrite_handler(*usbsnd, 0x3f, 0x3f, FUNC(sega_usb_status_r), FUNC(sega_usb_data_w));
- pgmspace->install_legacy_readwrite_handler(*usbsnd, 0xd000, 0xdfff, FUNC(sega_usb_ram_r), FUNC(usb_ram_w));
+ pgmspace->install_legacy_read_handler(*usbsnd, 0xd000, 0xdfff, FUNC(sega_usb_ram_r));
+ pgmspace->install_write_handler(0xd000, 0xdfff, write8_delegate(FUNC(segag80r_state::usb_ram_w),state));
}
diff --git a/src/mame/drivers/segag80v.c b/src/mame/drivers/segag80v.c
index 6adad26d2e7..20d26d56429 100644
--- a/src/mame/drivers/segag80v.c
+++ b/src/mame/drivers/segag80v.c
@@ -203,7 +203,7 @@ WRITE8_MEMBER(segag80v_state::mainram_w)
m_mainram[decrypt_offset(&space, offset)] = data;
}
-static WRITE8_DEVICE_HANDLER( usb_ram_w ) { sega_usb_ram_w(device, decrypt_offset(device->machine().device("maincpu")->memory().space(AS_PROGRAM), offset), data); }
+WRITE8_MEMBER(segag80v_state::usb_ram_w){ sega_usb_ram_w(m_usb, decrypt_offset(machine().device("maincpu")->memory().space(AS_PROGRAM), offset), data); }
WRITE8_MEMBER(segag80v_state::vectorram_w)
{
m_vectorram[decrypt_offset(&space, offset)] = data;
@@ -1374,7 +1374,8 @@ static DRIVER_INIT( tacscan )
/* configure sound */
state->m_usb = machine.device("usbsnd");
iospace->install_legacy_readwrite_handler(*state->m_usb, 0x3f, 0x3f, FUNC(sega_usb_status_r), FUNC(sega_usb_data_w));
- pgmspace->install_legacy_readwrite_handler(*state->m_usb, 0xd000, 0xdfff, FUNC(sega_usb_ram_r), FUNC(usb_ram_w));
+ pgmspace->install_legacy_read_handler(*state->m_usb, 0xd000, 0xdfff, FUNC(sega_usb_ram_r));
+ pgmspace->install_write_handler(0xd000, 0xdfff, write8_delegate(FUNC(segag80v_state::usb_ram_w),state));
/* configure inputs */
iospace->install_write_handler(0xf8, 0xf8, write8_delegate(FUNC(segag80v_state::spinner_select_w),state));
@@ -1397,7 +1398,8 @@ static DRIVER_INIT( startrek )
iospace->install_legacy_write_handler(*machine.device("segaspeech"), 0x3b, 0x3b, FUNC(sega_speech_control_w));
iospace->install_legacy_readwrite_handler(*state->m_usb, 0x3f, 0x3f, FUNC(sega_usb_status_r), FUNC(sega_usb_data_w));
- pgmspace->install_legacy_readwrite_handler(*state->m_usb, 0xd000, 0xdfff, FUNC(sega_usb_ram_r), FUNC(usb_ram_w));
+ pgmspace->install_legacy_read_handler(*state->m_usb, 0xd000, 0xdfff, FUNC(sega_usb_ram_r));
+ pgmspace->install_write_handler(0xd000, 0xdfff, write8_delegate(FUNC(segag80v_state::usb_ram_w),state));
/* configure inputs */
iospace->install_write_handler(0xf8, 0xf8, write8_delegate(FUNC(segag80v_state::spinner_select_w),state));
diff --git a/src/mame/drivers/segas32.c b/src/mame/drivers/segas32.c
index deee7990039..9962b4f5ccc 100644
--- a/src/mame/drivers/segas32.c
+++ b/src/mame/drivers/segas32.c
@@ -1141,15 +1141,17 @@ WRITE8_MEMBER(segas32_state::sound_bank_hi_w)
}
-static WRITE8_DEVICE_HANDLER( multipcm_bank_w )
+WRITE8_MEMBER(segas32_state::multipcm_bank_w)
{
+ device_t *device = machine().device("sega");
multipcm_set_bank(device, 0x80000 * ((data >> 3) & 7), 0x80000 * (data & 7));
}
-static WRITE8_DEVICE_HANDLER( scross_bank_w )
+WRITE8_MEMBER(segas32_state::scross_bank_w)
{
- multipcm_set_bank(device, 0x80000 * (data & 7), 0x80000 * (data & 7));
+ multipcm_device *multipcm = machine().device<multipcm_device>("sega");
+ multipcm_set_bank(multipcm, 0x80000 * (data & 7), 0x80000 * (data & 7));
}
@@ -1260,7 +1262,7 @@ static ADDRESS_MAP_START( multi32_sound_portmap, AS_IO, 8, segas32_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x83) AM_MIRROR(0x0c) AM_DEVREADWRITE_LEGACY("ymsnd", ym3438_r, ym3438_w)
AM_RANGE(0xa0, 0xaf) AM_WRITE(sound_bank_lo_w)
- AM_RANGE(0xb0, 0xbf) AM_DEVWRITE_LEGACY("sega", multipcm_bank_w)
+ AM_RANGE(0xb0, 0xbf) AM_WRITE(multipcm_bank_w)
AM_RANGE(0xc0, 0xcf) AM_WRITE(sound_int_control_lo_w)
AM_RANGE(0xd0, 0xd3) AM_MIRROR(0x04) AM_WRITE(sound_int_control_hi_w)
AM_RANGE(0xf1, 0xf1) AM_READWRITE(sound_dummy_r, sound_dummy_w)
@@ -4215,9 +4217,8 @@ static DRIVER_INIT( radr )
static DRIVER_INIT( scross )
{
segas32_state *state = machine.driver_data<segas32_state>();
- multipcm_device *multipcm = machine.device<multipcm_device>("sega");
segas32_common_init(machine, read16_delegate(FUNC(segas32_state::analog_custom_io_r),state), write16_delegate(FUNC(segas32_state::analog_custom_io_w),state));
- machine.device("soundcpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(*multipcm, 0xb0, 0xbf, FUNC(scross_bank_w));
+ machine.device("soundcpu")->memory().space(AS_PROGRAM)->install_write_handler(0xb0, 0xbf, write8_delegate(FUNC(segas32_state::scross_bank_w),state));
state->m_sw1_output = scross_sw1_output;
state->m_sw2_output = scross_sw2_output;
diff --git a/src/mame/drivers/seibuspi.c b/src/mame/drivers/seibuspi.c
index 6b359ae4625..4d80a4474e2 100644
--- a/src/mame/drivers/seibuspi.c
+++ b/src/mame/drivers/seibuspi.c
@@ -868,13 +868,14 @@ READ32_MEMBER(seibuspi_state::spi_unknown_r)
return 0xffffffff;
}
-static WRITE32_DEVICE_HANDLER( eeprom_w )
+WRITE32_MEMBER(seibuspi_state::eeprom_w)
{
- okim6295_device *oki2 = device->machine().device<okim6295_device>("oki2");
+ device_t *device = machine().device("eeprom");
+ okim6295_device *oki2 = machine().device<okim6295_device>("oki2");
// tile banks
if( ACCESSING_BITS_16_23 ) {
- rf2_set_layer_banks(device->machine(), data >> 16);
+ rf2_set_layer_banks(machine(), data >> 16);
eeprom_device *eeprom = downcast<eeprom_device *>(device);
eeprom->write_bit((data & 0x800000) ? 1 : 0);
@@ -1068,32 +1069,30 @@ static ADDRESS_MAP_START( spisound_map, AS_PROGRAM, 8, seibuspi_state )
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank4")
ADDRESS_MAP_END
-static READ8_DEVICE_HANDLER( flashrom_read )
+READ8_MEMBER(seibuspi_state::flashrom_read)
{
- seibuspi_state *state = device->machine().driver_data<seibuspi_state>();
logerror("Flash Read: %08X\n", offset);
if( offset < 0x100000 )
{
- return state->m_flash[0]->read(offset);
+ return m_flash[0]->read(offset);
}
else if( offset < 0x200000 )
{
- return state->m_flash[1]->read(offset - 0x100000 );
+ return m_flash[1]->read(offset - 0x100000 );
}
return 0;
}
-static WRITE8_DEVICE_HANDLER( flashrom_write )
+WRITE8_MEMBER(seibuspi_state::flashrom_write)
{
- seibuspi_state *state = device->machine().driver_data<seibuspi_state>();
logerror("Flash Write: %08X, %02X\n", offset, data);
if( offset < 0x100000 )
{
- state->m_flash[0]->write(offset + 1, data);
+ m_flash[0]->write(offset + 1, data);
}
else if( offset < 0x200000 )
{
- state->m_flash[1]->write(offset - 0x100000 + 1, data);
+ m_flash[1]->write(offset - 0x100000 + 1, data);
}
}
@@ -1105,8 +1104,9 @@ static void irqhandler(device_t *device, int state)
cputag_set_input_line(device->machine(), "soundcpu", 0, CLEAR_LINE);
}
-static WRITE32_DEVICE_HANDLER(sys386f2_eeprom_w)
+WRITE32_MEMBER(seibuspi_state::sys386f2_eeprom_w)
{
+ device_t *device = machine().device("eeprom");
eeprom_device *eeprom = downcast<eeprom_device *>(device);
eeprom->write_bit((data & 0x80) ? 1 : 0);
eeprom->set_clock_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
@@ -1115,8 +1115,8 @@ static WRITE32_DEVICE_HANDLER(sys386f2_eeprom_w)
static const ymf271_interface ymf271_config =
{
- DEVCB_HANDLER(flashrom_read),
- DEVCB_HANDLER(flashrom_write),
+ DEVCB_DRIVER_MEMBER(seibuspi_state,flashrom_read),
+ DEVCB_DRIVER_MEMBER(seibuspi_state,flashrom_write),
irqhandler
};
@@ -1137,7 +1137,7 @@ static ADDRESS_MAP_START( seibu386_map, AS_PROGRAM, 32, seibuspi_state )
AM_RANGE(0x00000604, 0x00000607) AM_READ(spi_controls1_r) /* Player controls */
AM_RANGE(0x00000608, 0x0000060b) AM_READ(spi_unknown_r)
AM_RANGE(0x0000060c, 0x0000060f) AM_READ(spi_controls2_r) /* Player controls (start) */
- AM_RANGE(0x0000068c, 0x0000068f) AM_DEVWRITE_LEGACY("eeprom", eeprom_w)
+ AM_RANGE(0x0000068c, 0x0000068f) AM_WRITE(eeprom_w)
AM_RANGE(0x00000800, 0x0003ffff) AM_RAM AM_SHARE("spimainram")
AM_RANGE(0x00200000, 0x003fffff) AM_ROM AM_SHARE("share2")
AM_RANGE(0x01200000, 0x01200003) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x000000ff)
@@ -1155,7 +1155,7 @@ static ADDRESS_MAP_START( sys386f2_map, AS_PROGRAM, 32, seibuspi_state )
AM_RANGE(0x00000010, 0x00000013) AM_READ(spi_int_r) /* Unknown */
AM_RANGE(0x00000090, 0x00000097) AM_RAM /* Unknown */
AM_RANGE(0x00000400, 0x00000403) AM_READNOP AM_WRITE(input_select_w)
- AM_RANGE(0x00000404, 0x00000407) AM_DEVWRITE_LEGACY("eeprom", sys386f2_eeprom_w)
+ AM_RANGE(0x00000404, 0x00000407) AM_WRITE(sys386f2_eeprom_w)
AM_RANGE(0x00000408, 0x0000040f) AM_DEVWRITE8_LEGACY("ymz", ymz280b_w, 0x000000ff)
AM_RANGE(0x00000484, 0x00000487) AM_WRITE(palette_dma_start_w)
AM_RANGE(0x00000490, 0x00000493) AM_WRITE(video_dma_length_w)
@@ -1904,7 +1904,7 @@ static MACHINE_RESET( sxx2f )
memcpy(state->m_z80_rom, rom, 0x40000);
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(*machine.device("eeprom"), 0x0000068c, 0x0000068f, FUNC(eeprom_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x0000068c, 0x0000068f, write32_delegate(FUNC(seibuspi_state::eeprom_w),state));
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x00000680, 0x00000683, read32_delegate(FUNC(seibuspi_state::sb_coin_r),state));
device_set_irq_callback(machine.device("maincpu"), spi_irq_callback);
diff --git a/src/mame/drivers/seicross.c b/src/mame/drivers/seicross.c
index ecbc90ef1cf..085b2d8cc0d 100644
--- a/src/mame/drivers/seicross.c
+++ b/src/mame/drivers/seicross.c
@@ -81,33 +81,31 @@ static MACHINE_RESET( friskyt )
-static READ8_DEVICE_HANDLER( friskyt_portB_r )
+READ8_MEMBER(seicross_state::friskyt_portB_r)
{
- seicross_state *state = device->machine().driver_data<seicross_state>();
- return (state->m_portb & 0x9f) | (state->ioport("DEBUG")->read_safe(0) & 0x60);
+ return (m_portb & 0x9f) | (ioport("DEBUG")->read_safe(0) & 0x60);
}
-static WRITE8_DEVICE_HANDLER( friskyt_portB_w )
+WRITE8_MEMBER(seicross_state::friskyt_portB_w)
{
- seicross_state *state = device->machine().driver_data<seicross_state>();
//logerror("PC %04x: 8910 port B = %02x\n", cpu_get_pc(&space->device()), data);
/* bit 0 is IRQ enable */
- state->m_irq_mask = data & 1;
+ m_irq_mask = data & 1;
/* bit 1 flips screen */
/* bit 2 resets the microcontroller */
- if (((state->m_portb & 4) == 0) && (data & 4))
+ if (((m_portb & 4) == 0) && (data & 4))
{
/* reset and start the protection mcu */
- cputag_set_input_line(device->machine(), "mcu", INPUT_LINE_RESET, PULSE_LINE);
- cputag_set_input_line(device->machine(), "mcu", INPUT_LINE_HALT, CLEAR_LINE);
+ cputag_set_input_line(machine(), "mcu", INPUT_LINE_RESET, PULSE_LINE);
+ cputag_set_input_line(machine(), "mcu", INPUT_LINE_HALT, CLEAR_LINE);
}
/* other bits unknown */
- state->m_portb = data;
+ m_portb = data;
}
@@ -385,9 +383,9 @@ static const ay8910_interface ay8910_config =
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
- DEVCB_HANDLER(friskyt_portB_r),
+ DEVCB_DRIVER_MEMBER(seicross_state,friskyt_portB_r),
DEVCB_NULL,
- DEVCB_HANDLER(friskyt_portB_w)
+ DEVCB_DRIVER_MEMBER(seicross_state,friskyt_portB_w)
};
static INTERRUPT_GEN( vblank_irq )
diff --git a/src/mame/drivers/senjyo.c b/src/mame/drivers/senjyo.c
index b5390a68a10..cfbe68294be 100644
--- a/src/mame/drivers/senjyo.c
+++ b/src/mame/drivers/senjyo.c
@@ -102,11 +102,11 @@ WRITE8_MEMBER(senjyo_state::flip_screen_w)
flip_screen_set(data);
}
-static WRITE8_DEVICE_HANDLER( sound_cmd_w )
+WRITE8_MEMBER(senjyo_state::sound_cmd_w)
{
- senjyo_state *state = device->machine().driver_data<senjyo_state>();
+ device_t *device = machine().device("z80pio");
- state->m_sound_cmd = data;
+ m_sound_cmd = data;
z80pio_astb_w(device, 0);
z80pio_astb_w(device, 1);
@@ -155,7 +155,7 @@ static ADDRESS_MAP_START( senjyo_map, AS_PROGRAM, 8, senjyo_state )
AM_RANGE(0xd000, 0xd000) AM_READ_PORT("P1") AM_WRITE(flip_screen_w)
AM_RANGE(0xd001, 0xd001) AM_READ_PORT("P2")
AM_RANGE(0xd002, 0xd002) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xd004, 0xd004) AM_READ_PORT("DSW1") AM_DEVWRITE_LEGACY("z80pio", sound_cmd_w)
+ AM_RANGE(0xd004, 0xd004) AM_READ_PORT("DSW1") AM_WRITE(sound_cmd_w)
AM_RANGE(0xd005, 0xd005) AM_READ_PORT("DSW2")
ADDRESS_MAP_END
@@ -216,7 +216,7 @@ static ADDRESS_MAP_START( starforb_map, AS_PROGRAM, 8, senjyo_state )
AM_RANGE(0xd000, 0xd000) AM_READ_PORT("P1") AM_WRITE(flip_screen_w)
AM_RANGE(0xd001, 0xd001) AM_READ_PORT("P2")
AM_RANGE(0xd002, 0xd002) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xd004, 0xd004) AM_READ_PORT("DSW1") AM_DEVWRITE_LEGACY("z80pio", sound_cmd_w)
+ AM_RANGE(0xd004, 0xd004) AM_READ_PORT("DSW1") AM_WRITE(sound_cmd_w)
AM_RANGE(0xd005, 0xd005) AM_READ_PORT("DSW2")
/* these aren't used / written, left here to make sure memory is allocated */
diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c
index 8b7f79020e4..3ecae097855 100644
--- a/src/mame/drivers/seta.c
+++ b/src/mame/drivers/seta.c
@@ -1579,14 +1579,14 @@ READ16_MEMBER(seta_state::seta_dsw_r)
/* DSW reading for 8 bit CPUs */
-static READ8_DEVICE_HANDLER( dsw1_r )
+READ8_MEMBER(seta_state::dsw1_r)
{
- return (device->machine().root_device().ioport("DSW")->read() >> 8) & 0xff;
+ return (machine().root_device().ioport("DSW")->read() >> 8) & 0xff;
}
-static READ8_DEVICE_HANDLER( dsw2_r )
+READ8_MEMBER(seta_state::dsw2_r)
{
- return (device->machine().root_device().ioport("DSW")->read() >> 0) & 0xff;
+ return (machine().root_device().ioport("DSW")->read() >> 0) & 0xff;
}
@@ -2446,8 +2446,8 @@ WRITE16_MEMBER(seta_state::magspeed_lights_w)
for (int i = 0; i < 16; i++)
set_led_status(machine(), offset * 16 + i, BIT(m_magspeed_lights[offset], i));
-
-// popmessage("%04X %04X %04X", m_magspeed_lights[0], m_magspeed_lights[1], m_magspeed_lights[2]);
+
+// popmessage("%04X %04X %04X", m_magspeed_lights[0], m_magspeed_lights[1], m_magspeed_lights[2]);
}
/* almost identical to kamenrid */
@@ -7467,8 +7467,8 @@ static const ym2203_interface tndrcade_ym2203_interface =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(dsw1_r), /* input A: DSW 1 */
- DEVCB_HANDLER(dsw2_r), /* input B: DSW 2 */
+ DEVCB_DRIVER_MEMBER(seta_state,dsw1_r), /* input A: DSW 1 */
+ DEVCB_DRIVER_MEMBER(seta_state,dsw2_r), /* input B: DSW 2 */
DEVCB_NULL,
DEVCB_NULL
},
diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c
index dc1a9031404..da7e1435a81 100644
--- a/src/mame/drivers/seta2.c
+++ b/src/mame/drivers/seta2.c
@@ -172,14 +172,16 @@ ADDRESS_MAP_END
Mobile Suit Gundam EX Revue
***************************************************************************/
-static READ16_DEVICE_HANDLER( gundamex_eeprom_r )
+READ16_MEMBER(seta2_state::gundamex_eeprom_r)
{
+ device_t *device = machine().device("eeprom");
eeprom_device *eeprom = downcast<eeprom_device *>(device);
return ((eeprom->read_bit() & 1)) << 3;
}
-static WRITE16_DEVICE_HANDLER( gundamex_eeprom_w )
+WRITE16_MEMBER(seta2_state::gundamex_eeprom_w)
{
+ device_t *device = machine().device("eeprom");
eeprom_device *eeprom = downcast<eeprom_device *>(device);
eeprom->set_clock_line((data & 0x2) ? ASSERT_LINE : CLEAR_LINE);
eeprom->write_bit(data & 0x1);
@@ -205,7 +207,7 @@ static ADDRESS_MAP_START( gundamex_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0xc50000, 0xc5ffff) AM_RAM // cleared
AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers
AM_RANGE(0xe00010, 0xe0001f) AM_WRITE(seta2_sound_bank_w) // Samples Banks
- AM_RANGE(0xfffd0a, 0xfffd0b) AM_DEVREADWRITE_LEGACY("eeprom", gundamex_eeprom_r,gundamex_eeprom_w) // parallel data register
+ AM_RANGE(0xfffd0a, 0xfffd0b) AM_READWRITE(gundamex_eeprom_r,gundamex_eeprom_w) // parallel data register
AM_RANGE(0xfffc00, 0xffffff) AM_READWRITE_LEGACY(tmp68301_regs_r, tmp68301_regs_w) // TMP68301 Registers
ADDRESS_MAP_END
@@ -583,12 +585,14 @@ READ32_MEMBER(seta2_state::funcube_debug_r)
return ret;
}
-static READ32_DEVICE_HANDLER( oki_read )
+READ32_MEMBER(seta2_state::oki_read)
{
+ device_t *device = machine().device("oki");
return downcast<okim9810_device *>(device)->read_status() << 16;
}
-static WRITE32_DEVICE_HANDLER( oki_write )
+WRITE32_MEMBER(seta2_state::oki_write)
{
+ device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
{
const UINT8 tmp = (data & 0x000000ff);
@@ -609,7 +613,7 @@ static ADDRESS_MAP_START( funcube_map, AS_PROGRAM, 32, seta2_state )
AM_RANGE( 0x00500000, 0x00500003 ) AM_READ(funcube_debug_r )
AM_RANGE( 0x00500004, 0x00500007 ) AM_READ(watchdog_reset32_r ) AM_WRITENOP
- AM_RANGE( 0x00600000, 0x00600003 ) AM_DEVREADWRITE_LEGACY("oki", oki_read, oki_write)
+ AM_RANGE( 0x00600000, 0x00600003 ) AM_READWRITE(oki_read, oki_write)
AM_RANGE( 0x00800000, 0x0083ffff ) AM_READWRITE16(spriteram16_word_r, spriteram16_word_w, 0xffffffff ) AM_SHARE("spriteram")
AM_RANGE( 0x00840000, 0x0084ffff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_dword_be_w) AM_SHARE("paletteram")
diff --git a/src/mame/drivers/sf.c b/src/mame/drivers/sf.c
index c3d8a7cf274..465967ca83b 100644
--- a/src/mame/drivers/sf.c
+++ b/src/mame/drivers/sf.c
@@ -177,8 +177,9 @@ WRITE8_MEMBER(sf_state::sound2_bank_w)
}
-static WRITE8_DEVICE_HANDLER( msm5205_w )
+WRITE8_MEMBER(sf_state::msm1_5205_w)
{
+ device_t *device = machine().device("msm1");
msm5205_reset_w(device, (data >> 7) & 1);
/* ?? bit 6?? */
msm5205_data_w(device, data);
@@ -186,6 +187,15 @@ static WRITE8_DEVICE_HANDLER( msm5205_w )
msm5205_vclk_w(device, 0);
}
+WRITE8_MEMBER(sf_state::msm2_5205_w)
+{
+ device_t *device = machine().device("msm2");
+ msm5205_reset_w(device, (data >> 7) & 1);
+ /* ?? bit 6?? */
+ msm5205_data_w(device, data);
+ msm5205_vclk_w(device, 1);
+ msm5205_vclk_w(device, 0);
+}
static ADDRESS_MAP_START( sf_map, AS_PROGRAM, 16, sf_state )
@@ -270,8 +280,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound2_io_map, AS_IO, 8, sf_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_DEVWRITE_LEGACY("msm1", msm5205_w)
- AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("msm2", msm5205_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(msm1_5205_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(msm2_5205_w)
AM_RANGE(0x01, 0x01) AM_READ(soundlatch_byte_r)
AM_RANGE(0x02, 0x02) AM_WRITE(sound2_bank_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/shadfrce.c b/src/mame/drivers/shadfrce.c
index cd148ff5c42..29d9e116f62 100644
--- a/src/mame/drivers/shadfrce.c
+++ b/src/mame/drivers/shadfrce.c
@@ -391,8 +391,9 @@ ADDRESS_MAP_END
/* and the sound cpu */
-static WRITE8_DEVICE_HANDLER( oki_bankswitch_w )
+WRITE8_MEMBER(shadfrce_state::oki_bankswitch_w)
{
+ device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_bank_base((data & 1) * 0x40000);
}
@@ -402,7 +403,7 @@ static ADDRESS_MAP_START( shadfrce_sound_map, AS_PROGRAM, 8, shadfrce_state )
AM_RANGE(0xc800, 0xc801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xd800, 0xd800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_byte_r)
- AM_RANGE(0xe800, 0xe800) AM_DEVWRITE_LEGACY("oki", oki_bankswitch_w)
+ AM_RANGE(0xe800, 0xe800) AM_WRITE(oki_bankswitch_w)
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/shangkid.c b/src/mame/drivers/shangkid.c
index 44355baa75d..15e85eedcc2 100644
--- a/src/mame/drivers/shangkid.c
+++ b/src/mame/drivers/shangkid.c
@@ -83,34 +83,31 @@ WRITE8_MEMBER(shangkid_state::shangkid_sound_enable_w)
m_bbx_sound_enable = data;
}
-static WRITE8_DEVICE_HANDLER( chinhero_ay8910_porta_w )
+WRITE8_MEMBER(shangkid_state::chinhero_ay8910_porta_w)
{
- shangkid_state *state = device->machine().driver_data<shangkid_state>();
- if( state->m_bbx_sound_enable )
+ if( m_bbx_sound_enable )
{
if( data == 0x01 )
/* 0->1 transition triggers interrupt on Sound CPU */
- cputag_set_input_line(device->machine(), "audiocpu", 0, HOLD_LINE );
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE );
}
}
-static WRITE8_DEVICE_HANDLER( shangkid_ay8910_porta_w )
+WRITE8_MEMBER(shangkid_state::shangkid_ay8910_porta_w)
{
- shangkid_state *state = device->machine().driver_data<shangkid_state>();
- if( state->m_bbx_sound_enable )
+ if( m_bbx_sound_enable )
{
if( data == 0x01 )
/* 0->1 transition triggers interrupt on Sound CPU */
- cputag_set_input_line(device->machine(), "audiocpu", 0, HOLD_LINE );
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE );
}
else
- state->membank("bank2")->set_entry(data ? 0 : 1);
+ membank("bank2")->set_entry(data ? 0 : 1);
}
-static WRITE8_DEVICE_HANDLER( ay8910_portb_w )
+WRITE8_MEMBER(shangkid_state::ay8910_portb_w)
{
- shangkid_state *state = device->machine().driver_data<shangkid_state>();
- state->m_sound_latch = data;
+ m_sound_latch = data;
}
/***************************************************************************************/
@@ -347,8 +344,8 @@ static const ay8910_interface chinhero_ay8910_interface =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(chinhero_ay8910_porta_w),
- DEVCB_HANDLER(ay8910_portb_w)
+ DEVCB_DRIVER_MEMBER(shangkid_state,chinhero_ay8910_porta_w),
+ DEVCB_DRIVER_MEMBER(shangkid_state,ay8910_portb_w)
};
@@ -358,8 +355,8 @@ static const ay8910_interface shangkid_ay8910_interface =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(shangkid_ay8910_porta_w),
- DEVCB_HANDLER(ay8910_portb_w)
+ DEVCB_DRIVER_MEMBER(shangkid_state,shangkid_ay8910_porta_w),
+ DEVCB_DRIVER_MEMBER(shangkid_state,ay8910_portb_w)
};
diff --git a/src/mame/drivers/silkroad.c b/src/mame/drivers/silkroad.c
index 21ace1bc908..7d4fe658476 100644
--- a/src/mame/drivers/silkroad.c
+++ b/src/mame/drivers/silkroad.c
@@ -133,13 +133,13 @@ WRITE32_MEMBER(silkroad_state::paletteram32_xRRRRRGGGGGBBBBB_dword_w)
palette_set_color_rgb(machine(),offset,pal5bit(m_generic_paletteram_32[offset] >> (10+16)),pal5bit(m_generic_paletteram_32[offset] >> (5+16)),pal5bit(m_generic_paletteram_32[offset] >> (0+16)));
}
-static WRITE32_DEVICE_HANDLER(silk_6295_bank_w)
+WRITE32_MEMBER(silkroad_state::silk_6295_bank_w)
{
if (ACCESSING_BITS_24_31)
{
int bank = (data & 0x3000000) >> 24;
if(bank < 3)
- device->machine().device<okim6295_device>("oki1")->set_bank_base(0x40000 * (bank));
+ machine().device<okim6295_device>("oki1")->set_bank_base(0x40000 * (bank));
}
}
@@ -164,7 +164,7 @@ static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 32, silkroad_state )
AM_RANGE(0xc00024, 0xc00027) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff0000)
AM_RANGE(0xc00028, 0xc0002f) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2151_r, ym2151_w, 0x00ff0000)
AM_RANGE(0xc00030, 0xc00033) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff0000)
- AM_RANGE(0xc00034, 0xc00037) AM_DEVWRITE_LEGACY("oki1", silk_6295_bank_w)
+ AM_RANGE(0xc00034, 0xc00037) AM_WRITE(silk_6295_bank_w)
AM_RANGE(0xc00038, 0xc0003b) AM_WRITE(silk_coin_counter_w)
AM_RANGE(0xc0010c, 0xc00123) AM_WRITEONLY AM_SHARE("regs")
AM_RANGE(0xfe0000, 0xffffff) AM_RAM
diff --git a/src/mame/drivers/skydiver.c b/src/mame/drivers/skydiver.c
index 270ca26c629..cf273318c4d 100644
--- a/src/mame/drivers/skydiver.c
+++ b/src/mame/drivers/skydiver.c
@@ -167,13 +167,15 @@ static INTERRUPT_GEN( skydiver_interrupt )
*
*************************************/
-static WRITE8_DEVICE_HANDLER( skydiver_sound_enable_w )
+WRITE8_MEMBER(skydiver_state::skydiver_sound_enable_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, SKYDIVER_SOUND_EN, offset);
}
-static WRITE8_DEVICE_HANDLER( skydiver_whistle_w )
+WRITE8_MEMBER(skydiver_state::skydiver_whistle_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, NODE_RELATIVE(SKYDIVER_WHISTLE1_EN, (offset >> 1)), offset & 0x01);
}
@@ -196,11 +198,11 @@ static ADDRESS_MAP_START( skydiver_map, AS_PROGRAM, 8, skydiver_state )
AM_RANGE(0x0806, 0x0807) AM_MIRROR(0x47f0) AM_WRITE(skydiver_start_lamp_2_w)
AM_RANGE(0x0808, 0x0809) AM_MIRROR(0x47f0) AM_WRITE(skydiver_lamp_y_w)
AM_RANGE(0x080a, 0x080b) AM_MIRROR(0x47f0) AM_WRITE(skydiver_lamp_d_w)
- AM_RANGE(0x080c, 0x080d) AM_MIRROR(0x47f0) AM_DEVWRITE_LEGACY("discrete", skydiver_sound_enable_w)
+ AM_RANGE(0x080c, 0x080d) AM_MIRROR(0x47f0) AM_WRITE(skydiver_sound_enable_w)
// AM_RANGE(0x1000, 0x1001) AM_MIRROR(0x47f0) AM_WRITE_LEGACY(skydiver_jump1_lamps_w)
AM_RANGE(0x1002, 0x1003) AM_MIRROR(0x47f0) AM_WRITE(skydiver_coin_lockout_w)
// AM_RANGE(0x1006, 0x1007) AM_MIRROR(0x47f0) AM_WRITE_LEGACY(skydiver_jump2_lamps_w)
- AM_RANGE(0x1008, 0x100b) AM_MIRROR(0x47f0) AM_DEVWRITE_LEGACY("discrete", skydiver_whistle_w)
+ AM_RANGE(0x1008, 0x100b) AM_MIRROR(0x47f0) AM_WRITE(skydiver_whistle_w)
AM_RANGE(0x100c, 0x100d) AM_MIRROR(0x47f0) AM_WRITE(skydiver_nmion_w)
AM_RANGE(0x100e, 0x100f) AM_MIRROR(0x47f0) AM_WRITE(skydiver_width_w)
AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x47e0) AM_READ_PORT("IN0")
diff --git a/src/mame/drivers/snk68.c b/src/mame/drivers/snk68.c
index d081acf8389..cff738a47f8 100644
--- a/src/mame/drivers/snk68.c
+++ b/src/mame/drivers/snk68.c
@@ -162,15 +162,17 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, snk68_state )
AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_byte_r) AM_WRITE(sound_status_w)
ADDRESS_MAP_END
-static WRITE8_DEVICE_HANDLER( D7759_write_port_0_w )
+WRITE8_MEMBER(snk68_state::D7759_write_port_0_w)
{
+ device_t *device = machine().device("upd");
upd7759_port_w(device, 0, data);
upd7759_start_w(device, 0);
upd7759_start_w(device, 1);
}
-static WRITE8_DEVICE_HANDLER( D7759_upd_reset_w )
+WRITE8_MEMBER(snk68_state::D7759_upd_reset_w)
{
+ device_t *device = machine().device("upd");
upd7759_reset_w(device, data & 0x80);
}
@@ -178,8 +180,8 @@ static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, snk68_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_status_port_r, ym3812_control_port_w)
AM_RANGE(0x20, 0x20) AM_DEVWRITE_LEGACY("ymsnd", ym3812_write_port_w)
- AM_RANGE(0x40, 0x40) AM_DEVWRITE_LEGACY("upd", D7759_write_port_0_w)
- AM_RANGE(0x80, 0x80) AM_DEVWRITE_LEGACY("upd", D7759_upd_reset_w)
+ AM_RANGE(0x40, 0x40) AM_WRITE(D7759_write_port_0_w)
+ AM_RANGE(0x80, 0x80) AM_WRITE(D7759_upd_reset_w)
ADDRESS_MAP_END
/******************************************************************************/
diff --git a/src/mame/drivers/snowbros.c b/src/mame/drivers/snowbros.c
index c7af1689c08..6333004affe 100644
--- a/src/mame/drivers/snowbros.c
+++ b/src/mame/drivers/snowbros.c
@@ -351,8 +351,9 @@ static ADDRESS_MAP_START( twinadv_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0xa00000, 0xa00001) AM_WRITE(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
ADDRESS_MAP_END
-static WRITE8_DEVICE_HANDLER( twinadv_oki_bank_w )
+WRITE8_MEMBER(snowbros_state::twinadv_oki_bank_w)
{
+ device_t *device = machine().device("oki");
int bank = (data &0x02)>>1;
if (data&0xfd) logerror ("Unused bank bits! %02x\n",data);
@@ -363,7 +364,7 @@ static WRITE8_DEVICE_HANDLER( twinadv_oki_bank_w )
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_byte_r, soundlatch_byte_w) // back to 68k?
- AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("oki", twinadv_oki_bank_w) // oki bank?
+ AM_RANGE(0x04, 0x04) AM_WRITE(twinadv_oki_bank_w) // oki bank?
AM_RANGE(0x06, 0x06) AM_DEVREADWRITE("oki", okim6295_device, read, write)
ADDRESS_MAP_END
@@ -471,13 +472,13 @@ static void sb3_play_sound (okim6295_device *oki, int data)
}
-static WRITE16_DEVICE_HANDLER( sb3_sound_w )
+WRITE16_MEMBER(snowbros_state::sb3_sound_w)
{
- snowbros_state *state = device->machine().driver_data<snowbros_state>();
+ device_t *device = machine().device("oki");
okim6295_device *oki = downcast<okim6295_device *>(device);
if (data == 0x00fe)
{
- state->m_sb3_music_is_playing = 0;
+ m_sb3_music_is_playing = 0;
oki->write_command(0x78); /* Stop sounds */
}
else /* the alternating 0x00-0x2f or 0x30-0x5f might be something to do with the channels */
@@ -491,7 +492,7 @@ static WRITE16_DEVICE_HANDLER( sb3_sound_w )
if (data>=0x22 && data<=0x31)
{
- sb3_play_music(device->machine(), data);
+ sb3_play_music(machine(), data);
}
if ((data>=0x30) && (data<=0x51))
@@ -501,7 +502,7 @@ static WRITE16_DEVICE_HANDLER( sb3_sound_w )
if (data>=0x52 && data<=0x5f)
{
- sb3_play_music(device->machine(), data-0x30);
+ sb3_play_music(machine(), data-0x30);
}
}
@@ -514,7 +515,7 @@ static ADDRESS_MAP_START( snowbros3_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE( 0x100000, 0x103fff) AM_RAM
AM_RANGE( 0x200000, 0x200001) AM_WRITE(watchdog_reset16_w)
AM_RANGE( 0x300000, 0x300001) AM_READ(sb3_sound_r) // ?
- AM_RANGE( 0x300000, 0x300001) AM_DEVWRITE_LEGACY("oki", sb3_sound_w) // ?
+ AM_RANGE( 0x300000, 0x300001) AM_WRITE(sb3_sound_w) // ?
AM_RANGE( 0x400000, 0x400001) AM_WRITE(snowbros_flipscreen_w)
AM_RANGE( 0x500000, 0x500001) AM_READ_PORT("DSW1")
AM_RANGE( 0x500002, 0x500003) AM_READ_PORT("DSW2")
diff --git a/src/mame/drivers/speedatk.c b/src/mame/drivers/speedatk.c
index d0a6f253e42..505ff7fc2c8 100644
--- a/src/mame/drivers/speedatk.c
+++ b/src/mame/drivers/speedatk.c
@@ -301,11 +301,10 @@ static const mc6845_interface mc6845_intf =
NULL /* update address callback */
};
-static WRITE8_DEVICE_HANDLER( speedatk_output_w )
+WRITE8_MEMBER(speedatk_state::speedatk_output_w)
{
- speedatk_state *state = device->machine().driver_data<speedatk_state>();
- state->m_flip_scr = data & 0x80;
+ m_flip_scr = data & 0x80;
if((data & 0x7f) != 0x7f)
logerror("%02x\n",data);
@@ -317,7 +316,7 @@ static const ay8910_interface ay8910_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_INPUT_PORT("DSW"),
- DEVCB_HANDLER(speedatk_output_w),
+ DEVCB_DRIVER_MEMBER(speedatk_state,speedatk_output_w),
DEVCB_NULL
};
diff --git a/src/mame/drivers/speedspn.c b/src/mame/drivers/speedspn.c
index bc3c1fdc414..1bf94e42a76 100644
--- a/src/mame/drivers/speedspn.c
+++ b/src/mame/drivers/speedspn.c
@@ -96,8 +96,9 @@ WRITE8_MEMBER(speedspn_state::speedspn_sound_w)
cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
}
-static WRITE8_DEVICE_HANDLER( oki_banking_w )
+WRITE8_MEMBER(speedspn_state::oki_banking_w)
{
+ device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * (data & 3));
}
@@ -133,7 +134,7 @@ ADDRESS_MAP_END
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_LEGACY("oki", oki_banking_w)
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(oki_banking_w)
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/spiders.c b/src/mame/drivers/spiders.c
index 7ce2bd1edbf..6f08f56e9dc 100644
--- a/src/mame/drivers/spiders.c
+++ b/src/mame/drivers/spiders.c
@@ -209,9 +209,9 @@
*
*************************************/
-static WRITE_LINE_DEVICE_HANDLER( flipscreen_w );
-static WRITE8_DEVICE_HANDLER( gfx_rom_intf_w );
-static READ8_DEVICE_HANDLER( gfx_rom_r );
+
+
+
@@ -221,28 +221,28 @@ static READ8_DEVICE_HANDLER( gfx_rom_r );
*
*************************************/
-static WRITE_LINE_DEVICE_HANDLER( main_cpu_irq )
+WRITE_LINE_MEMBER(spiders_state::main_cpu_irq)
{
- pia6821_device *pia1 = device->machine().device<pia6821_device>("pia1");
- pia6821_device *pia2 = device->machine().device<pia6821_device>("pia2");
- pia6821_device *pia3 = device->machine().device<pia6821_device>("pia3");
+ pia6821_device *pia1 = machine().device<pia6821_device>("pia1");
+ pia6821_device *pia2 = machine().device<pia6821_device>("pia2");
+ pia6821_device *pia3 = machine().device<pia6821_device>("pia3");
int combined_state = pia1->irq_a_state() | pia1->irq_b_state() |
pia2->irq_b_state() |
pia3->irq_a_state() | pia3->irq_b_state();
- cputag_set_input_line(device->machine(), "maincpu", M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE);
}
-static WRITE_LINE_DEVICE_HANDLER( main_cpu_firq )
+WRITE_LINE_MEMBER(spiders_state::main_cpu_firq)
{
- cputag_set_input_line(device->machine(), "maincpu", M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE);
}
-static WRITE_LINE_DEVICE_HANDLER( audio_cpu_irq )
+WRITE_LINE_MEMBER(spiders_state::audio_cpu_irq)
{
- cputag_set_input_line(device->machine(), "audiocpu", M6800_IRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE);
+ cputag_set_input_line(machine(), "audiocpu", M6800_IRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE);
}
@@ -265,8 +265,8 @@ static const pia6821_interface pia_1_intf =
DEVCB_NULL, /* port B out */
DEVCB_NULL, /* line CA2 out */
DEVCB_NULL, /* port CB2 out */
- DEVCB_LINE(main_cpu_irq), /* IRQA */
- DEVCB_LINE(main_cpu_irq) /* IRQB */
+ DEVCB_DRIVER_LINE_MEMBER(spiders_state,main_cpu_irq), /* IRQA */
+ DEVCB_DRIVER_LINE_MEMBER(spiders_state,main_cpu_irq) /* IRQB */
};
static INTERRUPT_GEN( update_pia_1 )
@@ -296,18 +296,18 @@ static INTERRUPT_GEN( update_pia_1 )
static const pia6821_interface pia_2_intf =
{
- DEVCB_HANDLER(gfx_rom_r), /* port A in */
+ DEVCB_DRIVER_MEMBER(spiders_state,gfx_rom_r), /* port A in */
DEVCB_NULL, /* port B in */
DEVCB_NULL, /* line CA1 in */
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
DEVCB_NULL, /* port A out */
- DEVCB_HANDLER(gfx_rom_intf_w), /* port B out */
+ DEVCB_DRIVER_MEMBER(spiders_state,gfx_rom_intf_w), /* port B out */
DEVCB_NULL, /* line CA2 out */
- DEVCB_LINE(flipscreen_w), /* port CB2 out */
- DEVCB_LINE(main_cpu_firq), /* IRQA */
- DEVCB_LINE(main_cpu_irq) /* IRQB */
+ DEVCB_DRIVER_LINE_MEMBER(spiders_state,flipscreen_w), /* port CB2 out */
+ DEVCB_DRIVER_LINE_MEMBER(spiders_state,main_cpu_firq), /* IRQA */
+ DEVCB_DRIVER_LINE_MEMBER(spiders_state,main_cpu_irq) /* IRQB */
};
@@ -330,8 +330,8 @@ static const pia6821_interface pia_3_intf =
DEVCB_DEVICE_HANDLER("pia4", spiders_audio_command_w), /* port B out */
DEVCB_NULL, /* line CA2 out */
DEVCB_NULL, /* port CB2 out */
- DEVCB_LINE(main_cpu_irq), /* IRQA */
- DEVCB_LINE(main_cpu_irq) /* IRQB */
+ DEVCB_DRIVER_LINE_MEMBER(spiders_state,main_cpu_irq), /* IRQA */
+ DEVCB_DRIVER_LINE_MEMBER(spiders_state,main_cpu_irq) /* IRQB */
};
@@ -354,7 +354,7 @@ static const pia6821_interface pia_4_intf =
DEVCB_DEVICE_HANDLER("discrete", spiders_audio_b_w), /* port B out */
DEVCB_NULL, /* line CA2 out */
DEVCB_NULL, /* port CB2 out */
- DEVCB_LINE(audio_cpu_irq), /* IRQA */
+ DEVCB_DRIVER_LINE_MEMBER(spiders_state,audio_cpu_irq), /* IRQA */
DEVCB_NULL /* IRQB */
};
@@ -418,10 +418,9 @@ static MACHINE_START( spiders )
*************************************/
-static WRITE_LINE_DEVICE_HANDLER( flipscreen_w )
+WRITE_LINE_MEMBER(spiders_state::flipscreen_w)
{
- spiders_state *drvstate = device->machine().driver_data<spiders_state>();
- drvstate->m_flipscreen = state;
+ m_flipscreen = state;
}
@@ -500,9 +499,9 @@ static MC6845_UPDATE_ROW( update_row )
}
-static WRITE_LINE_DEVICE_HANDLER( display_enable_changed )
+WRITE_LINE_MEMBER(spiders_state::display_enable_changed)
{
- ttl74123_a_w(device->machine().device("ic60"), 0, state);
+ ttl74123_a_w(machine().device("ic60"), 0, state);
}
@@ -513,7 +512,7 @@ static const mc6845_interface mc6845_intf =
begin_update, /* before pixel update callback */
update_row, /* row update callback */
NULL, /* after pixel update callback */
- DEVCB_LINE(display_enable_changed), /* callback for display state changes */
+ DEVCB_DRIVER_LINE_MEMBER(spiders_state,display_enable_changed), /* callback for display state changes */
DEVCB_NULL, /* callback for cursor state changes */
DEVCB_NULL, /* HSYNC callback */
DEVCB_NULL, /* VSYNC callback */
@@ -529,32 +528,30 @@ static const mc6845_interface mc6845_intf =
*
*************************************/
-static WRITE8_DEVICE_HANDLER( gfx_rom_intf_w )
+WRITE8_MEMBER(spiders_state::gfx_rom_intf_w)
{
- spiders_state *state = device->machine().driver_data<spiders_state>();
- state->m_gfx_rom_ctrl_mode = ( data >> 7) & 0x01;
- state->m_gfx_rom_ctrl_latch = ( data >> 4) & 0x03;
- state->m_gfx_rom_ctrl_data = (~data >> 0) & 0x0f;
+ m_gfx_rom_ctrl_mode = ( data >> 7) & 0x01;
+ m_gfx_rom_ctrl_latch = ( data >> 4) & 0x03;
+ m_gfx_rom_ctrl_data = (~data >> 0) & 0x0f;
}
-static READ8_DEVICE_HANDLER( gfx_rom_r )
+READ8_MEMBER(spiders_state::gfx_rom_r)
{
- spiders_state *state = device->machine().driver_data<spiders_state>();
UINT8 ret;
- if (state->m_gfx_rom_ctrl_mode)
+ if (m_gfx_rom_ctrl_mode)
{
- UINT8 *rom = state->memregion("gfx1")->base();
+ UINT8 *rom = memregion("gfx1")->base();
- ret = rom[state->m_gfx_rom_address];
+ ret = rom[m_gfx_rom_address];
- state->m_gfx_rom_address = state->m_gfx_rom_address + 1;
+ m_gfx_rom_address = m_gfx_rom_address + 1;
}
else
{
- UINT8 shift_count = state->m_gfx_rom_ctrl_latch << 2;
- state->m_gfx_rom_address = (state->m_gfx_rom_address & ~(0x0f << shift_count)) | (state->m_gfx_rom_ctrl_data << shift_count);
+ UINT8 shift_count = m_gfx_rom_ctrl_latch << 2;
+ m_gfx_rom_address = (m_gfx_rom_address & ~(0x0f << shift_count)) | (m_gfx_rom_ctrl_data << shift_count);
ret = 0;
}
diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c
index 90a18fba194..a54c30729f2 100644
--- a/src/mame/drivers/sprint2.c
+++ b/src/mame/drivers/sprint2.c
@@ -209,30 +209,33 @@ WRITE8_MEMBER(sprint2_state::sprint2_wram_w)
}
-static WRITE8_DEVICE_HANDLER( sprint2_attract_w )
+WRITE8_MEMBER(sprint2_state::sprint2_attract_w)
{
- sprint2_state *state = device->machine().driver_data<sprint2_state>();
- state->m_attract = offset & 1;
+ device_t *device = machine().device("discrete");
+ m_attract = offset & 1;
// also DOMINOS_ATTRACT_EN
- discrete_sound_w(device, SPRINT2_ATTRACT_EN, state->m_attract);
+ discrete_sound_w(device, SPRINT2_ATTRACT_EN, m_attract);
}
-static WRITE8_DEVICE_HANDLER( sprint2_noise_reset_w )
+WRITE8_MEMBER(sprint2_state::sprint2_noise_reset_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, SPRINT2_NOISE_RESET, 0);
}
-static WRITE8_DEVICE_HANDLER( sprint2_skid1_w )
+WRITE8_MEMBER(sprint2_state::sprint2_skid1_w)
{
+ device_t *device = machine().device("discrete");
// also DOMINOS_TUMBLE_EN
discrete_sound_w(device, SPRINT2_SKIDSND1_EN, offset & 1);
}
-static WRITE8_DEVICE_HANDLER( sprint2_skid2_w )
+WRITE8_MEMBER(sprint2_state::sprint2_skid2_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, SPRINT2_SKIDSND2_EN, offset & 1);
}
@@ -257,9 +260,9 @@ static ADDRESS_MAP_START( sprint2_map, AS_PROGRAM, 8, sprint2_state )
AM_RANGE(0x0880, 0x08bf) AM_READ(sprint2_steering1_r)
AM_RANGE(0x08c0, 0x08ff) AM_READ(sprint2_steering2_r)
AM_RANGE(0x0c00, 0x0fff) AM_READ(sprint2_sync_r)
- AM_RANGE(0x0c00, 0x0c0f) AM_DEVWRITE_LEGACY("discrete", sprint2_attract_w)
- AM_RANGE(0x0c10, 0x0c1f) AM_DEVWRITE_LEGACY("discrete", sprint2_skid1_w)
- AM_RANGE(0x0c20, 0x0c2f) AM_DEVWRITE_LEGACY("discrete", sprint2_skid2_w)
+ AM_RANGE(0x0c00, 0x0c0f) AM_WRITE(sprint2_attract_w)
+ AM_RANGE(0x0c10, 0x0c1f) AM_WRITE(sprint2_skid1_w)
+ AM_RANGE(0x0c20, 0x0c2f) AM_WRITE(sprint2_skid2_w)
AM_RANGE(0x0c30, 0x0c3f) AM_WRITE(sprint2_lamp1_w)
AM_RANGE(0x0c40, 0x0c4f) AM_WRITE(sprint2_lamp2_w)
AM_RANGE(0x0c60, 0x0c6f) AM_WRITENOP /* SPARE */
@@ -268,7 +271,7 @@ static ADDRESS_MAP_START( sprint2_map, AS_PROGRAM, 8, sprint2_state )
AM_RANGE(0x0d80, 0x0dff) AM_WRITE(sprint2_collision_reset2_w)
AM_RANGE(0x0e00, 0x0e7f) AM_WRITE(sprint2_steering_reset1_w)
AM_RANGE(0x0e80, 0x0eff) AM_WRITE(sprint2_steering_reset2_w)
- AM_RANGE(0x0f00, 0x0f7f) AM_DEVWRITE_LEGACY("discrete", sprint2_noise_reset_w)
+ AM_RANGE(0x0f00, 0x0f7f) AM_WRITE(sprint2_noise_reset_w)
AM_RANGE(0x1000, 0x13ff) AM_READ(sprint2_collision1_r)
AM_RANGE(0x1400, 0x17ff) AM_READ(sprint2_collision2_r)
AM_RANGE(0x1800, 0x1800) AM_READNOP /* debugger ROM location? */
diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c
index 3b1f83987ee..a2d887ff443 100644
--- a/src/mame/drivers/sprint4.c
+++ b/src/mame/drivers/sprint4.c
@@ -185,40 +185,46 @@ WRITE8_MEMBER(sprint4_state::sprint4_lockout_w)
#endif
-static WRITE8_DEVICE_HANDLER( sprint4_screech_1_w )
+WRITE8_MEMBER(sprint4_state::sprint4_screech_1_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, SPRINT4_SCREECH_EN_1, offset & 1);
}
-static WRITE8_DEVICE_HANDLER( sprint4_screech_2_w )
+WRITE8_MEMBER(sprint4_state::sprint4_screech_2_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, SPRINT4_SCREECH_EN_2, offset & 1);
}
-static WRITE8_DEVICE_HANDLER( sprint4_screech_3_w )
+WRITE8_MEMBER(sprint4_state::sprint4_screech_3_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, SPRINT4_SCREECH_EN_3, offset & 1);
}
-static WRITE8_DEVICE_HANDLER( sprint4_screech_4_w )
+WRITE8_MEMBER(sprint4_state::sprint4_screech_4_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, SPRINT4_SCREECH_EN_4, offset & 1);
}
-static WRITE8_DEVICE_HANDLER( sprint4_bang_w )
+WRITE8_MEMBER(sprint4_state::sprint4_bang_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, SPRINT4_BANG_DATA, data & 0x0f);
}
-static WRITE8_DEVICE_HANDLER( sprint4_attract_w )
+WRITE8_MEMBER(sprint4_state::sprint4_attract_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, SPRINT4_ATTRACT_EN, data & 1);
}
@@ -238,16 +244,16 @@ static ADDRESS_MAP_START( sprint4_cpu_map, AS_PROGRAM, 8, sprint4_state )
AM_RANGE(0x1000, 0x17ff) AM_READ_PORT("IN0")
AM_RANGE(0x1800, 0x1fff) AM_READ_PORT("IN1")
- AM_RANGE(0x0000, 0x0000) AM_MIRROR(0x71f) AM_DEVWRITE_LEGACY("discrete", sprint4_attract_w)
+ AM_RANGE(0x0000, 0x0000) AM_MIRROR(0x71f) AM_WRITE(sprint4_attract_w)
AM_RANGE(0x0020, 0x0027) AM_MIRROR(0x718) AM_WRITE(sprint4_collision_reset_w)
AM_RANGE(0x0040, 0x0041) AM_MIRROR(0x718) AM_WRITE(sprint4_da_latch_w)
- AM_RANGE(0x0042, 0x0043) AM_MIRROR(0x718) AM_DEVWRITE_LEGACY("discrete", sprint4_bang_w)
+ AM_RANGE(0x0042, 0x0043) AM_MIRROR(0x718) AM_WRITE(sprint4_bang_w)
AM_RANGE(0x0044, 0x0045) AM_MIRROR(0x718) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x0060, 0x0067) AM_MIRROR(0x710) AM_WRITE(sprint4_lamp_w)
- AM_RANGE(0x0068, 0x0069) AM_MIRROR(0x710) AM_DEVWRITE_LEGACY("discrete", sprint4_screech_1_w)
- AM_RANGE(0x006a, 0x006b) AM_MIRROR(0x710) AM_DEVWRITE_LEGACY("discrete", sprint4_screech_2_w)
- AM_RANGE(0x006c, 0x006d) AM_MIRROR(0x710) AM_DEVWRITE_LEGACY("discrete", sprint4_screech_3_w)
- AM_RANGE(0x006e, 0x006f) AM_MIRROR(0x710) AM_DEVWRITE_LEGACY("discrete", sprint4_screech_4_w)
+ AM_RANGE(0x0068, 0x0069) AM_MIRROR(0x710) AM_WRITE(sprint4_screech_1_w)
+ AM_RANGE(0x006a, 0x006b) AM_MIRROR(0x710) AM_WRITE(sprint4_screech_2_w)
+ AM_RANGE(0x006c, 0x006d) AM_MIRROR(0x710) AM_WRITE(sprint4_screech_3_w)
+ AM_RANGE(0x006e, 0x006f) AM_MIRROR(0x710) AM_WRITE(sprint4_screech_4_w)
AM_RANGE(0x2000, 0x27ff) AM_NOP /* diagnostic ROM */
AM_RANGE(0x2800, 0x3fff) AM_ROM
diff --git a/src/mame/drivers/srmp2.c b/src/mame/drivers/srmp2.c
index dc5b5499a02..55c6629e4ca 100644
--- a/src/mame/drivers/srmp2.c
+++ b/src/mame/drivers/srmp2.c
@@ -161,8 +161,9 @@ WRITE16_MEMBER(srmp2_state::mjyuugi_adpcm_bank_w)
}
-static WRITE16_DEVICE_HANDLER( srmp2_adpcm_code_w )
+WRITE16_MEMBER(srmp2_state::srmp2_adpcm_code_w)
{
+ device_t *device = machine().device("msm");
/*
- Received data may be playing ADPCM number.
- 0x000000 - 0x0000ff and 0x010000 - 0x0100ff are offset table.
@@ -170,23 +171,23 @@ static WRITE16_DEVICE_HANDLER( srmp2_adpcm_code_w )
table and plays the ADPCM for itself.
*/
- srmp2_state *state = device->machine().driver_data<srmp2_state>();
- UINT8 *ROM = state->memregion("adpcm")->base();
+ UINT8 *ROM = memregion("adpcm")->base();
- state->m_adpcm_sptr = (ROM[((state->m_adpcm_bank * 0x10000) + (data << 2) + 0)] << 8);
- state->m_adpcm_eptr = (ROM[((state->m_adpcm_bank * 0x10000) + (data << 2) + 1)] << 8);
- state->m_adpcm_eptr = (state->m_adpcm_eptr - 1) & 0x0ffff;
+ m_adpcm_sptr = (ROM[((m_adpcm_bank * 0x10000) + (data << 2) + 0)] << 8);
+ m_adpcm_eptr = (ROM[((m_adpcm_bank * 0x10000) + (data << 2) + 1)] << 8);
+ m_adpcm_eptr = (m_adpcm_eptr - 1) & 0x0ffff;
- state->m_adpcm_sptr += (state->m_adpcm_bank * 0x10000);
- state->m_adpcm_eptr += (state->m_adpcm_bank * 0x10000);
+ m_adpcm_sptr += (m_adpcm_bank * 0x10000);
+ m_adpcm_eptr += (m_adpcm_bank * 0x10000);
msm5205_reset_w(device, 0);
- state->m_adpcm_data = -1;
+ m_adpcm_data = -1;
}
-static WRITE8_DEVICE_HANDLER( srmp3_adpcm_code_w )
+WRITE8_MEMBER(srmp2_state::srmp3_adpcm_code_w)
{
+ device_t *device = machine().device("msm");
/*
- Received data may be playing ADPCM number.
- 0x000000 - 0x0000ff and 0x010000 - 0x0100ff are offset table.
@@ -194,18 +195,17 @@ static WRITE8_DEVICE_HANDLER( srmp3_adpcm_code_w )
table and plays the ADPCM for itself.
*/
- srmp2_state *state = device->machine().driver_data<srmp2_state>();
- UINT8 *ROM = state->memregion("adpcm")->base();
+ UINT8 *ROM = memregion("adpcm")->base();
- state->m_adpcm_sptr = (ROM[((state->m_adpcm_bank * 0x10000) + (data << 2) + 0)] << 8);
- state->m_adpcm_eptr = (ROM[((state->m_adpcm_bank * 0x10000) + (data << 2) + 1)] << 8);
- state->m_adpcm_eptr = (state->m_adpcm_eptr - 1) & 0x0ffff;
+ m_adpcm_sptr = (ROM[((m_adpcm_bank * 0x10000) + (data << 2) + 0)] << 8);
+ m_adpcm_eptr = (ROM[((m_adpcm_bank * 0x10000) + (data << 2) + 1)] << 8);
+ m_adpcm_eptr = (m_adpcm_eptr - 1) & 0x0ffff;
- state->m_adpcm_sptr += (state->m_adpcm_bank * 0x10000);
- state->m_adpcm_eptr += (state->m_adpcm_bank * 0x10000);
+ m_adpcm_sptr += (m_adpcm_bank * 0x10000);
+ m_adpcm_eptr += (m_adpcm_bank * 0x10000);
msm5205_reset_w(device, 0);
- state->m_adpcm_data = -1;
+ m_adpcm_data = -1;
}
@@ -397,7 +397,7 @@ static ADDRESS_MAP_START( srmp2_map, AS_PROGRAM, 16, srmp2_state )
AM_RANGE(0x900000, 0x900001) AM_WRITENOP /* ??? */
AM_RANGE(0xa00000, 0xa00001) AM_READWRITE8(iox_mux_r, iox_command_w,0x00ff) /* key matrix | I/O */
AM_RANGE(0xa00002, 0xa00003) AM_READWRITE8(iox_status_r,iox_data_w,0x00ff)
- AM_RANGE(0xb00000, 0xb00001) AM_DEVWRITE_LEGACY("msm", srmp2_adpcm_code_w) /* ADPCM number */
+ AM_RANGE(0xb00000, 0xb00001) AM_WRITE(srmp2_adpcm_code_w) /* ADPCM number */
AM_RANGE(0xb00002, 0xb00003) AM_READ8(vox_status_r,0x00ff) /* ADPCM voice status */
AM_RANGE(0xc00000, 0xc00001) AM_WRITE8(srmp2_irq2_ack_w,0x00ff) /* irq ack lv 2 */
AM_RANGE(0xd00000, 0xd00001) AM_WRITE8(srmp2_irq4_ack_w,0x00ff) /* irq ack lv 4 */
@@ -432,7 +432,7 @@ static ADDRESS_MAP_START( mjyuugi_map, AS_PROGRAM, 16, srmp2_state )
AM_RANGE(0x800000, 0x800001) AM_READNOP /* ??? */
AM_RANGE(0x900000, 0x900001) AM_READWRITE8(iox_mux_r, iox_command_w,0x00ff) /* key matrix | I/O */
AM_RANGE(0x900002, 0x900003) AM_READWRITE8(iox_status_r,iox_data_w,0x00ff)
- AM_RANGE(0xa00000, 0xa00001) AM_DEVWRITE_LEGACY("msm", srmp2_adpcm_code_w) /* ADPCM number */
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITE(srmp2_adpcm_code_w) /* ADPCM number */
AM_RANGE(0xb00002, 0xb00003) AM_READ8(vox_status_r,0x00ff) /* ADPCM voice status */
AM_RANGE(0xb00000, 0xb00001) AM_DEVREAD8_LEGACY("aysnd", ay8910_r, 0x00ff)
AM_RANGE(0xb00000, 0xb00003) AM_DEVWRITE8_LEGACY("aysnd", ay8910_address_data_w, 0x00ff)
@@ -481,7 +481,7 @@ static ADDRESS_MAP_START( srmp3_io_map, AS_IO, 8, srmp2_state )
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 */
AM_RANGE(0x60, 0x60) AM_WRITE(srmp3_rombank_w) /* ROM bank select */
- AM_RANGE(0xa0, 0xa0) AM_DEVWRITE_LEGACY("msm", srmp3_adpcm_code_w) /* ADPCM number */
+ AM_RANGE(0xa0, 0xa0) AM_WRITE(srmp3_adpcm_code_w) /* ADPCM number */
AM_RANGE(0xa1, 0xa1) AM_READ(vox_status_r) /* ADPCM voice status */
AM_RANGE(0xc0, 0xc0) AM_READWRITE(iox_mux_r, iox_command_w) /* key matrix | I/O */
AM_RANGE(0xc1, 0xc1) AM_READWRITE(iox_status_r,iox_data_w)
diff --git a/src/mame/drivers/sslam.c b/src/mame/drivers/sslam.c
index 599535bc679..5d7c6bf6cf1 100644
--- a/src/mame/drivers/sslam.c
+++ b/src/mame/drivers/sslam.c
@@ -294,13 +294,13 @@ static void sslam_play(device_t *device, int track, int data)
}
}
-static WRITE16_DEVICE_HANDLER( sslam_snd_w )
+WRITE16_MEMBER(sslam_state::sslam_snd_w)
{
+ device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
{
- sslam_state *state = device->machine().driver_data<sslam_state>();
- logerror("%s Writing %04x to Sound CPU\n",device->machine().describe_context(),data);
+ logerror("%s Writing %04x to Sound CPU\n",machine().describe_context(),data);
if (data >= 0x40) {
if (data == 0xfe) {
/* This should reset the sound MCU and stop audio playback, but here, it */
@@ -313,57 +313,57 @@ static WRITE16_DEVICE_HANDLER( sslam_snd_w )
}
}
else if (data == 0) {
- state->m_bar = 0; /* Complete any current bars then stop sequencing */
- state->m_melody = 0;
+ m_bar = 0; /* Complete any current bars then stop sequencing */
+ m_melody = 0;
}
else {
- state->m_sound = sslam_snd_cmd[data];
+ m_sound = sslam_snd_cmd[data];
- if (state->m_sound == 0xff) {
- popmessage("Unmapped sound command %02x on Bank %02x",data,state->m_snd_bank);
+ if (m_sound == 0xff) {
+ popmessage("Unmapped sound command %02x on Bank %02x",data,m_snd_bank);
}
- else if (state->m_sound >= 0x70) {
+ else if (m_sound >= 0x70) {
/* These vocals are in bank 1, but a bug in the actual MCU doesn't set the bank */
-// if (state->m_snd_bank != 1)
+// if (m_snd_bank != 1)
// downcast<okim6295_device *>(device)->set_bank_base((1 * 0x40000));
// sslam_snd_bank = 1;
- sslam_play(device, 0, state->m_sound);
+ sslam_play(device, 0, m_sound);
}
- else if (state->m_sound >= 0x69) {
- if (state->m_snd_bank != 2)
+ else if (m_sound >= 0x69) {
+ if (m_snd_bank != 2)
downcast<okim6295_device *>(device)->set_bank_base(2 * 0x40000);
- state->m_snd_bank = 2;
- switch (state->m_sound)
+ m_snd_bank = 2;
+ switch (m_sound)
{
- case 0x69: state->m_melody = 5; break;
- case 0x6b: state->m_melody = 6; break;
- case 0x6c: state->m_melody = 7; break;
- default: state->m_melody = 0; state->m_bar = 0; break; /* Invalid */
+ case 0x69: m_melody = 5; break;
+ case 0x6b: m_melody = 6; break;
+ case 0x6c: m_melody = 7; break;
+ default: m_melody = 0; m_bar = 0; break; /* Invalid */
}
- sslam_play(device, state->m_melody, state->m_sound);
+ sslam_play(device, m_melody, m_sound);
}
- else if (state->m_sound >= 0x65) {
- if (state->m_snd_bank != 1)
+ else if (m_sound >= 0x65) {
+ if (m_snd_bank != 1)
downcast<okim6295_device *>(device)->set_bank_base(1 * 0x40000);
- state->m_snd_bank = 1;
- state->m_melody = 4;
- sslam_play(device, state->m_melody, state->m_sound);
+ m_snd_bank = 1;
+ m_melody = 4;
+ sslam_play(device, m_melody, m_sound);
}
- else if (state->m_sound >= 0x60) {
- if (state->m_snd_bank != 0)
+ else if (m_sound >= 0x60) {
+ if (m_snd_bank != 0)
downcast<okim6295_device *>(device)->set_bank_base(0 * 0x40000);
- state->m_snd_bank = 0;
- switch (state->m_sound)
+ m_snd_bank = 0;
+ switch (m_sound)
{
- case 0x60: state->m_melody = 1; break;
- case 0x63: state->m_melody = 2; break;
- case 0x64: state->m_melody = 3; break;
- default: state->m_melody = 0; state->m_bar = 0; break; /* Invalid */
+ case 0x60: m_melody = 1; break;
+ case 0x63: m_melody = 2; break;
+ case 0x64: m_melody = 3; break;
+ default: m_melody = 0; m_bar = 0; break; /* Invalid */
}
- sslam_play(device, state->m_melody, state->m_sound);
+ sslam_play(device, m_melody, m_sound);
}
else {
- sslam_play(device, 0, state->m_sound);
+ sslam_play(device, 0, m_sound);
}
}
}
@@ -398,7 +398,7 @@ static ADDRESS_MAP_START( sslam_program_map, AS_PROGRAM, 16, sslam_state )
AM_RANGE(0x300018, 0x300019) AM_READ_PORT("IN4")
AM_RANGE(0x30001a, 0x30001b) AM_READ_PORT("DSW2")
AM_RANGE(0x30001c, 0x30001d) AM_READ_PORT("DSW1")
- AM_RANGE(0x30001e, 0x30001f) AM_DEVWRITE_LEGACY("oki", sslam_snd_w)
+ AM_RANGE(0x30001e, 0x30001f) AM_WRITE(sslam_snd_w)
AM_RANGE(0xf00000, 0xffffff) AM_RAM /* Main RAM */
AM_RANGE(0x000000, 0xffffff) AM_ROM /* I don't honestly know where the rom is mirrored .. so all unmapped reads / writes go to rom */
diff --git a/src/mame/drivers/ssv.c b/src/mame/drivers/ssv.c
index c4a09eb04b2..4db4fc8e41d 100644
--- a/src/mame/drivers/ssv.c
+++ b/src/mame/drivers/ssv.c
@@ -453,21 +453,21 @@ ADDRESS_MAP_END
Mobil Suit Gundam Final Shooting
***************************************************************************/
-static READ16_DEVICE_HANDLER( gdfs_eeprom_r )
+READ16_MEMBER(ssv_state::gdfs_eeprom_r)
{
- ssv_state *state = device->machine().driver_data<ssv_state>();
+ device_t *device = machine().device("eeprom");
static const char *const gunnames[] = { "GUNX1", "GUNY1", "GUNX2", "GUNY2" };
eeprom_device *eeprom = downcast<eeprom_device *>(device);
- return (((state->m_gdfs_lightgun_select & 1) ? 0 : 0xff) ^ device->machine().root_device().ioport(gunnames[state->m_gdfs_lightgun_select])->read()) | (eeprom->read_bit() << 8);
+ return (((m_gdfs_lightgun_select & 1) ? 0 : 0xff) ^ machine().root_device().ioport(gunnames[m_gdfs_lightgun_select])->read()) | (eeprom->read_bit() << 8);
}
-static WRITE16_DEVICE_HANDLER( gdfs_eeprom_w )
+WRITE16_MEMBER(ssv_state::gdfs_eeprom_w)
{
- ssv_state *state = device->machine().driver_data<ssv_state>();
+ device_t *device = machine().device("eeprom");
if (data & ~0x7b00)
- logerror("%s - Unknown EEPROM bit written %04X\n",device->machine().describe_context(),data);
+ logerror("%s - Unknown EEPROM bit written %04X\n",machine().describe_context(),data);
if ( ACCESSING_BITS_8_15 )
{
@@ -484,11 +484,11 @@ static WRITE16_DEVICE_HANDLER( gdfs_eeprom_w )
// clock line asserted: write latch or select next bit to read
eeprom->set_clock_line((data & 0x2000) ? ASSERT_LINE : CLEAR_LINE );
- if (!(state->m_gdfs_eeprom_old & 0x0800) && (data & 0x0800)) // rising clock
- state->m_gdfs_lightgun_select = (data & 0x0300) >> 8;
+ if (!(m_gdfs_eeprom_old & 0x0800) && (data & 0x0800)) // rising clock
+ m_gdfs_lightgun_select = (data & 0x0300) >> 8;
}
- COMBINE_DATA(&state->m_gdfs_eeprom_old);
+ COMBINE_DATA(&m_gdfs_eeprom_old);
}
@@ -582,8 +582,8 @@ static ADDRESS_MAP_START( gdfs_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x400000, 0x41ffff) AM_RAM_WRITE(gdfs_tmapram_w) AM_SHARE("gdfs_tmapram")
AM_RANGE(0x420000, 0x43ffff) AM_RAM
AM_RANGE(0x440000, 0x44003f) AM_RAM AM_SHARE("gdfs_tmapscroll")
- AM_RANGE(0x500000, 0x500001) AM_DEVWRITE_LEGACY("eeprom", gdfs_eeprom_w)
- AM_RANGE(0x540000, 0x540001) AM_DEVREAD_LEGACY("eeprom", gdfs_eeprom_r)
+ AM_RANGE(0x500000, 0x500001) AM_WRITE(gdfs_eeprom_w)
+ AM_RANGE(0x540000, 0x540001) AM_READ(gdfs_eeprom_r)
AM_RANGE(0x600000, 0x600fff) AM_RAM
AM_RANGE(0x800000, 0x87ffff) AM_RAM AM_SHARE("spriteram2")
AM_RANGE(0x8c0000, 0x8c00ff) AM_READWRITE(gdfs_blitram_r, gdfs_blitram_w) AM_SHARE("gdfs_blitram")
diff --git a/src/mame/drivers/starshp1.c b/src/mame/drivers/starshp1.c
index 351da7ade66..fe7cc635a2d 100644
--- a/src/mame/drivers/starshp1.c
+++ b/src/mame/drivers/starshp1.c
@@ -21,19 +21,19 @@ static INTERRUPT_GEN( starshp1_interrupt )
}
-static WRITE8_DEVICE_HANDLER( starshp1_audio_w )
+WRITE8_MEMBER(starshp1_state::starshp1_audio_w)
{
- starshp1_state *state = device->machine().driver_data<starshp1_state>();
+ device_t *device = machine().device("discrete");
data &= 1;
switch (offset & 7)
{
case 0:
- state->m_attract = data;
+ m_attract = data;
discrete_sound_w(device, STARSHP1_ATTRACT, data);
break;
case 1:
- state->m_phasor = data;
+ m_phasor = data;
discrete_sound_w(device, STARSHP1_PHASOR_ON, data);
break;
case 2:
@@ -53,8 +53,8 @@ static WRITE8_DEVICE_HANDLER( starshp1_audio_w )
break;
}
- coin_lockout_w(device->machine(), 0, !state->m_attract);
- coin_lockout_w(device->machine(), 1, !state->m_attract);
+ coin_lockout_w(machine(), 0, !m_attract);
+ coin_lockout_w(machine(), 1, !m_attract);
}
@@ -100,13 +100,13 @@ WRITE8_MEMBER(starshp1_state::starshp1_analog_in_w)
}
-static WRITE8_DEVICE_HANDLER( starshp1_analog_out_w )
+WRITE8_MEMBER(starshp1_state::starshp1_analog_out_w)
{
- starshp1_state *state = device->machine().driver_data<starshp1_state>();
+ device_t *device = machine().device("discrete");
switch (offset & 7)
{
case 1:
- state->m_ship_size = data;
+ m_ship_size = data;
break;
case 2:
discrete_sound_w(device, STARSHP1_NOISE_AMPLITUDE, data);
@@ -118,13 +118,13 @@ static WRITE8_DEVICE_HANDLER( starshp1_analog_out_w )
discrete_sound_w(device, STARSHP1_MOTOR_SPEED, data);
break;
case 5:
- state->m_circle_hpos = data;
+ m_circle_hpos = data;
break;
case 6:
- state->m_circle_vpos = data;
+ m_circle_vpos = data;
break;
case 7:
- state->m_circle_size = data;
+ m_circle_size = data;
break;
}
}
@@ -180,8 +180,8 @@ static ADDRESS_MAP_START( starshp1_map, AS_PROGRAM, 8, starshp1_state )
AM_RANGE(0xd800, 0xd80f) AM_WRITE(starshp1_collision_reset_w)
AM_RANGE(0xdc00, 0xdc0f) AM_WRITE(starshp1_misc_w)
AM_RANGE(0xdd00, 0xdd0f) AM_WRITE(starshp1_analog_in_w)
- AM_RANGE(0xde00, 0xde0f) AM_DEVWRITE_LEGACY("discrete", starshp1_audio_w)
- AM_RANGE(0xdf00, 0xdf0f) AM_DEVWRITE_LEGACY("discrete", starshp1_analog_out_w)
+ AM_RANGE(0xde00, 0xde0f) AM_WRITE(starshp1_audio_w)
+ AM_RANGE(0xdf00, 0xdf0f) AM_WRITE(starshp1_analog_out_w)
AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/stlforce.c b/src/mame/drivers/stlforce.c
index f8b82092398..772dd58742b 100644
--- a/src/mame/drivers/stlforce.c
+++ b/src/mame/drivers/stlforce.c
@@ -74,8 +74,9 @@ TO DO :
#include "includes/stlforce.h"
-static WRITE16_DEVICE_HANDLER( eeprom_w )
+WRITE16_MEMBER(stlforce_state::eeprom_w)
{
+ device_t *device = machine().device("eeprom");
if( ACCESSING_BITS_0_7 )
{
eeprom_device *eeprom = downcast<eeprom_device *>(device);
@@ -85,8 +86,9 @@ static WRITE16_DEVICE_HANDLER( eeprom_w )
}
}
-static WRITE16_DEVICE_HANDLER( oki_bank_w )
+WRITE16_MEMBER(stlforce_state::oki_bank_w)
{
+ device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * ((data>>8) & 3));
}
@@ -107,8 +109,8 @@ static ADDRESS_MAP_START( stlforce_map, AS_PROGRAM, 16, stlforce_state )
AM_RANGE(0x109000, 0x11ffff) AM_RAM
AM_RANGE(0x400000, 0x400001) AM_READ_PORT("INPUT")
AM_RANGE(0x400002, 0x400003) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x400010, 0x400011) AM_DEVWRITE_LEGACY("eeprom", eeprom_w)
- AM_RANGE(0x400012, 0x400013) AM_DEVWRITE_LEGACY("oki", oki_bank_w)
+ AM_RANGE(0x400010, 0x400011) AM_WRITE(eeprom_w)
+ AM_RANGE(0x400012, 0x400013) AM_WRITE(oki_bank_w)
AM_RANGE(0x40001e, 0x40001f) AM_WRITENOP // sprites buffer commands
AM_RANGE(0x410000, 0x410001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/suna16.c b/src/mame/drivers/suna16.c
index 4118d361c4f..303a911afe6 100644
--- a/src/mame/drivers/suna16.c
+++ b/src/mame/drivers/suna16.c
@@ -292,24 +292,40 @@ ADDRESS_MAP_END
/* 2 DACs per CPU - 4 bits per sample */
-static WRITE8_DEVICE_HANDLER( bssoccer_DAC_w )
+WRITE8_MEMBER(suna16_state::bssoccer_DAC1_w)
{
+ device_t *device = machine().device("dac1");
+ dac_data_w( device, (data & 0xf) * 0x11 );
+}
+WRITE8_MEMBER(suna16_state::bssoccer_DAC2_w)
+{
+ device_t *device = machine().device("dac2");
+ dac_data_w( device, (data & 0xf) * 0x11 );
+}
+WRITE8_MEMBER(suna16_state::bssoccer_DAC3_w)
+{
+ device_t *device = machine().device("dac3");
+ dac_data_w( device, (data & 0xf) * 0x11 );
+}
+WRITE8_MEMBER(suna16_state::bssoccer_DAC4_w)
+{
+ device_t *device = machine().device("dac4");
dac_data_w( device, (data & 0xf) * 0x11 );
}
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_byte_r) // From The Sound Z80
- AM_RANGE(0x00, 0x00) AM_DEVWRITE_LEGACY("dac1", bssoccer_DAC_w) // 2 x DAC
- AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("dac2", bssoccer_DAC_w) // 2 x DAC
+ AM_RANGE(0x00, 0x00) AM_WRITE(bssoccer_DAC1_w) // 2 x DAC
+ AM_RANGE(0x01, 0x01) AM_WRITE(bssoccer_DAC2_w) // 2 x DAC
AM_RANGE(0x03, 0x03) AM_WRITE(bssoccer_pcm_1_bankswitch_w) // Rom Bank
ADDRESS_MAP_END
static ADDRESS_MAP_START( bssoccer_pcm_2_io_map, AS_IO, 8, suna16_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch3_byte_r) // From The Sound Z80
- AM_RANGE(0x00, 0x00) AM_DEVWRITE_LEGACY("dac3", bssoccer_DAC_w) // 2 x DAC
- AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("dac4", bssoccer_DAC_w) // 2 x DAC
+ AM_RANGE(0x00, 0x00) AM_WRITE(bssoccer_DAC3_w) // 2 x DAC
+ AM_RANGE(0x01, 0x01) AM_WRITE(bssoccer_DAC4_w) // 2 x DAC
AM_RANGE(0x03, 0x03) AM_WRITE(bssoccer_pcm_2_bankswitch_w) // Rom Bank
ADDRESS_MAP_END
@@ -338,8 +354,8 @@ ADDRESS_MAP_END
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_byte_r) // From The Sound Z80
- AM_RANGE(0x00, 0x00) AM_DEVWRITE_LEGACY("dac1", bssoccer_DAC_w) // 2 x DAC
- AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("dac2", bssoccer_DAC_w) // 2 x DAC
+ AM_RANGE(0x00, 0x00) AM_WRITE(bssoccer_DAC1_w) // 2 x DAC
+ AM_RANGE(0x01, 0x01) AM_WRITE(bssoccer_DAC2_w) // 2 x DAC
AM_RANGE(0x03, 0x03) AM_WRITE(uballoon_pcm_1_bankswitch_w) // Rom Bank
ADDRESS_MAP_END
@@ -362,8 +378,8 @@ ADDRESS_MAP_END
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_byte_r ) // From The Sound Z80
- AM_RANGE(0x00, 0x00) AM_MIRROR(0x02) AM_DEVWRITE_LEGACY("dac1", bssoccer_DAC_w) // 2 x DAC
- AM_RANGE(0x01, 0x01) AM_MIRROR(0x02) AM_DEVWRITE_LEGACY("dac2", bssoccer_DAC_w) // 2 x DAC
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0x02) AM_WRITE(bssoccer_DAC1_w) // 2 x DAC
+ AM_RANGE(0x01, 0x01) AM_MIRROR(0x02) AM_WRITE(bssoccer_DAC2_w) // 2 x DAC
ADDRESS_MAP_END
/***************************************************************************
@@ -914,7 +930,7 @@ static const ym3526_interface bestbest_ym3526_interface =
DEVCB_CPU_INPUT_LINE("audiocpu", INPUT_LINE_IRQ0)
};
-static WRITE8_DEVICE_HANDLER( bestbest_ay8910_port_a_w )
+WRITE8_MEMBER(suna16_state::bestbest_ay8910_port_a_w)
{
// ?
}
@@ -924,7 +940,7 @@ static const ay8910_interface bestbest_ay8910_interface =
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
DEVCB_NULL, DEVCB_NULL,
- DEVCB_HANDLER(bestbest_ay8910_port_a_w), DEVCB_NULL
+ DEVCB_DRIVER_MEMBER(suna16_state,bestbest_ay8910_port_a_w), DEVCB_NULL
};
static MACHINE_CONFIG_START( bestbest, suna16_state )
diff --git a/src/mame/drivers/superqix.c b/src/mame/drivers/superqix.c
index fa0ac8d3921..44a3589422a 100644
--- a/src/mame/drivers/superqix.c
+++ b/src/mame/drivers/superqix.c
@@ -170,18 +170,16 @@ The MCU acts this way:
**************************************************************************/
-static READ8_DEVICE_HANDLER( in4_mcu_r )
+READ8_MEMBER(superqix_state::in4_mcu_r)
{
- superqix_state *state = device->machine().driver_data<superqix_state>();
// logerror("%04x: in4_mcu_r\n",cpu_get_pc(&space->device()));
- return state->ioport("P2")->read() | (state->m_from_mcu_pending << 6) | (state->m_from_z80_pending << 7);
+ return ioport("P2")->read() | (m_from_mcu_pending << 6) | (m_from_z80_pending << 7);
}
-static READ8_DEVICE_HANDLER( sqix_from_mcu_r )
+READ8_MEMBER(superqix_state::sqix_from_mcu_r)
{
- superqix_state *state = device->machine().driver_data<superqix_state>();
-// logerror("%04x: read mcu answer (%02x)\n",cpu_get_pc(&space->device()),state->m_from_mcu);
- return state->m_from_mcu;
+// logerror("%04x: read mcu answer (%02x)\n",cpu_get_pc(&space->device()),m_from_mcu);
+ return m_from_mcu;
}
static TIMER_CALLBACK( mcu_acknowledge_callback )
@@ -198,11 +196,10 @@ READ8_MEMBER(superqix_state::mcu_acknowledge_r)
return 0;
}
-static WRITE8_DEVICE_HANDLER( sqix_z80_mcu_w )
+WRITE8_MEMBER(superqix_state::sqix_z80_mcu_w)
{
- superqix_state *state = device->machine().driver_data<superqix_state>();
// logerror("%04x: sqix_z80_mcu_w %02x\n",cpu_get_pc(&space->device()),data);
- state->m_portb = data;
+ m_portb = data;
}
WRITE8_MEMBER(superqix_state::bootleg_mcu_p1_w)
@@ -323,9 +320,9 @@ READ8_MEMBER(superqix_state::nmi_ack_r)
return sqix_system_status_r(space, 0);
}
-static READ8_DEVICE_HANDLER( bootleg_in0_r )
+READ8_MEMBER(superqix_state::bootleg_in0_r)
{
- return BITSWAP8(device->machine().root_device().ioport("DSW1")->read(), 0,1,2,3,4,5,6,7);
+ return BITSWAP8(machine().root_device().ioport("DSW1")->read(), 0,1,2,3,4,5,6,7);
}
WRITE8_MEMBER(superqix_state::bootleg_flipscreen_w)
@@ -474,11 +471,10 @@ READ8_MEMBER(superqix_state::hotsmash_from_mcu_r)
return m_from_mcu;
}
-static READ8_DEVICE_HANDLER(hotsmash_ay_port_a_r)
+READ8_MEMBER(superqix_state::hotsmash_ay_port_a_r)
{
- superqix_state *state = device->machine().driver_data<superqix_state>();
-// logerror("%04x: ay_port_a_r and mcu_pending is %d\n",cpu_get_pc(&space->device()),state->m_from_mcu_pending);
- return state->ioport("SYSTEM")->read() | 0x40 | ((state->m_from_mcu_pending^1) << 7);
+// logerror("%04x: ay_port_a_r and mcu_pending is %d\n",cpu_get_pc(&space->device()),m_from_mcu_pending);
+ return ioport("SYSTEM")->read() | 0x40 | ((m_from_mcu_pending^1) << 7);
}
/**************************************************************************
@@ -517,11 +513,11 @@ READ8_MEMBER(superqix_state::pbillian_from_mcu_r)
return 0;
}
-static READ8_DEVICE_HANDLER(pbillian_ay_port_a_r)
+READ8_MEMBER(superqix_state::pbillian_ay_port_a_r)
{
// logerror("%04x: ay_port_a_r\n",cpu_get_pc(&space->device()));
/* bits 76------ MCU status bits */
- return (device->machine().rand() & 0xc0) | device->machine().root_device().ioport("BUTTONS")->read();
+ return (machine().rand() & 0xc0) | machine().root_device().ioport("BUTTONS")->read();
}
@@ -930,7 +926,7 @@ static const ay8910_interface pbillian_ay8910_interface =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(pbillian_ay_port_a_r), /* port Aread */
+ DEVCB_DRIVER_MEMBER(superqix_state,pbillian_ay_port_a_r), /* port Aread */
DEVCB_INPUT_PORT("SYSTEM"),
DEVCB_NULL,
DEVCB_NULL
@@ -940,7 +936,7 @@ static const ay8910_interface hotsmash_ay8910_interface =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(hotsmash_ay_port_a_r), /* port Aread */
+ DEVCB_DRIVER_MEMBER(superqix_state,hotsmash_ay_port_a_r), /* port Aread */
DEVCB_INPUT_PORT("SYSTEM"),
DEVCB_NULL,
DEVCB_NULL
@@ -951,7 +947,7 @@ static const ay8910_interface sqix_ay8910_interface_1 =
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
DEVCB_INPUT_PORT("P1"),
- DEVCB_HANDLER(in4_mcu_r), /* port Bread */
+ DEVCB_DRIVER_MEMBER(superqix_state,in4_mcu_r), /* port Bread */
DEVCB_NULL,
DEVCB_NULL
};
@@ -961,9 +957,9 @@ static const ay8910_interface sqix_ay8910_interface_2 =
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
DEVCB_INPUT_PORT("DSW2"),
- DEVCB_HANDLER(sqix_from_mcu_r), /* port Bread */
+ DEVCB_DRIVER_MEMBER(superqix_state,sqix_from_mcu_r), /* port Bread */
DEVCB_NULL, /* port Awrite */
- DEVCB_HANDLER(sqix_z80_mcu_w) /* port Bwrite */
+ DEVCB_DRIVER_MEMBER(superqix_state,sqix_z80_mcu_w) /* port Bwrite */
};
static const ay8910_interface bootleg_ay8910_interface_1 =
@@ -981,7 +977,7 @@ static const ay8910_interface bootleg_ay8910_interface_2 =
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
DEVCB_INPUT_PORT("DSW2"),
- DEVCB_HANDLER(bootleg_in0_r), /* port Bread */
+ DEVCB_DRIVER_MEMBER(superqix_state,bootleg_in0_r), /* port Bread */
DEVCB_NULL,
DEVCB_NULL
};
diff --git a/src/mame/drivers/suprridr.c b/src/mame/drivers/suprridr.c
index 54dedd510f8..2c4b6dc4243 100644
--- a/src/mame/drivers/suprridr.c
+++ b/src/mame/drivers/suprridr.c
@@ -128,10 +128,9 @@ WRITE8_MEMBER(suprridr_state::sound_data_w)
}
-static READ8_DEVICE_HANDLER( sound_data_r )
+READ8_MEMBER(suprridr_state::sound_data_r)
{
- suprridr_state *state = device->machine().driver_data<suprridr_state>();
- return state->m_sound_data;
+ return m_sound_data;
}
@@ -341,7 +340,7 @@ static const ay8910_interface ay8910_config =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(sound_data_r),
+ DEVCB_DRIVER_MEMBER(suprridr_state,sound_data_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c
index bba094d7052..5eeab65f31e 100644
--- a/src/mame/drivers/system1.c
+++ b/src/mame/drivers/system1.c
@@ -472,16 +472,16 @@ static void dakkochn_custom_w(running_machine &machine, UINT8 data, UINT8 prevda
*
*************************************/
-static WRITE8_DEVICE_HANDLER( sound_control_w )
+WRITE8_MEMBER(system1_state::sound_control_w)
{
- system1_state *state = device->machine().driver_data<system1_state>();
+ device_t *device = machine().device("ppi8255");
/* bit 0 = MUTE (inverted sense on System 2) */
- device->machine().sound().system_mute((data ^ state->m_mute_xor) & 1);
+ machine().sound().system_mute((data ^ m_mute_xor) & 1);
/* bit 6 = feedback from sound board that read occurrred */
/* bit 7 controls the sound CPU's NMI line */
- cputag_set_input_line(device->machine(), "soundcpu", INPUT_LINE_NMI, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "soundcpu", INPUT_LINE_NMI, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
/* remaining bits are used for video RAM banking */
system1_videoram_bank_w(device, offset, data);
@@ -2106,7 +2106,7 @@ static I8255A_INTERFACE( ppi8255_intf )
DEVCB_NULL, /* Port B read */
DEVCB_DRIVER_MEMBER(system1_state, videomode_w), /* Port B write */
DEVCB_NULL, /* Port C read */
- DEVCB_HANDLER(sound_control_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(system1_state,sound_control_w) /* Port C write */
};
static Z80PIO_INTERFACE( pio_interface )
diff --git a/src/mame/drivers/system16.c b/src/mame/drivers/system16.c
index 33e54c555e0..fc85c0a765a 100644
--- a/src/mame/drivers/system16.c
+++ b/src/mame/drivers/system16.c
@@ -458,20 +458,21 @@ static ADDRESS_MAP_START( sound_7759_map, AS_PROGRAM, 8, segas1x_bootleg_state )
ADDRESS_MAP_END
-static WRITE8_DEVICE_HANDLER( upd7759_bank_w ) //*
+WRITE8_MEMBER(segas1x_bootleg_state::upd7759_bank_w)//*
{
- int offs, size = device->machine().root_device().memregion("soundcpu")->bytes() - 0x10000;
+ device_t *device = machine().device("7759");
+ int offs, size = machine().root_device().memregion("soundcpu")->bytes() - 0x10000;
upd7759_reset_w(device, data & 0x40);
offs = 0x10000 + (data * 0x4000) % size;
- device->machine().root_device().membank("bank1")->set_base(device->machine().root_device().memregion("soundcpu")->base() + offs);
+ machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("soundcpu")->base() + offs);
}
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_LEGACY("ymsnd", ym2151_r, ym2151_w)
- AM_RANGE(0x40, 0x40) AM_DEVWRITE_LEGACY("7759", upd7759_bank_w)
+ AM_RANGE(0x40, 0x40) AM_WRITE(upd7759_bank_w)
AM_RANGE(0x80, 0x80) AM_DEVWRITE_LEGACY("7759", upd7759_port_w)
AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_byte_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tail2nos.c b/src/mame/drivers/tail2nos.c
index 5fdbd3ca72f..3b407b328d6 100644
--- a/src/mame/drivers/tail2nos.c
+++ b/src/mame/drivers/tail2nos.c
@@ -27,9 +27,9 @@ WRITE16_MEMBER(tail2nos_state::sound_command_w)
}
}
-static WRITE8_DEVICE_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(tail2nos_state::sound_bankswitch_w)
{
- device->machine().root_device().membank("bank3")->set_entry(data & 0x01);
+ machine().root_device().membank("bank3")->set_entry(data & 0x01);
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tail2nos_state )
@@ -191,7 +191,7 @@ static const ym2608_interface ym2608_config =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(sound_bankswitch_w)
+ DEVCB_DRIVER_MEMBER(tail2nos_state,sound_bankswitch_w)
},
irqhandler
};
diff --git a/src/mame/drivers/taito_f2.c b/src/mame/drivers/taito_f2.c
index 3530984ac75..8781cd1f07f 100644
--- a/src/mame/drivers/taito_f2.c
+++ b/src/mame/drivers/taito_f2.c
@@ -2799,7 +2799,7 @@ static const ym2610_interface ym2610_config =
};
-static WRITE8_DEVICE_HANDLER( cameltrya_porta_w )
+WRITE8_MEMBER(taitof2_state::cameltrya_porta_w)
{
// Implement //
}
@@ -2811,7 +2811,7 @@ static const ym2203_interface ym2203_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL, /* portA read */
DEVCB_NULL,
- DEVCB_HANDLER(cameltrya_porta_w), /* portA write - not implemented */
+ DEVCB_DRIVER_MEMBER(taitof2_state,cameltrya_porta_w), /* portA write - not implemented */
DEVCB_NULL, /* portB write */
},
irq_handler
diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c
index aa8e6783762..ac1cbd86f05 100644
--- a/src/mame/drivers/taito_l.c
+++ b/src/mame/drivers/taito_l.c
@@ -484,22 +484,20 @@ WRITE8_MEMBER(taitol_state::control2_w)
coin_counter_w(machine(), 1, data & 0x08);
}
-static READ8_DEVICE_HANDLER( portA_r )
+READ8_MEMBER(taitol_state::portA_r)
{
- taitol_state *state = device->machine().driver_data<taitol_state>();
- return state->ioport((state->m_extport == 0) ? state->m_porte0_tag : state->m_porte1_tag)->read();
+ return ioport((m_extport == 0) ? m_porte0_tag : m_porte1_tag)->read();
}
-static READ8_DEVICE_HANDLER( portB_r )
+READ8_MEMBER(taitol_state::portB_r)
{
- taitol_state *state = device->machine().driver_data<taitol_state>();
- return state->ioport((state->m_extport == 0) ? state->m_portf0_tag : state->m_portf1_tag)->read();
+ return ioport((m_extport == 0) ? m_portf0_tag : m_portf1_tag)->read();
}
-static READ8_DEVICE_HANDLER( extport_select_and_ym2203_r )
+READ8_MEMBER(taitol_state::extport_select_and_ym2203_r)
{
- taitol_state *state = device->machine().driver_data<taitol_state>();
- state->m_extport = (offset >> 1) & 1;
+ device_t *device = machine().device("ymsnd");
+ m_extport = (offset >> 1) & 1;
return ym2203_r(device, offset & 1);
}
@@ -612,21 +610,23 @@ WRITE8_MEMBER(taitol_state::champwr_msm5205_hi_w)
m_adpcm_pos = ((m_adpcm_pos & 0x00ffff) | (data << 16)) & 0x1ffff;
}
-static WRITE8_DEVICE_HANDLER( champwr_msm5205_start_w )
+WRITE8_MEMBER(taitol_state::champwr_msm5205_start_w)
{
+ device_t *device = machine().device("msm");
msm5205_reset_w(device, 0);
}
-static WRITE8_DEVICE_HANDLER( champwr_msm5205_stop_w )
+WRITE8_MEMBER(taitol_state::champwr_msm5205_stop_w)
{
- taitol_state *state = device->machine().driver_data<taitol_state>();
+ device_t *device = machine().device("msm");
msm5205_reset_w(device, 1);
- state->m_adpcm_pos &= 0x1ff00;
+ m_adpcm_pos &= 0x1ff00;
}
-static WRITE8_DEVICE_HANDLER( champwr_msm5205_volume_w )
+WRITE8_MEMBER(taitol_state::champwr_msm5205_volume_w)
{
+ device_t *device = machine().device("msm");
device_sound_interface *sound;
device->interface(sound);
sound->set_output_gain(0, data / 255.0);
@@ -684,7 +684,7 @@ READ8_MEMBER(taitol_state::horshoes_trackx_hi_r)
AM_RANGE(0xff08, 0xff08) AM_READWRITE(rombankswitch_r, rombankswitch_w)
#define COMMON_SINGLE_MAP \
- AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE_LEGACY("ymsnd", extport_select_and_ym2203_r, ym2203_w) \
+ AM_RANGE(0xa000, 0xa003) AM_READ(extport_select_and_ym2203_r) AM_DEVWRITE_LEGACY("ymsnd", ym2203_w) \
AM_RANGE(0x8000, 0x9fff) AM_RAM
@@ -792,8 +792,8 @@ static ADDRESS_MAP_START( champwr_3_map, AS_PROGRAM, 8, taitol_state )
AM_RANGE(0xa001, 0xa001) AM_DEVREADWRITE_LEGACY("tc0140syt", tc0140syt_slave_comm_r, tc0140syt_slave_comm_w)
AM_RANGE(0xb000, 0xb000) AM_WRITE(champwr_msm5205_hi_w)
AM_RANGE(0xc000, 0xc000) AM_WRITE(champwr_msm5205_lo_w)
- AM_RANGE(0xd000, 0xd000) AM_DEVWRITE_LEGACY("msm", champwr_msm5205_start_w)
- AM_RANGE(0xe000, 0xe000) AM_DEVWRITE_LEGACY("msm", champwr_msm5205_stop_w)
+ AM_RANGE(0xd000, 0xd000) AM_WRITE(champwr_msm5205_start_w)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(champwr_msm5205_stop_w)
ADDRESS_MAP_END
@@ -1777,19 +1777,18 @@ static void irqhandler( device_t *device, int irq )
device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
}
-static WRITE8_DEVICE_HANDLER( portA_w )
+WRITE8_MEMBER(taitol_state::portA_w)
{
- taitol_state *state = device->machine().driver_data<taitol_state>();
- if (state->m_cur_bank != (data & 0x03))
+ if (m_cur_bank != (data & 0x03))
{
int bankaddress;
- UINT8 *RAM = state->memregion("audiocpu")->base();
+ UINT8 *RAM = memregion("audiocpu")->base();
- state->m_cur_bank = data & 0x03;
- bankaddress = 0x10000 + (state->m_cur_bank - 1) * 0x4000;
- state->membank("bank7")->set_base(&RAM[bankaddress]);
- //logerror ("YM2203 bank change val=%02x pc=%04x\n", state->m_cur_bank, cpu_get_pc(&space->device()) );
+ m_cur_bank = data & 0x03;
+ bankaddress = 0x10000 + (m_cur_bank - 1) * 0x4000;
+ membank("bank7")->set_base(&RAM[bankaddress]);
+ //logerror ("YM2203 bank change val=%02x pc=%04x\n", m_cur_bank, cpu_get_pc(&space->device()) );
}
}
@@ -1800,7 +1799,7 @@ static const ym2203_interface ym2203_interface_triple =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(portA_w),
+ DEVCB_DRIVER_MEMBER(taitol_state,portA_w),
DEVCB_NULL,
},
irqhandler
@@ -1813,8 +1812,8 @@ static const ym2203_interface ym2203_interface_champwr =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(portA_w),
- DEVCB_DEVICE_HANDLER("msm", champwr_msm5205_volume_w),
+ DEVCB_DRIVER_MEMBER(taitol_state,portA_w),
+ DEVCB_DRIVER_MEMBER(taitol_state,champwr_msm5205_volume_w),
},
irqhandler
};
@@ -1836,8 +1835,8 @@ static const ym2203_interface ym2203_interface_single =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(portA_r),
- DEVCB_HANDLER(portB_r),
+ DEVCB_DRIVER_MEMBER(taitol_state,portA_r),
+ DEVCB_DRIVER_MEMBER(taitol_state,portB_r),
DEVCB_NULL,
DEVCB_NULL
},
diff --git a/src/mame/drivers/taitosj.c b/src/mame/drivers/taitosj.c
index 0a9b95b6aa4..31f0c685364 100644
--- a/src/mame/drivers/taitosj.c
+++ b/src/mame/drivers/taitosj.c
@@ -171,10 +171,9 @@ TODO:
#include "includes/taitosj.h"
-static WRITE8_DEVICE_HANDLER( taitosj_sndnmi_msk_w )
+WRITE8_MEMBER(taitosj_state::taitosj_sndnmi_msk_w)
{
- taitosj_state *state = device->machine().driver_data<taitosj_state>();
- state->m_sndnmi_disable = data & 0x01;
+ m_sndnmi_disable = data & 0x01;
}
WRITE8_MEMBER(taitosj_state::taitosj_soundcommand_w)
@@ -184,10 +183,9 @@ WRITE8_MEMBER(taitosj_state::taitosj_soundcommand_w)
}
-static WRITE8_DEVICE_HANDLER( input_port_4_f0_w )
+WRITE8_MEMBER(taitosj_state::input_port_4_f0_w)
{
- taitosj_state *state = device->machine().driver_data<taitosj_state>();
- state->m_input_port_4_f0 = data >> 4;
+ m_input_port_4_f0 = data >> 4;
}
CUSTOM_INPUT_MEMBER(taitosj_state::input_port_4_f0_r)
@@ -1731,18 +1729,18 @@ static const UINT8 voltable[256] =
};
-static WRITE8_DEVICE_HANDLER( dac_out_w )
+WRITE8_MEMBER(taitosj_state::dac_out_w)
{
- taitosj_state *state = device->machine().driver_data<taitosj_state>();
- state->m_dac_out = data - 0x80;
- dac_signed_data_16_w(device,state->m_dac_out * state->m_dac_vol + 0x8000);
+ device_t *device = machine().device("dac");
+ m_dac_out = data - 0x80;
+ dac_signed_data_16_w(device,m_dac_out * m_dac_vol + 0x8000);
}
-static WRITE8_DEVICE_HANDLER( dac_vol_w )
+WRITE8_MEMBER(taitosj_state::dac_vol_w)
{
- taitosj_state *state = device->machine().driver_data<taitosj_state>();
- state->m_dac_vol = voltable[data];
- dac_signed_data_16_w(device,state->m_dac_out * state->m_dac_vol + 0x8000);
+ device_t *device = machine().device("dac");
+ m_dac_vol = voltable[data];
+ dac_signed_data_16_w(device,m_dac_out * m_dac_vol + 0x8000);
}
@@ -1762,8 +1760,8 @@ static const ay8910_interface ay8910_interface_2 =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_DEVICE_HANDLER("dac", dac_out_w), /* port Awrite */
- DEVCB_DEVICE_HANDLER("dac", dac_vol_w) /* port Bwrite */
+ DEVCB_DRIVER_MEMBER(taitosj_state,dac_out_w), /* port Awrite */
+ DEVCB_DRIVER_MEMBER(taitosj_state,dac_vol_w) /* port Bwrite */
};
static const ay8910_interface ay8910_interface_3 =
@@ -1772,7 +1770,7 @@ static const ay8910_interface ay8910_interface_3 =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(input_port_4_f0_w),
+ DEVCB_DRIVER_MEMBER(taitosj_state,input_port_4_f0_w),
DEVCB_NULL
};
@@ -1783,7 +1781,7 @@ static const ay8910_interface ay8910_interface_4 =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(taitosj_sndnmi_msk_w) /* port Bwrite */
+ DEVCB_DRIVER_MEMBER(taitosj_state,taitosj_sndnmi_msk_w) /* port Bwrite */
};
diff --git a/src/mame/drivers/tank8.c b/src/mame/drivers/tank8.c
index 96b2cefe0f6..2c327944443 100644
--- a/src/mame/drivers/tank8.c
+++ b/src/mame/drivers/tank8.c
@@ -45,23 +45,27 @@ WRITE8_MEMBER(tank8_state::tank8_int_reset_w)
cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
-static WRITE8_DEVICE_HANDLER( tank8_crash_w )
+WRITE8_MEMBER(tank8_state::tank8_crash_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, TANK8_CRASH_EN, data);
}
-static WRITE8_DEVICE_HANDLER( tank8_explosion_w )
+WRITE8_MEMBER(tank8_state::tank8_explosion_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, TANK8_EXPLOSION_EN, data);
}
-static WRITE8_DEVICE_HANDLER( tank8_bugle_w )
+WRITE8_MEMBER(tank8_state::tank8_bugle_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, TANK8_BUGLE_EN, data);
}
-static WRITE8_DEVICE_HANDLER( tank8_bug_w )
+WRITE8_MEMBER(tank8_state::tank8_bug_w)
{
+ device_t *device = machine().device("discrete");
/* D0 and D1 determine the on/off time off the square wave */
switch(data & 3) {
case 0:
@@ -84,13 +88,15 @@ static WRITE8_DEVICE_HANDLER( tank8_bug_w )
}
-static WRITE8_DEVICE_HANDLER( tank8_attract_w )
+WRITE8_MEMBER(tank8_state::tank8_attract_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, TANK8_ATTRACT_EN, data);
}
-static WRITE8_DEVICE_HANDLER( tank8_motor_w )
+WRITE8_MEMBER(tank8_state::tank8_motor_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, NODE_RELATIVE(TANK8_MOTOR1_EN, offset), data);
}
@@ -121,13 +127,13 @@ static ADDRESS_MAP_START( tank8_cpu_map, AS_PROGRAM, 8, tank8_state )
AM_RANGE(0x1c30, 0x1c37) AM_WRITE(tank8_lockout_w)
AM_RANGE(0x1d00, 0x1d00) AM_WRITE(tank8_int_reset_w)
- AM_RANGE(0x1d01, 0x1d01) AM_DEVWRITE_LEGACY("discrete", tank8_crash_w)
- AM_RANGE(0x1d02, 0x1d02) AM_DEVWRITE_LEGACY("discrete", tank8_explosion_w)
- AM_RANGE(0x1d03, 0x1d03) AM_DEVWRITE_LEGACY("discrete", tank8_bugle_w)
- AM_RANGE(0x1d04, 0x1d04) AM_DEVWRITE_LEGACY("discrete", tank8_bug_w)
+ AM_RANGE(0x1d01, 0x1d01) AM_WRITE(tank8_crash_w)
+ AM_RANGE(0x1d02, 0x1d02) AM_WRITE(tank8_explosion_w)
+ AM_RANGE(0x1d03, 0x1d03) AM_WRITE(tank8_bugle_w)
+ AM_RANGE(0x1d04, 0x1d04) AM_WRITE(tank8_bug_w)
AM_RANGE(0x1d05, 0x1d05) AM_WRITEONLY AM_SHARE("team")
- AM_RANGE(0x1d06, 0x1d06) AM_DEVWRITE_LEGACY("discrete", tank8_attract_w)
- AM_RANGE(0x1e00, 0x1e07) AM_DEVWRITE_LEGACY("discrete", tank8_motor_w)
+ AM_RANGE(0x1d06, 0x1d06) AM_WRITE(tank8_attract_w)
+ AM_RANGE(0x1e00, 0x1e07) AM_WRITE(tank8_motor_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tankbust.c b/src/mame/drivers/tankbust.c
index 3f53472ce85..82f233a2e53 100644
--- a/src/mame/drivers/tankbust.c
+++ b/src/mame/drivers/tankbust.c
@@ -35,20 +35,18 @@ WRITE8_MEMBER(tankbust_state::tankbust_soundlatch_w)
machine().scheduler().synchronize(FUNC(soundlatch_callback), data);
}
-static READ8_DEVICE_HANDLER( tankbust_soundlatch_r )
+READ8_MEMBER(tankbust_state::tankbust_soundlatch_r)
{
- tankbust_state *state = device->machine().driver_data<tankbust_state>();
- return state->m_latch;
+ return m_latch;
}
//port B of ay8910#0
-static READ8_DEVICE_HANDLER( tankbust_soundtimer_r )
+READ8_MEMBER(tankbust_state::tankbust_soundtimer_r)
{
- tankbust_state *state = device->machine().driver_data<tankbust_state>();
int ret;
- state->m_timer1++;
- ret = state->m_timer1;
+ m_timer1++;
+ ret = m_timer1;
return ret;
}
@@ -308,8 +306,8 @@ static const ay8910_interface ay8910_config =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(tankbust_soundlatch_r),
- DEVCB_HANDLER(tankbust_soundtimer_r),
+ DEVCB_DRIVER_MEMBER(tankbust_state,tankbust_soundlatch_r),
+ DEVCB_DRIVER_MEMBER(tankbust_state,tankbust_soundtimer_r),
DEVCB_NULL,
DEVCB_NULL
};
diff --git a/src/mame/drivers/taxidriv.c b/src/mame/drivers/taxidriv.c
index a23c56f59d3..7bbf4cf91c6 100644
--- a/src/mame/drivers/taxidriv.c
+++ b/src/mame/drivers/taxidriv.c
@@ -17,142 +17,131 @@ OTHER: 5 * M5L8255AP
-static WRITE8_DEVICE_HANDLER( p2a_w ) { taxidriv_spritectrl_w(device,0,data); }
-static WRITE8_DEVICE_HANDLER( p2b_w ) { taxidriv_spritectrl_w(device,1,data); }
-static WRITE8_DEVICE_HANDLER( p2c_w ) { taxidriv_spritectrl_w(device,2,data); }
-static WRITE8_DEVICE_HANDLER( p3a_w ) { taxidriv_spritectrl_w(device,3,data); }
-static WRITE8_DEVICE_HANDLER( p3b_w ) { taxidriv_spritectrl_w(device,4,data); }
-static WRITE8_DEVICE_HANDLER( p3c_w ) { taxidriv_spritectrl_w(device,5,data); }
-static WRITE8_DEVICE_HANDLER( p4a_w ) { taxidriv_spritectrl_w(device,6,data); }
-static WRITE8_DEVICE_HANDLER( p4b_w ) { taxidriv_spritectrl_w(device,7,data); }
-static WRITE8_DEVICE_HANDLER( p4c_w ) { taxidriv_spritectrl_w(device,8,data); }
-
-
-static READ8_DEVICE_HANDLER( p0a_r )
+WRITE8_MEMBER(taxidriv_state::p2a_w){ taxidriv_spritectrl_w(space,0,data); }
+WRITE8_MEMBER(taxidriv_state::p2b_w){ taxidriv_spritectrl_w(space,1,data); }
+WRITE8_MEMBER(taxidriv_state::p2c_w){ taxidriv_spritectrl_w(space,2,data); }
+WRITE8_MEMBER(taxidriv_state::p3a_w){ taxidriv_spritectrl_w(space,3,data); }
+WRITE8_MEMBER(taxidriv_state::p3b_w){ taxidriv_spritectrl_w(space,4,data); }
+WRITE8_MEMBER(taxidriv_state::p3c_w){ taxidriv_spritectrl_w(space,5,data); }
+WRITE8_MEMBER(taxidriv_state::p4a_w){ taxidriv_spritectrl_w(space,6,data); }
+WRITE8_MEMBER(taxidriv_state::p4b_w){ taxidriv_spritectrl_w(space,7,data); }
+WRITE8_MEMBER(taxidriv_state::p4c_w){ taxidriv_spritectrl_w(space,8,data); }
+
+
+READ8_MEMBER(taxidriv_state::p0a_r)
{
- taxidriv_state *state = device->machine().driver_data<taxidriv_state>();
- return state->m_latchA;
+ return m_latchA;
}
-static READ8_DEVICE_HANDLER( p0c_r )
+READ8_MEMBER(taxidriv_state::p0c_r)
{
- taxidriv_state *state = device->machine().driver_data<taxidriv_state>();
- return (state->m_s1 << 7);
+ return (m_s1 << 7);
}
-static WRITE8_DEVICE_HANDLER( p0b_w )
+WRITE8_MEMBER(taxidriv_state::p0b_w)
{
- taxidriv_state *state = device->machine().driver_data<taxidriv_state>();
- state->m_latchB = data;
+ m_latchB = data;
}
-static WRITE8_DEVICE_HANDLER( p0c_w )
+WRITE8_MEMBER(taxidriv_state::p0c_w)
{
- taxidriv_state *state = device->machine().driver_data<taxidriv_state>();
- state->m_s2 = data & 1;
+ m_s2 = data & 1;
- state->m_bghide = data & 2;
+ m_bghide = data & 2;
/* bit 2 toggles during gameplay */
- state->flip_screen_set(data & 8);
+ flip_screen_set(data & 8);
// popmessage("%02x",data&0x0f);
}
-static READ8_DEVICE_HANDLER( p1b_r )
+READ8_MEMBER(taxidriv_state::p1b_r)
{
- taxidriv_state *state = device->machine().driver_data<taxidriv_state>();
- return state->m_latchB;
+ return m_latchB;
}
-static READ8_DEVICE_HANDLER( p1c_r )
+READ8_MEMBER(taxidriv_state::p1c_r)
{
- taxidriv_state *state = device->machine().driver_data<taxidriv_state>();
- return (state->m_s2 << 7) | (state->m_s4 << 6) | ((state->ioport("SERVCOIN")->read() & 1) << 4);
+ return (m_s2 << 7) | (m_s4 << 6) | ((ioport("SERVCOIN")->read() & 1) << 4);
}
-static WRITE8_DEVICE_HANDLER( p1a_w )
+WRITE8_MEMBER(taxidriv_state::p1a_w)
{
- taxidriv_state *state = device->machine().driver_data<taxidriv_state>();
- state->m_latchA = data;
+ m_latchA = data;
}
-static WRITE8_DEVICE_HANDLER( p1c_w )
+WRITE8_MEMBER(taxidriv_state::p1c_w)
{
- taxidriv_state *state = device->machine().driver_data<taxidriv_state>();
- state->m_s1 = data & 1;
- state->m_s3 = (data & 2) >> 1;
+ m_s1 = data & 1;
+ m_s3 = (data & 2) >> 1;
}
-static READ8_DEVICE_HANDLER( p8910_0a_r )
+READ8_MEMBER(taxidriv_state::p8910_0a_r)
{
- taxidriv_state *state = device->machine().driver_data<taxidriv_state>();
- return state->m_latchA;
+ return m_latchA;
}
-static READ8_DEVICE_HANDLER( p8910_1a_r )
+READ8_MEMBER(taxidriv_state::p8910_1a_r)
{
- taxidriv_state *state = device->machine().driver_data<taxidriv_state>();
- return state->m_s3;
+ return m_s3;
}
/* note that a lot of writes happen with port B set as input. I think this is a bug in the
original, since it works anyway even if the communication is flawed. */
-static WRITE8_DEVICE_HANDLER( p8910_0b_w )
+WRITE8_MEMBER(taxidriv_state::p8910_0b_w)
{
- taxidriv_state *state = device->machine().driver_data<taxidriv_state>();
- state->m_s4 = data & 1;
+ m_s4 = data & 1;
}
static I8255A_INTERFACE( ppi8255_0_intf )
{
- DEVCB_HANDLER(p0a_r), /* Port A read */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p0a_r), /* Port A read */
DEVCB_NULL, /* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(p0b_w), /* Port B write */
- DEVCB_HANDLER(p0c_r), /* Port C read */
- DEVCB_HANDLER(p0c_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p0b_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p0c_r), /* Port C read */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p0c_w) /* Port C write */
};
static I8255A_INTERFACE( ppi8255_1_intf )
{
DEVCB_NULL, /* Port A read */
- DEVCB_HANDLER(p1a_w), /* Port A write */
- DEVCB_HANDLER(p1b_r), /* Port B read */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p1a_w), /* Port A write */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p1b_r), /* Port B read */
DEVCB_NULL, /* Port B write */
- DEVCB_HANDLER(p1c_r), /* Port C read */
- DEVCB_HANDLER(p1c_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p1c_r), /* Port C read */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p1c_w) /* Port C write */
};
static I8255A_INTERFACE( ppi8255_2_intf )
{
DEVCB_NULL, /* Port A read */
- DEVCB_HANDLER(p2a_w), /* Port A write */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p2a_w), /* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(p2b_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p2b_w), /* Port B write */
DEVCB_NULL, /* Port C read */
- DEVCB_HANDLER(p2c_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p2c_w) /* Port C write */
};
static I8255A_INTERFACE( ppi8255_3_intf )
{
DEVCB_NULL, /* Port A read */
- DEVCB_HANDLER(p3a_w), /* Port A write */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p3a_w), /* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(p3b_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p3b_w), /* Port B write */
DEVCB_NULL, /* Port C read */
- DEVCB_HANDLER(p3c_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p3c_w) /* Port C write */
};
static I8255A_INTERFACE( ppi8255_4_intf )
{
DEVCB_NULL, /* Port A read */
- DEVCB_HANDLER(p4a_w), /* Port A write */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p4a_w), /* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(p4b_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p4b_w), /* Port B write */
DEVCB_NULL, /* Port C read */
- DEVCB_HANDLER(p4c_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p4c_w) /* Port C write */
};
@@ -357,17 +346,17 @@ static const ay8910_interface ay8910_interface_1 =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(p8910_0a_r),
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p8910_0a_r),
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(p8910_0b_w)
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p8910_0b_w)
};
static const ay8910_interface ay8910_interface_2 =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(p8910_1a_r),
+ DEVCB_DRIVER_MEMBER(taxidriv_state,p8910_1a_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
diff --git a/src/mame/drivers/tceptor.c b/src/mame/drivers/tceptor.c
index 93f19582949..d7eecc0bec6 100644
--- a/src/mame/drivers/tceptor.c
+++ b/src/mame/drivers/tceptor.c
@@ -90,8 +90,9 @@ WRITE8_MEMBER(tceptor_state::mcu_irq_disable_w)
}
-static WRITE8_DEVICE_HANDLER( voice_w )
+WRITE8_MEMBER(tceptor_state::voice_w)
{
+ device_t *device = machine().device("dac");
dac_signed_data_16_w(device, data ? (data + 1) * 0x100 : 0x8000);
}
@@ -191,7 +192,7 @@ ADDRESS_MAP_END
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_LEGACY("dac", voice_w) // voice data
+ AM_RANGE(0x4000, 0x4000) AM_WRITE(voice_w) // voice data
AM_RANGE(0x5000, 0x5000) AM_WRITEONLY // voice ctrl??
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tecmo.c b/src/mame/drivers/tecmo.c
index d41cc352ad6..4d5dfb8afb3 100644
--- a/src/mame/drivers/tecmo.c
+++ b/src/mame/drivers/tecmo.c
@@ -76,10 +76,10 @@ WRITE8_MEMBER(tecmo_state::tecmo_nmi_ack_w)
cputag_set_input_line(machine(), "soundcpu",INPUT_LINE_NMI,CLEAR_LINE);
}
-static WRITE8_DEVICE_HANDLER( tecmo_adpcm_start_w )
+WRITE8_MEMBER(tecmo_state::tecmo_adpcm_start_w)
{
- tecmo_state *state = device->machine().driver_data<tecmo_state>();
- state->m_adpcm_pos = data << 8;
+ device_t *device = machine().device("msm");
+ m_adpcm_pos = data << 8;
msm5205_reset_w(device, 0);
}
@@ -88,8 +88,9 @@ WRITE8_MEMBER(tecmo_state::tecmo_adpcm_end_w)
m_adpcm_end = (data + 1) << 8;
}
-static WRITE8_DEVICE_HANDLER( tecmo_adpcm_vol_w )
+WRITE8_MEMBER(tecmo_state::tecmo_adpcm_vol_w)
{
+ device_t *device = machine().device("msm");
msm5205_set_volume(device,(data & 0x0f) * 100 / 15);
}
@@ -232,9 +233,9 @@ 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_LEGACY("ymsnd", ym3812_w)
- AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r) AM_DEVWRITE_LEGACY("msm", tecmo_adpcm_start_w)
+ AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r) AM_WRITE(tecmo_adpcm_start_w)
AM_RANGE(0xd000, 0xd000) AM_WRITE(tecmo_adpcm_end_w)
- AM_RANGE(0xe000, 0xe000) AM_DEVWRITE_LEGACY("msm", tecmo_adpcm_vol_w)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(tecmo_adpcm_vol_w)
AM_RANGE(0xf000, 0xf000) AM_WRITE(tecmo_nmi_ack_w)
ADDRESS_MAP_END
@@ -244,9 +245,9 @@ static ADDRESS_MAP_START( tecmo_sound_map, AS_PROGRAM, 8, tecmo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa001) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
- AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r) AM_DEVWRITE_LEGACY("msm", tecmo_adpcm_start_w)
+ AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r) AM_WRITE(tecmo_adpcm_start_w)
AM_RANGE(0xc400, 0xc400) AM_WRITE(tecmo_adpcm_end_w)
- AM_RANGE(0xc800, 0xc800) AM_DEVWRITE_LEGACY("msm", tecmo_adpcm_vol_w)
+ AM_RANGE(0xc800, 0xc800) AM_WRITE(tecmo_adpcm_vol_w)
AM_RANGE(0xcc00, 0xcc00) AM_WRITE(tecmo_nmi_ack_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c
index f676645bf7e..89fef73df3c 100644
--- a/src/mame/drivers/tecmosys.c
+++ b/src/mame/drivers/tecmosys.c
@@ -267,14 +267,16 @@ READ16_MEMBER(tecmosys_state::unk880000_r)
}
}
-static READ16_DEVICE_HANDLER( eeprom_r )
+READ16_MEMBER(tecmosys_state::eeprom_r)
{
+ device_t *device = machine().device("eeprom");
eeprom_device *eeprom = downcast<eeprom_device *>(device);
return ((eeprom->read_bit() & 0x01) << 11);
}
-static WRITE16_DEVICE_HANDLER( eeprom_w )
+WRITE16_MEMBER(tecmosys_state::eeprom_w)
{
+ device_t *device = machine().device("eeprom");
if ( ACCESSING_BITS_8_15 )
{
eeprom_device *eeprom = downcast<eeprom_device *>(device);
@@ -308,7 +310,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tecmosys_state )
AM_RANGE(0x980000, 0x980fff) AM_RAM_WRITE(tilemap_paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("tmap_palette")
AM_RANGE(0x880000, 0x88002f) AM_WRITE(unk880000_w ) AM_SHARE("880000regs") // 10 byte dta@88000c, 880022=watchdog?
- AM_RANGE(0xa00000, 0xa00001) AM_DEVWRITE_LEGACY("eeprom", eeprom_w )
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITE(eeprom_w )
AM_RANGE(0xa80000, 0xa80005) AM_WRITEONLY AM_SHARE("a80000regs") // a80000-3 scroll? a80004 inverted ? 3 : 0
AM_RANGE(0xb00000, 0xb00005) AM_WRITEONLY AM_SHARE("b00000regs") // b00000-3 scrool?, b00004 inverted ? 3 : 0
AM_RANGE(0xb80000, 0xb80001) AM_READWRITE(tecmosys_prot_status_r, tecmosys_prot_status_w)
@@ -316,7 +318,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tecmosys_state )
AM_RANGE(0xc80000, 0xc80005) AM_WRITEONLY AM_SHARE("c80000regs") // c80000-3 scrool? c80004 inverted ? 3 : 0
AM_RANGE(0xd00000, 0xd00001) AM_READ_PORT("P1")
AM_RANGE(0xd00002, 0xd00003) AM_READ_PORT("P2")
- AM_RANGE(0xd80000, 0xd80001) AM_DEVREAD_LEGACY("eeprom", eeprom_r)
+ AM_RANGE(0xd80000, 0xd80001) AM_READ(eeprom_r)
AM_RANGE(0xe00000, 0xe00001) AM_WRITE(sound_w )
AM_RANGE(0xe80000, 0xe80001) AM_WRITE(tecmosys_prot_data_w)
AM_RANGE(0xf00000, 0xf00001) AM_READ(sound_r)
diff --git a/src/mame/drivers/tehkanwc.c b/src/mame/drivers/tehkanwc.c
index 532badd933a..f28da5b83b7 100644
--- a/src/mame/drivers/tehkanwc.c
+++ b/src/mame/drivers/tehkanwc.c
@@ -162,32 +162,29 @@ WRITE8_MEMBER(tehkanwc_state::sound_answer_w)
/* Emulate MSM sound samples with counters */
-static READ8_DEVICE_HANDLER( tehkanwc_portA_r )
+READ8_MEMBER(tehkanwc_state::tehkanwc_portA_r)
{
- tehkanwc_state *state = device->machine().driver_data<tehkanwc_state>();
- return state->m_msm_data_offs & 0xff;
+ return m_msm_data_offs & 0xff;
}
-static READ8_DEVICE_HANDLER( tehkanwc_portB_r )
+READ8_MEMBER(tehkanwc_state::tehkanwc_portB_r)
{
- tehkanwc_state *state = device->machine().driver_data<tehkanwc_state>();
- return (state->m_msm_data_offs >> 8) & 0xff;
+ return (m_msm_data_offs >> 8) & 0xff;
}
-static WRITE8_DEVICE_HANDLER( tehkanwc_portA_w )
+WRITE8_MEMBER(tehkanwc_state::tehkanwc_portA_w)
{
- tehkanwc_state *state = device->machine().driver_data<tehkanwc_state>();
- state->m_msm_data_offs = (state->m_msm_data_offs & 0xff00) | data;
+ m_msm_data_offs = (m_msm_data_offs & 0xff00) | data;
}
-static WRITE8_DEVICE_HANDLER( tehkanwc_portB_w )
+WRITE8_MEMBER(tehkanwc_state::tehkanwc_portB_w)
{
- tehkanwc_state *state = device->machine().driver_data<tehkanwc_state>();
- state->m_msm_data_offs = (state->m_msm_data_offs & 0x00ff) | (data << 8);
+ m_msm_data_offs = (m_msm_data_offs & 0x00ff) | (data << 8);
}
-static WRITE8_DEVICE_HANDLER( msm_reset_w )
+WRITE8_MEMBER(tehkanwc_state::msm_reset_w)
{
+ device_t *device = machine().device("msm");
msm5205_reset_w(device,data ? 0 : 1);
}
@@ -257,7 +254,7 @@ ADDRESS_MAP_END
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_LEGACY("msm", msm_reset_w)/* MSM51xx reset */
+ AM_RANGE(0x8001, 0x8001) AM_WRITE(msm_reset_w)/* MSM51xx reset */
AM_RANGE(0x8002, 0x8002) AM_WRITENOP /* ?? written in the IRQ handler */
AM_RANGE(0x8003, 0x8003) AM_WRITENOP /* ?? written in the NMI handler */
AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r) AM_WRITE(sound_answer_w)
@@ -620,16 +617,16 @@ static const ay8910_interface ay8910_interface_1 =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(tehkanwc_portA_w),
- DEVCB_HANDLER(tehkanwc_portB_w)
+ DEVCB_DRIVER_MEMBER(tehkanwc_state,tehkanwc_portA_w),
+ DEVCB_DRIVER_MEMBER(tehkanwc_state,tehkanwc_portB_w)
};
static const ay8910_interface ay8910_interface_2 =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(tehkanwc_portA_r),
- DEVCB_HANDLER(tehkanwc_portB_r),
+ DEVCB_DRIVER_MEMBER(tehkanwc_state,tehkanwc_portA_r),
+ DEVCB_DRIVER_MEMBER(tehkanwc_state,tehkanwc_portB_r),
DEVCB_NULL,
DEVCB_NULL
};
diff --git a/src/mame/drivers/thief.c b/src/mame/drivers/thief.c
index 1e6f5020ffb..f808422a5e3 100644
--- a/src/mame/drivers/thief.c
+++ b/src/mame/drivers/thief.c
@@ -98,8 +98,9 @@ WRITE8_MEMBER(thief_state::thief_input_select_w)
m_input_select = data;
}
-static WRITE8_DEVICE_HANDLER( tape_control_w )
+WRITE8_MEMBER(thief_state::tape_control_w)
{
+ device_t *device = machine().device("samples");
switch( data )
{
case 0x02: /* coin meter on */
@@ -174,7 +175,7 @@ static ADDRESS_MAP_START( io_map, AS_IO, 8, thief_state )
AM_RANGE(0x10, 0x10) AM_WRITE(thief_video_control_w)
AM_RANGE(0x30, 0x30) AM_WRITE(thief_input_select_w) /* 8255 */
AM_RANGE(0x31, 0x31) AM_READ(thief_io_r) /* 8255 */
- AM_RANGE(0x33, 0x33) AM_DEVWRITE_LEGACY("samples", tape_control_w)
+ AM_RANGE(0x33, 0x33) AM_WRITE(tape_control_w)
AM_RANGE(0x40, 0x41) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
AM_RANGE(0x41, 0x41) AM_DEVREAD_LEGACY("ay1", ay8910_r)
AM_RANGE(0x42, 0x43) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
diff --git a/src/mame/drivers/thunderx.c b/src/mame/drivers/thunderx.c
index 6e256acdf48..65df8e90917 100644
--- a/src/mame/drivers/thunderx.c
+++ b/src/mame/drivers/thunderx.c
@@ -356,8 +356,9 @@ WRITE8_MEMBER(thunderx_state::thunderx_sh_irqtrigger_w)
device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
}
-static WRITE8_DEVICE_HANDLER( scontra_snd_bankswitch_w )
+WRITE8_MEMBER(thunderx_state::scontra_snd_bankswitch_w)
{
+ device_t *device = machine().device("k007232");
/* b3-b2: bank for chanel B */
/* b1-b0: bank for chanel A */
@@ -441,7 +442,7 @@ static ADDRESS_MAP_START( scontra_sound_map, AS_PROGRAM, 8, thunderx_state )
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) /* 007232 registers */
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w) /* YM2151 */
- AM_RANGE(0xf000, 0xf000) AM_DEVWRITE_LEGACY("k007232", scontra_snd_bankswitch_w) /* 007232 bank select */
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(scontra_snd_bankswitch_w) /* 007232 bank select */
ADDRESS_MAP_END
static ADDRESS_MAP_START( thunderx_sound_map, AS_PROGRAM, 8, thunderx_state )
diff --git a/src/mame/drivers/tigeroad.c b/src/mame/drivers/tigeroad.c
index 2dbd860cef2..1c70309b150 100644
--- a/src/mame/drivers/tigeroad.c
+++ b/src/mame/drivers/tigeroad.c
@@ -155,8 +155,9 @@ WRITE16_MEMBER(tigeroad_state::tigeroad_soundcmd_w)
soundlatch_byte_w(space,offset,data >> 8);
}
-static WRITE8_DEVICE_HANDLER( msm5205_w )
+WRITE8_MEMBER(tigeroad_state::msm5205_w)
{
+ device_t *device = machine().device("msm");
msm5205_reset_w(device,(data>>7)&1);
msm5205_data_w(device,data);
msm5205_vclk_w(device,1);
@@ -202,7 +203,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sample_port_map, AS_IO, 8, tigeroad_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch2_byte_r)
- AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("msm", msm5205_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(msm5205_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/timeplt.c b/src/mame/drivers/timeplt.c
index c6bfd5e2732..bf70190ce2e 100644
--- a/src/mame/drivers/timeplt.c
+++ b/src/mame/drivers/timeplt.c
@@ -94,19 +94,18 @@ READ8_MEMBER(timeplt_state::psurge_protection_r)
}
// chkun has access to an extra soundchip via ay2 port a
-static WRITE8_DEVICE_HANDLER(chkun_sound_w)
+WRITE8_MEMBER(timeplt_state::chkun_sound_w)
{
- timeplt_state *state = device->machine().driver_data<timeplt_state>();
// d0-d3: P0-P3
// d5: /R (unused?)
// d6: /W
if (~data & 0x40)
- state->m_tc8830f->write_p(data & 0xf);
+ m_tc8830f->write_p(data & 0xf);
// d4 (or d7?): /ACL
if (~data & 0x10)
- state->m_tc8830f->reset();
+ m_tc8830f->reset();
}
static const ay8910_interface chkun_ay2_interface =
@@ -115,7 +114,7 @@ static const ay8910_interface chkun_ay2_interface =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(chkun_sound_w),
+ DEVCB_DRIVER_MEMBER(timeplt_state,chkun_sound_w),
DEVCB_NULL
};
diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c
index 695c6573c8d..e8e250392cf 100644
--- a/src/mame/drivers/tmnt.c
+++ b/src/mame/drivers/tmnt.c
@@ -196,20 +196,21 @@ WRITE16_MEMBER(tmnt_state::tmnt_sound_command_w)
soundlatch_byte_w(space, 0, data & 0xff);
}
-static READ8_DEVICE_HANDLER( punkshot_sound_r )
+READ8_MEMBER(tmnt_state::punkshot_sound_r)
{
+ device_t *device = machine().device("k053260");
/* If the sound CPU is running, read the status, otherwise
just make it pass the test */
return k053260_r(device, 2 + offset);
}
-static WRITE8_DEVICE_HANDLER( glfgreat_sound_w )
+WRITE8_MEMBER(tmnt_state::glfgreat_sound_w)
{
- tmnt_state *state = device->machine().driver_data<tmnt_state>();
+ device_t *device = machine().device("k053260");
k053260_w(device, offset, data);
if (offset)
- device_set_input_line_and_vector(state->m_audiocpu, 0, HOLD_LINE, 0xff);
+ device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
}
READ16_MEMBER(tmnt_state::prmrsocr_sound_r)
@@ -262,13 +263,15 @@ WRITE8_MEMBER(tmnt_state::tmnt_sres_w)
m_tmnt_soundlatch = data;
}
-static WRITE8_DEVICE_HANDLER( tmnt_upd_start_w )
+WRITE8_MEMBER(tmnt_state::tmnt_upd_start_w)
{
+ device_t *device = machine().device("upd");
upd7759_start_w(device, data & 1);
}
-static READ8_DEVICE_HANDLER( tmnt_upd_busy_r )
+READ8_MEMBER(tmnt_state::tmnt_upd_busy_r)
{
+ device_t *device = machine().device("upd");
return upd7759_busy_r(device) ? 1 : 0;
}
@@ -627,7 +630,7 @@ static ADDRESS_MAP_START( punkshot_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x0a0004, 0x0a0005) AM_READ_PORT("P3/P4")
AM_RANGE(0x0a0006, 0x0a0007) AM_READ_PORT("P1/P2")
AM_RANGE(0x0a0020, 0x0a0021) AM_WRITE(punkshot_0a0020_w)
- AM_RANGE(0x0a0040, 0x0a0043) AM_DEVREAD8_LEGACY("k053260", punkshot_sound_r, 0x00ff) /* K053260 */
+ AM_RANGE(0x0a0040, 0x0a0043) AM_READ8(punkshot_sound_r, 0x00ff) /* K053260 */
AM_RANGE(0x0a0040, 0x0a0041) AM_DEVWRITE8_LEGACY("k053260", k053260_w, 0x00ff)
AM_RANGE(0x0a0060, 0x0a007f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
AM_RANGE(0x0a0080, 0x0a0081) AM_WRITE(watchdog_reset16_w)
@@ -649,7 +652,7 @@ static ADDRESS_MAP_START( lgtnfght_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x0a0008, 0x0a0009) AM_READ_PORT("DSW2")
AM_RANGE(0x0a0010, 0x0a0011) AM_READ_PORT("DSW3")
AM_RANGE(0x0a0018, 0x0a0019) AM_WRITE(lgtnfght_0a0018_w)
- AM_RANGE(0x0a0020, 0x0a0023) AM_DEVREAD8_LEGACY("k053260", punkshot_sound_r, 0x00ff) /* K053260 */
+ AM_RANGE(0x0a0020, 0x0a0023) AM_READ8(punkshot_sound_r, 0x00ff) /* K053260 */
AM_RANGE(0x0a0020, 0x0a0021) AM_DEVWRITE8_LEGACY("k053260", k053260_w, 0x00ff)
AM_RANGE(0x0a0028, 0x0a0029) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0x0b0000, 0x0b3fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram")
@@ -681,7 +684,7 @@ static ADDRESS_MAP_START( blswhstl_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x700200, 0x700201) AM_WRITE(blswhstl_eeprom_w)
AM_RANGE(0x700300, 0x700301) AM_WRITE(blswhstl_700300_w)
AM_RANGE(0x700400, 0x700401) AM_WRITE(watchdog_reset16_w)
- AM_RANGE(0x780600, 0x780603) AM_DEVREAD8_LEGACY("k053260", punkshot_sound_r, 0x00ff) /* K053260 */
+ AM_RANGE(0x780600, 0x780603) AM_READ8(punkshot_sound_r, 0x00ff) /* K053260 */
AM_RANGE(0x780600, 0x780601) AM_DEVWRITE8_LEGACY("k053260", k053260_w, 0x00ff)
AM_RANGE(0x780604, 0x780605) AM_WRITE(ssriders_soundkludge_w)
AM_RANGE(0x780700, 0x78071f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
@@ -727,7 +730,7 @@ static ADDRESS_MAP_START( glfgreat_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x121000, 0x121001) AM_READ(glfgreat_ball_r) /* returns the color of the center pixel of the roz layer */
AM_RANGE(0x122000, 0x122001) AM_WRITE(glfgreat_122000_w)
AM_RANGE(0x124000, 0x124001) AM_WRITE(watchdog_reset16_w)
- AM_RANGE(0x125000, 0x125003) AM_DEVREADWRITE8_LEGACY("k053260", punkshot_sound_r, glfgreat_sound_w, 0xff00) /* K053260 */
+ AM_RANGE(0x125000, 0x125003) AM_READWRITE8(punkshot_sound_r, glfgreat_sound_w, 0xff00) /* K053260 */
AM_RANGE(0x200000, 0x207fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w)
AM_RANGE(0x300000, 0x3fffff) AM_READ(glfgreat_rom_r)
ADDRESS_MAP_END
@@ -1014,7 +1017,7 @@ static ADDRESS_MAP_START( tmnt2_main_map, AS_PROGRAM, 16, tmnt_state )
// AM_RANGE(0x1c0800, 0x1c0801) AM_READ(ssriders_protection_r) /* protection device */
AM_RANGE(0x1c0800, 0x1c081f) AM_WRITE(tmnt2_1c0800_w) AM_SHARE("tmnt2_1c0800") /* protection device */
AM_RANGE(0x5a0000, 0x5a001f) AM_READWRITE(k053244_word_noA1_r, k053244_word_noA1_w)
- AM_RANGE(0x5c0600, 0x5c0603) AM_DEVREAD8_LEGACY("k053260", punkshot_sound_r, 0x00ff) /* K053260 */
+ AM_RANGE(0x5c0600, 0x5c0603) AM_READ8(punkshot_sound_r, 0x00ff) /* K053260 */
AM_RANGE(0x5c0600, 0x5c0601) AM_DEVWRITE8_LEGACY("k053260", k053260_w, 0x00ff)
AM_RANGE(0x5c0604, 0x5c0605) AM_WRITE(ssriders_soundkludge_w)
AM_RANGE(0x5c0700, 0x5c071f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
@@ -1040,7 +1043,7 @@ static ADDRESS_MAP_START( ssriders_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x1c0800, 0x1c0801) AM_READ(ssriders_protection_r)
AM_RANGE(0x1c0800, 0x1c0803) AM_WRITE(ssriders_protection_w)
AM_RANGE(0x5a0000, 0x5a001f) AM_READWRITE(k053244_word_noA1_r, k053244_word_noA1_w)
- AM_RANGE(0x5c0600, 0x5c0603) AM_DEVREAD8_LEGACY("k053260", punkshot_sound_r, 0x00ff) /* K053260 */
+ AM_RANGE(0x5c0600, 0x5c0603) AM_READ8(punkshot_sound_r, 0x00ff) /* K053260 */
AM_RANGE(0x5c0600, 0x5c0601) AM_DEVWRITE8_LEGACY("k053260", k053260_w, 0x00ff)
AM_RANGE(0x5c0604, 0x5c0605) AM_WRITE(ssriders_soundkludge_w)
AM_RANGE(0x5c0700, 0x5c071f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
@@ -1079,7 +1082,7 @@ static ADDRESS_MAP_START( thndrx2_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */
AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
AM_RANGE(0x300000, 0x30001f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
- AM_RANGE(0x400000, 0x400003) AM_DEVREAD8_LEGACY("k053260", punkshot_sound_r, 0x00ff) /* K053260 */
+ AM_RANGE(0x400000, 0x400003) AM_READ8(punkshot_sound_r, 0x00ff) /* K053260 */
AM_RANGE(0x400000, 0x400001) AM_DEVWRITE8_LEGACY("k053260", k053260_w, 0x00ff)
AM_RANGE(0x500000, 0x50003f) AM_DEVREADWRITE_LEGACY("k054000", k054000_lsb_r, k054000_lsb_w)
AM_RANGE(0x500100, 0x500101) AM_WRITE(thndrx2_eeprom_w)
@@ -1110,8 +1113,8 @@ static ADDRESS_MAP_START( tmnt_audio_map, AS_PROGRAM, 8, tmnt_state )
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w)
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xd000, 0xd000) AM_DEVWRITE_LEGACY("upd", upd7759_port_w)
- AM_RANGE(0xe000, 0xe000) AM_DEVWRITE_LEGACY("upd", tmnt_upd_start_w)
- AM_RANGE(0xf000, 0xf000) AM_DEVREAD_LEGACY("upd", tmnt_upd_busy_r)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(tmnt_upd_start_w)
+ AM_RANGE(0xf000, 0xf000) AM_READ(tmnt_upd_busy_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c
index 17f994ea5d1..902c237ed70 100644
--- a/src/mame/drivers/tnzs.c
+++ b/src/mame/drivers/tnzs.c
@@ -675,15 +675,14 @@ static SAMPLES_START( kageki_init_samples )
}
-static READ8_DEVICE_HANDLER( kageki_csport_r )
+READ8_MEMBER(tnzs_state::kageki_csport_r)
{
- tnzs_state *state = device->machine().driver_data<tnzs_state>();
int dsw, dsw1, dsw2;
- dsw1 = state->ioport("DSWA")->read();
- dsw2 = state->ioport("DSWB")->read();
+ dsw1 = ioport("DSWA")->read();
+ dsw2 = ioport("DSWB")->read();
- switch (state->m_kageki_csport_sel)
+ switch (m_kageki_csport_sel)
{
case 0x00: // DSW2 5,1 / DSW1 5,1
dsw = (((dsw2 & 0x10) >> 1) | ((dsw2 & 0x01) << 2) | ((dsw1 & 0x10) >> 3) | ((dsw1 & 0x01) >> 0));
@@ -699,21 +698,21 @@ static READ8_DEVICE_HANDLER( kageki_csport_r )
break;
default:
dsw = 0x00;
- // logerror("kageki_csport_sel error !! (0x%08X)\n", state->m_kageki_csport_sel);
+ // logerror("kageki_csport_sel error !! (0x%08X)\n", m_kageki_csport_sel);
}
return (dsw & 0xff);
}
-static WRITE8_DEVICE_HANDLER( kageki_csport_w )
+WRITE8_MEMBER(tnzs_state::kageki_csport_w)
{
- tnzs_state *state = device->machine().driver_data<tnzs_state>();
+ device_t *device = machine().device("samples");
char mess[80];
if (data > 0x3f)
{
// read dipsw port
- state->m_kageki_csport_sel = (data & 0x03);
+ m_kageki_csport_sel = (data & 0x03);
}
else
{
@@ -727,22 +726,23 @@ static WRITE8_DEVICE_HANDLER( kageki_csport_w )
else
{
// play samples
- samples->start_raw(0, state->m_sampledata[data], state->m_samplesize[data], 7000);
+ samples->start_raw(0, m_sampledata[data], m_samplesize[data], 7000);
sprintf(mess, "VOICE:%02X PLAY", data);
}
// popmessage(mess);
}
}
-static WRITE8_DEVICE_HANDLER( kabukiz_sound_bank_w )
+WRITE8_MEMBER(tnzs_state::kabukiz_sound_bank_w)
{
// to avoid the write when the sound chip is initialized
if (data != 0xff)
- device->machine().root_device().membank("bank3")->set_entry(data & 0x07);
+ machine().root_device().membank("bank3")->set_entry(data & 0x07);
}
-static WRITE8_DEVICE_HANDLER( kabukiz_sample_w )
+WRITE8_MEMBER(tnzs_state::kabukiz_sample_w)
{
+ device_t *device = machine().device("dac");
// to avoid the write when the sound chip is initialized
if (data != 0xff)
dac_data_w(device, data);
@@ -1577,10 +1577,10 @@ static const ym2203_interface kageki_ym2203_interface =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- DEVCB_HANDLER(kageki_csport_r),
+ DEVCB_DRIVER_MEMBER(tnzs_state,kageki_csport_r),
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_DEVICE_HANDLER("samples", kageki_csport_w)
+ DEVCB_DRIVER_MEMBER(tnzs_state,kageki_csport_w)
},
};
@@ -1601,8 +1601,8 @@ static const ym2203_interface kabukiz_ym2203_interface =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(kabukiz_sound_bank_w),
- DEVCB_DEVICE_HANDLER("dac", kabukiz_sample_w)
+ DEVCB_DRIVER_MEMBER(tnzs_state,kabukiz_sound_bank_w),
+ DEVCB_DRIVER_MEMBER(tnzs_state,kabukiz_sample_w)
},
irqhandler
};
diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c
index 18614f8e155..b5382d863a4 100644
--- a/src/mame/drivers/toaplan2.c
+++ b/src/mame/drivers/toaplan2.c
@@ -767,14 +767,23 @@ WRITE16_MEMBER(toaplan2_state::fixeight_subcpu_ctrl_w)
}
-static WRITE16_DEVICE_HANDLER( oki_bankswitch_w )
+WRITE16_MEMBER(toaplan2_state::oki_bankswitch_w)
{
+ device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
{
downcast<okim6295_device *>(device)->set_bank_base((data & 1) * 0x40000);
}
}
+WRITE16_MEMBER(toaplan2_state::oki1_bankswitch_w)
+{
+ device_t *device = machine().device("oki1");
+ if (ACCESSING_BITS_0_7)
+ {
+ downcast<okim6295_device *>(device)->set_bank_base((data & 1) * 0x40000);
+ }
+}
WRITE16_MEMBER(toaplan2_state::fixeightbl_oki_bankswitch_w)
{
@@ -1102,7 +1111,7 @@ static ADDRESS_MAP_START( kbash2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x200018, 0x200019) AM_READ_PORT("SYS")
AM_RANGE(0x200020, 0x200021) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x200024, 0x200025) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x200028, 0x200029) AM_DEVWRITE_LEGACY("oki1", oki_bankswitch_w)
+ AM_RANGE(0x200028, 0x200029) AM_WRITE(oki1_bankswitch_w)
AM_RANGE(0x20002c, 0x20002d) AM_READ(video_count_r)
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
@@ -1257,7 +1266,7 @@ static ADDRESS_MAP_START( snowbro2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x700014, 0x700015) AM_READ_PORT("IN3")
AM_RANGE(0x700018, 0x700019) AM_READ_PORT("IN4")
AM_RANGE(0x70001c, 0x70001d) AM_READ_PORT("SYS")
- AM_RANGE(0x700030, 0x700031) AM_DEVWRITE_LEGACY("oki", oki_bankswitch_w)
+ AM_RANGE(0x700030, 0x700031) AM_WRITE(oki_bankswitch_w)
AM_RANGE(0x700034, 0x700035) AM_WRITE(toaplan2_coin_word_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/toki.c b/src/mame/drivers/toki.c
index 7c6f51d9e51..42e7069d032 100644
--- a/src/mame/drivers/toki.c
+++ b/src/mame/drivers/toki.c
@@ -68,15 +68,16 @@ static void toki_adpcm_int (device_t *device)
cputag_set_input_line(device->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_DEVICE_HANDLER( toki_adpcm_control_w )
+WRITE8_MEMBER(toki_state::toki_adpcm_control_w)
{
+ device_t *device = machine().device("msm");
int bankaddress;
- UINT8 *RAM = device->machine().root_device().memregion("audiocpu")->base();
+ UINT8 *RAM = machine().root_device().memregion("audiocpu")->base();
/* the code writes either 2 or 3 in the bottom two bits */
bankaddress = 0x10000 + (data & 0x01) * 0x4000;
- device->machine().root_device().membank("bank1")->set_base(&RAM[bankaddress]);
+ machine().root_device().membank("bank1")->set_base(&RAM[bankaddress]);
msm5205_reset_w(device,data & 0x08);
}
@@ -132,7 +133,7 @@ ADDRESS_MAP_END
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_LEGACY("msm", toki_adpcm_control_w) /* MSM5205 + ROM bank */
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(toki_adpcm_control_w) /* MSM5205 + ROM bank */
AM_RANGE(0xe400, 0xe400) AM_WRITE(toki_adpcm_data_w)
AM_RANGE(0xec00, 0xec01) AM_MIRROR(0x0008) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0xf000, 0xf7ff) AM_RAM
diff --git a/src/mame/drivers/topspeed.c b/src/mame/drivers/topspeed.c
index 81e2b3ad307..a612c1fb022 100644
--- a/src/mame/drivers/topspeed.c
+++ b/src/mame/drivers/topspeed.c
@@ -395,11 +395,10 @@ static void reset_sound_region( running_machine &machine )
state->membank("bank10")->set_entry(state->m_banknum);
}
-static WRITE8_DEVICE_HANDLER( sound_bankswitch_w ) /* assumes Z80 sandwiched between 68Ks */
+WRITE8_MEMBER(topspeed_state::sound_bankswitch_w)/* assumes Z80 sandwiched between 68Ks */
{
- topspeed_state *state = device->machine().driver_data<topspeed_state>();
- state->m_banknum = data & 7;
- reset_sound_region(device->machine());
+ m_banknum = data & 7;
+ reset_sound_region(machine());
}
static void topspeed_msm5205_vck( device_t *device )
@@ -418,18 +417,18 @@ static void topspeed_msm5205_vck( device_t *device )
}
}
-static WRITE8_DEVICE_HANDLER( topspeed_msm5205_address_w )
+WRITE8_MEMBER(topspeed_state::topspeed_msm5205_address_w)
{
- topspeed_state *state = device->machine().driver_data<topspeed_state>();
- state->m_adpcm_pos = (state->m_adpcm_pos & 0x00ff) | (data << 8);
+ device_t *device = machine().device("msm");
+ m_adpcm_pos = (m_adpcm_pos & 0x00ff) | (data << 8);
msm5205_reset_w(device, 0);
}
-static WRITE8_DEVICE_HANDLER( topspeed_msm5205_stop_w )
+WRITE8_MEMBER(topspeed_state::topspeed_msm5205_stop_w)
{
- topspeed_state *state = device->machine().driver_data<topspeed_state>();
+ device_t *device = machine().device("msm");
msm5205_reset_w(device, 1);
- state->m_adpcm_pos &= 0xff00;
+ m_adpcm_pos &= 0xff00;
}
@@ -477,9 +476,9 @@ static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8, topspeed_state )
AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xa000, 0xa000) AM_DEVWRITE_LEGACY("tc0140syt", tc0140syt_slave_port_w)
AM_RANGE(0xa001, 0xa001) AM_DEVREADWRITE_LEGACY("tc0140syt", tc0140syt_slave_comm_r, tc0140syt_slave_comm_w)
- AM_RANGE(0xb000, 0xb000) AM_DEVWRITE_LEGACY("msm", topspeed_msm5205_address_w)
+ AM_RANGE(0xb000, 0xb000) AM_WRITE(topspeed_msm5205_address_w)
// AM_RANGE(0xb400, 0xb400) // msm5205 start? doesn't seem to work right
- AM_RANGE(0xb800, 0xb800) AM_DEVWRITE_LEGACY("msm", topspeed_msm5205_stop_w)
+ AM_RANGE(0xb800, 0xb800) AM_WRITE(topspeed_msm5205_stop_w)
// AM_RANGE(0xc000, 0xc000) // ??
// AM_RANGE(0xc400, 0xc400) // ??
// AM_RANGE(0xc800, 0xc800) // ??
@@ -622,7 +621,7 @@ static void irq_handler( device_t *device, int irq ) /* assumes Z80 sandwiched b
static const ym2151_interface ym2151_config =
{
DEVCB_LINE(irq_handler),
- DEVCB_HANDLER(sound_bankswitch_w)
+ DEVCB_DRIVER_MEMBER(topspeed_state,sound_bankswitch_w)
};
static const msm5205_interface msm5205_config =
diff --git a/src/mame/drivers/toypop.c b/src/mame/drivers/toypop.c
index 9c6209444f2..4846f29cb48 100644
--- a/src/mame/drivers/toypop.c
+++ b/src/mame/drivers/toypop.c
@@ -493,33 +493,32 @@ static const namco_interface namco_config =
***************************************************************************/
-static READ8_DEVICE_HANDLER( dipA_l ) { return device->machine().root_device().ioport("DSW1")->read(); } // dips A
-static READ8_DEVICE_HANDLER( dipA_h ) { return device->machine().root_device().ioport("DSW1")->read() >> 4; } // dips A
-static READ8_DEVICE_HANDLER( dipB_l ) { return device->machine().root_device().ioport("DSW2")->read(); } // dips B
-static READ8_DEVICE_HANDLER( dipB_h ) { return device->machine().root_device().ioport("DSW2")->read() >> 4; } // dips B
+READ8_MEMBER(toypop_state::dipA_l){ return machine().root_device().ioport("DSW1")->read(); } // dips A
+READ8_MEMBER(toypop_state::dipA_h){ return machine().root_device().ioport("DSW1")->read() >> 4; } // dips A
+READ8_MEMBER(toypop_state::dipB_l){ return machine().root_device().ioport("DSW2")->read(); } // dips B
+READ8_MEMBER(toypop_state::dipB_h){ return machine().root_device().ioport("DSW2")->read() >> 4; } // dips B
-static WRITE8_DEVICE_HANDLER( out_coin0 )
+WRITE8_MEMBER(toypop_state::out_coin0)
{
- coin_lockout_global_w(device->machine(), data & 4);
- coin_counter_w(device->machine(), 0, ~data & 8);
+ coin_lockout_global_w(machine(), data & 4);
+ coin_counter_w(machine(), 0, ~data & 8);
}
-static WRITE8_DEVICE_HANDLER( out_coin1 )
+WRITE8_MEMBER(toypop_state::out_coin1)
{
- coin_counter_w(device->machine(), 1, ~data & 1);
+ coin_counter_w(machine(), 1, ~data & 1);
}
-static WRITE8_DEVICE_HANDLER( flip )
+WRITE8_MEMBER(toypop_state::flip)
{
- toypop_state *state = device->machine().driver_data<toypop_state>();
- state->flip_screen_set(data & 1);
+ flip_screen_set(data & 1);
}
/* chip #0: player inputs, buttons, coins */
static const namcoio_interface intf0_coin =
{
{ DEVCB_INPUT_PORT("COINS"), DEVCB_INPUT_PORT("P1_RIGHT"), DEVCB_INPUT_PORT("P2_RIGHT"), DEVCB_INPUT_PORT("BUTTONS") }, /* port read handlers */
- { DEVCB_HANDLER(out_coin0), DEVCB_HANDLER(out_coin1) }, /* port write handlers */
+ { DEVCB_DRIVER_MEMBER(toypop_state,out_coin0), DEVCB_DRIVER_MEMBER(toypop_state,out_coin1) }, /* port write handlers */
NULL /* device */
};
static const namcoio_interface intf0 =
@@ -532,8 +531,8 @@ static const namcoio_interface intf0 =
/* chip #1: dip switches */
static const namcoio_interface intf1 =
{
- { DEVCB_HANDLER(dipA_h), DEVCB_HANDLER(dipB_l), DEVCB_HANDLER(dipB_h), DEVCB_HANDLER(dipA_l) }, /* port read handlers */
- { DEVCB_HANDLER(flip), DEVCB_NULL }, /* port write handlers */
+ { DEVCB_DRIVER_MEMBER(toypop_state,dipA_h), DEVCB_DRIVER_MEMBER(toypop_state,dipB_l), DEVCB_DRIVER_MEMBER(toypop_state,dipB_h), DEVCB_DRIVER_MEMBER(toypop_state,dipA_l) }, /* port read handlers */
+ { DEVCB_DRIVER_MEMBER(toypop_state,flip), DEVCB_NULL }, /* port write handlers */
NULL /* device */
};
diff --git a/src/mame/drivers/trackfld.c b/src/mame/drivers/trackfld.c
index f4d6c1fb0f8..068317b6802 100644
--- a/src/mame/drivers/trackfld.c
+++ b/src/mame/drivers/trackfld.c
@@ -191,7 +191,6 @@ MAIN BOARD:
#include "includes/trackfld.h"
#include "includes/konamipt.h"
#include "machine/nvram.h"
-#include "includes/yiear.h"
#define MASTER_CLOCK XTAL_18_432MHz
#define SOUND_CLOCK XTAL_14_31818MHz
@@ -257,11 +256,28 @@ WRITE8_MEMBER(trackfld_state::yieartf_nmi_mask_w)
m_yieartf_nmi_mask = data & 1;
}
+READ8_MEMBER(trackfld_state::trackfld_speech_r)
+{
+ device_t *device = machine().device("vlm");
+ if (vlm5030_bsy(device))
+ return 1;
+ else
+ return 0;
+}
+
+WRITE8_MEMBER(trackfld_state::trackfld_VLM5030_control_w)
+{
+ device_t *device = machine().device("vlm");
+ /* bit 0 is latch direction */
+ vlm5030_st(device, (data >> 1) & 1);
+ vlm5030_rst(device, (data >> 2) & 1);
+}
+
static ADDRESS_MAP_START( yieartf_map, AS_PROGRAM, 8, trackfld_state )
- AM_RANGE(0x0000, 0x0000) AM_DEVREAD_LEGACY("vlm", yiear_speech_r) AM_WRITE_LEGACY(konami_SN76496_latch_w)
+ AM_RANGE(0x0000, 0x0000) AM_READ(trackfld_speech_r) AM_WRITE_LEGACY(konami_SN76496_latch_w)
AM_RANGE(0x0001, 0x0001) AM_DEVWRITE_LEGACY("snsnd", konami_SN76496_w)
- AM_RANGE(0x0002, 0x0002) AM_DEVWRITE_LEGACY("vlm", yiear_VLM5030_control_w)
+ AM_RANGE(0x0002, 0x0002) AM_WRITE(trackfld_VLM5030_control_w)
AM_RANGE(0x0003, 0x0003) AM_DEVWRITE_LEGACY("vlm", vlm5030_data_w)
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 */
@@ -380,8 +396,9 @@ static ADDRESS_MAP_START( wizzquiz_map, AS_PROGRAM, 8, trackfld_state )
ADDRESS_MAP_END
-READ8_DEVICE_HANDLER( trackfld_SN76496_r )
+READ8_MEMBER(trackfld_state::trackfld_SN76496_r)
{
+ device_t *device = machine().device("snsnd");
konami_SN76496_w(device, 0, 0);
return 0xff; // ?
}
@@ -392,7 +409,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, trackfld_state )
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_READ(soundlatch_byte_r)
AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x1fff) AM_READ_LEGACY(trackfld_sh_timer_r)
AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1fff) AM_WRITE_LEGACY(konami_SN76496_latch_w)
- AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x1fff) AM_DEVREADWRITE_LEGACY("snsnd", trackfld_SN76496_r, konami_SN76496_w)
+ AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x1fff) AM_READ(trackfld_SN76496_r) AM_DEVWRITE_LEGACY("snsnd",konami_SN76496_w)
AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x1ff8) AM_DEVWRITE_LEGACY("dac", dac_w)
AM_RANGE(0xe001, 0xe001) AM_MIRROR(0x1ff8) AM_NOP /* watch dog ?; reaktor reads here */
AM_RANGE(0xe002, 0xe002) AM_MIRROR(0x1ff8) AM_DEVREAD_LEGACY("vlm", trackfld_speech_r)
@@ -406,7 +423,7 @@ static ADDRESS_MAP_START( hyprolyb_sound_map, AS_PROGRAM, 8, trackfld_state )
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_READ(soundlatch_byte_r)
AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x1fff) AM_READ_LEGACY(trackfld_sh_timer_r)
AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1fff) AM_WRITE_LEGACY(konami_SN76496_latch_w)
- AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x1fff) AM_DEVREADWRITE_LEGACY("snsnd", trackfld_SN76496_r, konami_SN76496_w)
+ AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x1fff) AM_READ(trackfld_SN76496_r) AM_DEVWRITE_LEGACY("snsnd",konami_SN76496_w)
AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x1ff8) AM_DEVWRITE_LEGACY("dac", dac_w)
AM_RANGE(0xe001, 0xe001) AM_MIRROR(0x1ff8) AM_NOP /* watch dog ?; reaktor reads here */
AM_RANGE(0xe002, 0xe002) AM_MIRROR(0x1ff8) AM_DEVREAD_LEGACY("hyprolyb_adpcm", hyprolyb_adpcm_busy_r)
diff --git a/src/mame/drivers/truco.c b/src/mame/drivers/truco.c
index dd687088fc7..fdf90f20933 100644
--- a/src/mame/drivers/truco.c
+++ b/src/mame/drivers/truco.c
@@ -216,12 +216,12 @@
* Read/Write Handlers *
*******************************************/
-static WRITE8_DEVICE_HANDLER( porta_w )
+WRITE8_MEMBER(truco_state::porta_w)
{
logerror("Port A writes: %2x\n", data);
}
-static WRITE8_DEVICE_HANDLER( pia_ca2_w )
+WRITE8_MEMBER(truco_state::pia_ca2_w)
{
/* PIA CA2 line is connected to IC U19, leg 11.
The IC was successfully identified as MAX691.
@@ -231,25 +231,25 @@ static WRITE8_DEVICE_HANDLER( pia_ca2_w )
Legs 07 [OSC IN] and 08 [OSC SEL] aren't connected,
setting 1.6 seconds as WD timeout.
*/
- device->machine().watchdog_reset();
+ machine().watchdog_reset();
}
-static WRITE8_DEVICE_HANDLER( portb_w )
+WRITE8_MEMBER(truco_state::portb_w)
{
if ((data & 0x80) | (data == 0))
{
- dac_data_w(device->machine().device("dac"), data & 0x80); /* Isolated the bit for Delta-Sigma DAC */
+ dac_data_w(machine().device("dac"), data & 0x80); /* Isolated the bit for Delta-Sigma DAC */
}
else
logerror("Port B writes: %2x\n", data);
}
-static WRITE8_DEVICE_HANDLER( pia_irqa_w )
+WRITE8_MEMBER(truco_state::pia_irqa_w)
{
logerror("PIA irq A: %2x\n", data);
}
-static WRITE8_DEVICE_HANDLER( pia_irqb_w )
+WRITE8_MEMBER(truco_state::pia_irqb_w)
{
logerror("PIA irq B: %2x\n", data);
}
@@ -421,12 +421,12 @@ static const pia6821_interface pia0_intf =
DEVCB_NULL, /* line CB1 in ??? */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
- DEVCB_HANDLER(porta_w), /* port A out */
- DEVCB_HANDLER(portb_w), /* port B out */
- DEVCB_HANDLER(pia_ca2_w), /* line CA2 out */
+ DEVCB_DRIVER_MEMBER(truco_state,porta_w), /* port A out */
+ DEVCB_DRIVER_MEMBER(truco_state,portb_w), /* port B out */
+ DEVCB_DRIVER_MEMBER(truco_state,pia_ca2_w), /* line CA2 out */
DEVCB_NULL, /* port CB2 out */
- DEVCB_HANDLER(pia_irqa_w), /* IRQA */
- DEVCB_HANDLER(pia_irqb_w) /* IRQB */
+ DEVCB_DRIVER_MEMBER(truco_state,pia_irqa_w), /* IRQA */
+ DEVCB_DRIVER_MEMBER(truco_state,pia_irqb_w) /* IRQB */
};
diff --git a/src/mame/drivers/trucocl.c b/src/mame/drivers/trucocl.c
index b4c0147ea5d..afe683441bb 100644
--- a/src/mame/drivers/trucocl.c
+++ b/src/mame/drivers/trucocl.c
@@ -49,21 +49,21 @@ static TIMER_CALLBACK( dac_irq )
cputag_set_input_line(machine, "maincpu", INPUT_LINE_NMI, PULSE_LINE );
}
-static WRITE8_DEVICE_HANDLER( audio_dac_w )
+WRITE8_MEMBER(trucocl_state::audio_dac_w)
{
- trucocl_state *state = device->machine().driver_data<trucocl_state>();
- UINT8 *rom = state->memregion("maincpu")->base();
+ device_t *device = machine().device("dac");
+ UINT8 *rom = memregion("maincpu")->base();
int dac_address = ( data & 0xf0 ) << 8;
int sel = ( ( (~data) >> 1 ) & 2 ) | ( data & 1 );
- if ( state->m_cur_dac_address != dac_address )
+ if ( m_cur_dac_address != dac_address )
{
- state->m_cur_dac_address_index = 0;
- state->m_cur_dac_address = dac_address;
+ m_cur_dac_address_index = 0;
+ m_cur_dac_address = dac_address;
}
else
{
- state->m_cur_dac_address_index++;
+ m_cur_dac_address_index++;
}
if ( sel & 1 )
@@ -74,9 +74,9 @@ static WRITE8_DEVICE_HANDLER( audio_dac_w )
dac_address += 0x10000;
- dac_data_w( device, rom[dac_address+state->m_cur_dac_address_index] );
+ dac_data_w( device, rom[dac_address+m_cur_dac_address_index] );
- device->machine().scheduler().timer_set( attotime::from_hz( 16000 ), FUNC(dac_irq ));
+ machine().scheduler().timer_set( attotime::from_hz( 16000 ), FUNC(dac_irq ));
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, trucocl_state )
@@ -86,7 +86,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, trucocl_state )
AM_RANGE(0x4c00, 0x4fff) AM_RAM
AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_enable_w)
AM_RANGE(0x5000, 0x503f) AM_READ_PORT("IN0")
- AM_RANGE(0x5080, 0x5080) AM_DEVWRITE_LEGACY("dac", audio_dac_w)
+ AM_RANGE(0x5080, 0x5080) AM_WRITE(audio_dac_w)
AM_RANGE(0x50c0, 0x50c0) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tubep.c b/src/mame/drivers/tubep.c
index 019f7545035..35ff2f3dc3c 100644
--- a/src/mame/drivers/tubep.c
+++ b/src/mame/drivers/tubep.c
@@ -531,8 +531,9 @@ READ8_MEMBER(tubep_state::rjammer_soundlatch_r)
}
-static WRITE8_DEVICE_HANDLER( rjammer_voice_startstop_w )
+WRITE8_MEMBER(tubep_state::rjammer_voice_startstop_w)
{
+ device_t *device = machine().device("msm");
/* bit 0 of data selects voice start/stop (reset pin on MSM5205)*/
// 0 -stop; 1-start
msm5205_reset_w (device, (data&1)^1 );
@@ -541,8 +542,9 @@ static WRITE8_DEVICE_HANDLER( rjammer_voice_startstop_w )
}
-static WRITE8_DEVICE_HANDLER( rjammer_voice_frequency_select_w )
+WRITE8_MEMBER(tubep_state::rjammer_voice_frequency_select_w)
{
+ device_t *device = machine().device("msm");
/* bit 0 of data selects voice frequency on MSM5205 */
// 0 -4 KHz; 1- 8KHz
if (data & 1)
@@ -606,8 +608,8 @@ ADDRESS_MAP_END
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_LEGACY("msm", rjammer_voice_startstop_w)
- AM_RANGE(0x18, 0x18) AM_DEVWRITE_LEGACY("msm", rjammer_voice_frequency_select_w)
+ AM_RANGE(0x10, 0x10) AM_WRITE(rjammer_voice_startstop_w)
+ AM_RANGE(0x18, 0x18) AM_WRITE(rjammer_voice_frequency_select_w)
AM_RANGE(0x80, 0x80) AM_WRITE(rjammer_voice_input_w)
AM_RANGE(0x90, 0x91) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
AM_RANGE(0x92, 0x93) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
@@ -616,27 +618,27 @@ static ADDRESS_MAP_START( rjammer_sound_portmap, AS_IO, 8, tubep_state )
ADDRESS_MAP_END
-static WRITE8_DEVICE_HANDLER( ay8910_portA_0_w )
+WRITE8_MEMBER(tubep_state::ay8910_portA_0_w)
{
//analog sound control
}
-static WRITE8_DEVICE_HANDLER( ay8910_portB_0_w )
+WRITE8_MEMBER(tubep_state::ay8910_portB_0_w)
{
//analog sound control
}
-static WRITE8_DEVICE_HANDLER( ay8910_portA_1_w )
+WRITE8_MEMBER(tubep_state::ay8910_portA_1_w)
{
//analog sound control
}
-static WRITE8_DEVICE_HANDLER( ay8910_portB_1_w )
+WRITE8_MEMBER(tubep_state::ay8910_portB_1_w)
{
//analog sound control
}
-static WRITE8_DEVICE_HANDLER( ay8910_portA_2_w )
+WRITE8_MEMBER(tubep_state::ay8910_portA_2_w)
{
//analog sound control
}
-static WRITE8_DEVICE_HANDLER( ay8910_portB_2_w )
+WRITE8_MEMBER(tubep_state::ay8910_portB_2_w)
{
//analog sound control
}
@@ -849,8 +851,8 @@ static const ay8910_interface ay8910_interface_1 =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(ay8910_portA_0_w), /* write port A */
- DEVCB_HANDLER(ay8910_portB_0_w) /* write port B */
+ DEVCB_DRIVER_MEMBER(tubep_state,ay8910_portA_0_w), /* write port A */
+ DEVCB_DRIVER_MEMBER(tubep_state,ay8910_portB_0_w) /* write port B */
};
static const ay8910_interface ay8910_interface_2 =
@@ -859,8 +861,8 @@ static const ay8910_interface ay8910_interface_2 =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(ay8910_portA_1_w), /* write port A */
- DEVCB_HANDLER(ay8910_portB_1_w) /* write port B */
+ DEVCB_DRIVER_MEMBER(tubep_state,ay8910_portA_1_w), /* write port A */
+ DEVCB_DRIVER_MEMBER(tubep_state,ay8910_portB_1_w) /* write port B */
};
static const ay8910_interface ay8910_interface_3 =
@@ -869,8 +871,8 @@ static const ay8910_interface ay8910_interface_3 =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(ay8910_portA_2_w), /* write port A */
- DEVCB_HANDLER(ay8910_portB_2_w) /* write port B */
+ DEVCB_DRIVER_MEMBER(tubep_state,ay8910_portA_2_w), /* write port A */
+ DEVCB_DRIVER_MEMBER(tubep_state,ay8910_portB_2_w) /* write port B */
};
static const msm5205_interface msm5205_config =
diff --git a/src/mame/drivers/tumbleb.c b/src/mame/drivers/tumbleb.c
index 37d794a4d1f..d988aa305db 100644
--- a/src/mame/drivers/tumbleb.c
+++ b/src/mame/drivers/tumbleb.c
@@ -626,8 +626,10 @@ static void process_tumbleb2_music_command( okim6295_device *oki, int data )
}
-static WRITE16_DEVICE_HANDLER( tumbleb2_soundmcu_w )
+WRITE16_MEMBER(tumbleb_state::tumbleb2_soundmcu_w)
{
+ device_t *device = machine().device("oki");
+
int sound = tumbleb_sound_lookup[data & 0xff];
if (sound == 0x00)
@@ -3401,15 +3403,13 @@ static DRIVER_INIT( tumblepb )
static DRIVER_INIT( tumbleb2 )
{
- device_t *oki = machine.device("oki");
-
tumblepb_gfx1_rearrange(machine);
#if TUMBLEP_HACK
tumblepb_patch_code(machine, 0x000132);
#endif
-
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(*oki, 0x100000, 0x100001, FUNC(tumbleb2_soundmcu_w) );
+ tumbleb_state *state = machine.driver_data<tumbleb_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x100000, 0x100001, write16_delegate(FUNC(tumbleb_state::tumbleb2_soundmcu_w),state));
}
diff --git a/src/mame/drivers/tumblep.c b/src/mame/drivers/tumblep.c
index d23d2c64163..506a34976e3 100644
--- a/src/mame/drivers/tumblep.c
+++ b/src/mame/drivers/tumblep.c
@@ -55,7 +55,7 @@ Stephh's notes (based on the games M68000 code and some tests) :
/******************************************************************************/
#ifdef UNUSED_FUNCTION
-static WRITE16_DEVICE_HANDLER( tumblep_oki_w )
+WRITE16_MEMBER(tumblep_state::tumblep_oki_w)
{
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->write(0, data & 0xff);
diff --git a/src/mame/drivers/tunhunt.c b/src/mame/drivers/tunhunt.c
index 4b2b76b5efc..301b435d84e 100644
--- a/src/mame/drivers/tunhunt.c
+++ b/src/mame/drivers/tunhunt.c
@@ -93,33 +93,33 @@ READ8_MEMBER(tunhunt_state::tunhunt_button_r)
}
-static READ8_DEVICE_HANDLER( dsw2_0r )
+READ8_MEMBER(tunhunt_state::dsw2_0r)
{
- return (device->machine().root_device().ioport("DSW")->read()&0x0100)?0x80:0x00;
+ return (machine().root_device().ioport("DSW")->read()&0x0100)?0x80:0x00;
}
-static READ8_DEVICE_HANDLER( dsw2_1r )
+READ8_MEMBER(tunhunt_state::dsw2_1r)
{
- return (device->machine().root_device().ioport("DSW")->read()&0x0200)?0x80:0x00;
+ return (machine().root_device().ioport("DSW")->read()&0x0200)?0x80:0x00;
}
-static READ8_DEVICE_HANDLER( dsw2_2r )
+READ8_MEMBER(tunhunt_state::dsw2_2r)
{
- return (device->machine().root_device().ioport("DSW")->read()&0x0400)?0x80:0x00;
+ return (machine().root_device().ioport("DSW")->read()&0x0400)?0x80:0x00;
}
-static READ8_DEVICE_HANDLER( dsw2_3r )
+READ8_MEMBER(tunhunt_state::dsw2_3r)
{
- return (device->machine().root_device().ioport("DSW")->read()&0x0800)?0x80:0x00;
+ return (machine().root_device().ioport("DSW")->read()&0x0800)?0x80:0x00;
}
-static READ8_DEVICE_HANDLER( dsw2_4r )
+READ8_MEMBER(tunhunt_state::dsw2_4r)
{
- return (device->machine().root_device().ioport("DSW")->read()&0x1000)?0x80:0x00;
+ return (machine().root_device().ioport("DSW")->read()&0x1000)?0x80:0x00;
}
@@ -283,11 +283,11 @@ static const pokey_interface pokey_interface_2 =
{
DEVCB_INPUT_PORT("IN1"),
DEVCB_INPUT_PORT("IN2"),
- DEVCB_HANDLER(dsw2_0r),
- DEVCB_HANDLER(dsw2_1r),
- DEVCB_HANDLER(dsw2_2r),
- DEVCB_HANDLER(dsw2_3r),
- DEVCB_HANDLER(dsw2_4r)
+ DEVCB_DRIVER_MEMBER(tunhunt_state,dsw2_0r),
+ DEVCB_DRIVER_MEMBER(tunhunt_state,dsw2_1r),
+ DEVCB_DRIVER_MEMBER(tunhunt_state,dsw2_2r),
+ DEVCB_DRIVER_MEMBER(tunhunt_state,dsw2_3r),
+ DEVCB_DRIVER_MEMBER(tunhunt_state,dsw2_4r)
}
};
diff --git a/src/mame/drivers/turbo.c b/src/mame/drivers/turbo.c
index 7cefef3770f..0bb0ad7a4c7 100644
--- a/src/mame/drivers/turbo.c
+++ b/src/mame/drivers/turbo.c
@@ -178,7 +178,7 @@
-static READ8_DEVICE_HANDLER( turbo_analog_r );
+
@@ -210,62 +210,55 @@ static MACHINE_RESET( buckrog )
3 = IC6 - CPU Board, Sheet 5, D7
*/
-static WRITE8_DEVICE_HANDLER( turbo_ppi0a_w )
+WRITE8_MEMBER(turbo_state::turbo_ppi0a_w)
{
/* bit0-7 = 0PA0-7 */
- turbo_state *state = device->machine().driver_data<turbo_state>();
- state->m_turbo_opa = data;
+ m_turbo_opa = data;
}
-static WRITE8_DEVICE_HANDLER( turbo_ppi0b_w )
+WRITE8_MEMBER(turbo_state::turbo_ppi0b_w)
{
/* bit0-7 = 0PB0-7 */
- turbo_state *state = device->machine().driver_data<turbo_state>();
- state->m_turbo_opb = data;
+ m_turbo_opb = data;
}
-static WRITE8_DEVICE_HANDLER( turbo_ppi0c_w )
+WRITE8_MEMBER(turbo_state::turbo_ppi0c_w)
{
/* bit0-7 = 0PC0-7 */
- turbo_state *state = device->machine().driver_data<turbo_state>();
- state->m_turbo_opc = data;
+ m_turbo_opc = data;
}
-static WRITE8_DEVICE_HANDLER( turbo_ppi1a_w )
+WRITE8_MEMBER(turbo_state::turbo_ppi1a_w)
{
/* bit0-7 = 1PA0-7 */
- turbo_state *state = device->machine().driver_data<turbo_state>();
- state->m_turbo_ipa = data;
+ m_turbo_ipa = data;
}
-static WRITE8_DEVICE_HANDLER( turbo_ppi1b_w )
+WRITE8_MEMBER(turbo_state::turbo_ppi1b_w)
{
/* bit0-7 = 1PB0-7 */
- turbo_state *state = device->machine().driver_data<turbo_state>();
- state->m_turbo_ipb = data;
+ m_turbo_ipb = data;
}
-static WRITE8_DEVICE_HANDLER( turbo_ppi1c_w )
+WRITE8_MEMBER(turbo_state::turbo_ppi1c_w)
{
/* bit0-7 = 1PC0-7 */
- turbo_state *state = device->machine().driver_data<turbo_state>();
- state->m_turbo_ipc = data;
+ m_turbo_ipc = data;
}
-static WRITE8_DEVICE_HANDLER( turbo_ppi3c_w )
+WRITE8_MEMBER(turbo_state::turbo_ppi3c_w)
{
/* bit 0-3 = PLA0-3 */
/* bit 4-6 = COL0-2 */
/* bit 7 = n/c */
- turbo_state *state = device->machine().driver_data<turbo_state>();
- state->m_turbo_fbpla = data & 0x0f;
- state->m_turbo_fbcol = (data >> 4) & 0x07;
+ m_turbo_fbpla = data & 0x0f;
+ m_turbo_fbcol = (data >> 4) & 0x07;
}
@@ -275,17 +268,17 @@ static const ppi8255_interface turbo_8255_intf[4] =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(turbo_ppi0a_w),
- DEVCB_HANDLER(turbo_ppi0b_w),
- DEVCB_HANDLER(turbo_ppi0c_w)
+ DEVCB_DRIVER_MEMBER(turbo_state,turbo_ppi0a_w),
+ DEVCB_DRIVER_MEMBER(turbo_state,turbo_ppi0b_w),
+ DEVCB_DRIVER_MEMBER(turbo_state,turbo_ppi0c_w)
},
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(turbo_ppi1a_w),
- DEVCB_HANDLER(turbo_ppi1b_w),
- DEVCB_HANDLER(turbo_ppi1c_w)
+ DEVCB_DRIVER_MEMBER(turbo_state,turbo_ppi1a_w),
+ DEVCB_DRIVER_MEMBER(turbo_state,turbo_ppi1b_w),
+ DEVCB_DRIVER_MEMBER(turbo_state,turbo_ppi1c_w)
},
{
DEVCB_NULL,
@@ -296,12 +289,12 @@ static const ppi8255_interface turbo_8255_intf[4] =
DEVCB_HANDLER(turbo_sound_c_w)
},
{
- DEVCB_HANDLER(turbo_analog_r),
+ DEVCB_DRIVER_MEMBER(turbo_state,turbo_analog_r),
DEVCB_INPUT_PORT("DSW2"),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(turbo_ppi3c_w)
+ DEVCB_DRIVER_MEMBER(turbo_state,turbo_ppi3c_w)
}
};
@@ -319,35 +312,32 @@ static const ppi8255_interface turbo_8255_intf[4] =
1 = IC119 - CPU Board, Sheet 3, A5
*/
-static WRITE8_DEVICE_HANDLER( subroc3d_ppi0a_w )
+WRITE8_MEMBER(turbo_state::subroc3d_ppi0a_w)
{
/* bit 0-3 = PLY0-3 */
/* bit 4-7 = n/c */
- turbo_state *state = device->machine().driver_data<turbo_state>();
- state->m_subroc3d_ply = data & 0x0f;
+ m_subroc3d_ply = data & 0x0f;
}
-static WRITE8_DEVICE_HANDLER( subroc3d_ppi0c_w )
+WRITE8_MEMBER(turbo_state::subroc3d_ppi0c_w)
{
/* bit 0-3 = COL0-3 */
- turbo_state *state = device->machine().driver_data<turbo_state>();
- state->m_subroc3d_col = data & 0x0f;
+ m_subroc3d_col = data & 0x0f;
}
-static WRITE8_DEVICE_HANDLER( subroc3d_ppi0b_w )
+WRITE8_MEMBER(turbo_state::subroc3d_ppi0b_w)
{
/* bit 0 = COM1 (COIN METER 1) */
/* bit 1 = COM2 (COIN METER 2) */
/* bit 2 = STLA (START LAMP) */
/* bit 3 = NOUSE (n/c) */
/* bit 4 = FLIP (not really flip, just offset) */
- turbo_state *state = device->machine().driver_data<turbo_state>();
- coin_counter_w(device->machine(), 0, data & 0x01);
- coin_counter_w(device->machine(), 1, data & 0x02);
- set_led_status(device->machine(), 0, data & 0x04);
- state->m_subroc3d_flip = (data >> 4) & 1;
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
+ set_led_status(machine(), 0, data & 0x04);
+ m_subroc3d_flip = (data >> 4) & 1;
}
@@ -357,9 +347,9 @@ static const ppi8255_interface subroc3d_8255_intf[2] =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(subroc3d_ppi0a_w),
- DEVCB_HANDLER(subroc3d_ppi0b_w),
- DEVCB_HANDLER(subroc3d_ppi0c_w)
+ DEVCB_DRIVER_MEMBER(turbo_state,subroc3d_ppi0a_w),
+ DEVCB_DRIVER_MEMBER(turbo_state,subroc3d_ppi0b_w),
+ DEVCB_DRIVER_MEMBER(turbo_state,subroc3d_ppi0c_w)
},
{
DEVCB_NULL,
@@ -379,36 +369,33 @@ static const ppi8255_interface subroc3d_8255_intf[2] =
*
*************************************/
-static WRITE8_DEVICE_HANDLER( buckrog_ppi0a_w )
+WRITE8_MEMBER(turbo_state::buckrog_ppi0a_w)
{
/* bit 0-7 = data to be read on the /IOREQ */
- turbo_state *state = device->machine().driver_data<turbo_state>();
- state->m_buckrog_command = data;
+ m_buckrog_command = data;
}
-static WRITE8_DEVICE_HANDLER( buckrog_ppi0b_w )
+WRITE8_MEMBER(turbo_state::buckrog_ppi0b_w)
{
/* bit 0-5 = MOV0-5 */
/* bit 6-7 = n/c */
- turbo_state *state = device->machine().driver_data<turbo_state>();
- state->m_buckrog_mov = data & 0x3f;
+ m_buckrog_mov = data & 0x3f;
}
-static WRITE8_DEVICE_HANDLER( buckrog_ppi0c_w )
+WRITE8_MEMBER(turbo_state::buckrog_ppi0c_w)
{
/* bit 0-2 = FCHG0 */
/* bit 3-5 = n/c */
/* bit 6 = /IOREQ on the 2nd CPU */
/* bit 7 = /INT on the 2nd CPU */
- turbo_state *state = device->machine().driver_data<turbo_state>();
- state->m_buckrog_fchg = data & 0x07;
- cputag_set_input_line(device->machine(), "sub", 0, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
+ m_buckrog_fchg = data & 0x07;
+ cputag_set_input_line(machine(), "sub", 0, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE8_DEVICE_HANDLER( buckrog_ppi1c_w )
+WRITE8_MEMBER(turbo_state::buckrog_ppi1c_w)
{
/* bit 0-2 = OBCH0-2 */
/* bit 3 = n/c */
@@ -416,11 +403,10 @@ static WRITE8_DEVICE_HANDLER( buckrog_ppi1c_w )
/* bit 5 = COM2 (COIN METER 2) */
/* bit 6 = STLA (START LAMP) */
/* bit 7 = NOUSE (BODY SONIC) */
- turbo_state *state = device->machine().driver_data<turbo_state>();
- state->m_buckrog_obch = data & 0x07;
- coin_counter_w(device->machine(), 0, data & 0x10);
- coin_counter_w(device->machine(), 1, data & 0x20);
- set_led_status(device->machine(), 0, data & 0x40);
+ m_buckrog_obch = data & 0x07;
+ coin_counter_w(machine(), 0, data & 0x10);
+ coin_counter_w(machine(), 1, data & 0x20);
+ set_led_status(machine(), 0, data & 0x40);
}
@@ -430,9 +416,9 @@ static const ppi8255_interface buckrog_8255_intf[2] =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_HANDLER(buckrog_ppi0a_w),
- DEVCB_HANDLER(buckrog_ppi0b_w),
- DEVCB_HANDLER(buckrog_ppi0c_w)
+ DEVCB_DRIVER_MEMBER(turbo_state,buckrog_ppi0a_w),
+ DEVCB_DRIVER_MEMBER(turbo_state,buckrog_ppi0b_w),
+ DEVCB_DRIVER_MEMBER(turbo_state,buckrog_ppi0c_w)
},
{
DEVCB_NULL,
@@ -440,7 +426,7 @@ static const ppi8255_interface buckrog_8255_intf[2] =
DEVCB_NULL,
DEVCB_HANDLER(buckrog_sound_a_w),
DEVCB_HANDLER(buckrog_sound_b_w),
- DEVCB_HANDLER(buckrog_ppi1c_w)
+ DEVCB_DRIVER_MEMBER(turbo_state,buckrog_ppi1c_w)
}
};
@@ -501,10 +487,9 @@ WRITE8_MEMBER(turbo_state::turbo_collision_clear_w)
}
-static READ8_DEVICE_HANDLER( turbo_analog_r )
+READ8_MEMBER(turbo_state::turbo_analog_r)
{
- turbo_state *state = device->machine().driver_data<turbo_state>();
- return state->ioport("DIAL")->read() - state->m_turbo_last_analog;
+ return ioport("DIAL")->read() - m_turbo_last_analog;
}
@@ -584,11 +569,11 @@ static TIMER_CALLBACK( delayed_ppi8255_w )
}
-static WRITE8_DEVICE_HANDLER( buckrog_ppi8255_0_w )
+WRITE8_MEMBER(turbo_state::buckrog_ppi8255_0_w)
{
/* the port C handshaking signals control the sub CPU IRQ, */
/* so we have to sync whenever we access this PPI */
- device->machine().scheduler().synchronize(FUNC(delayed_ppi8255_w), ((offset & 3) << 8) | (data & 0xff));
+ machine().scheduler().synchronize(FUNC(delayed_ppi8255_w), ((offset & 3) << 8) | (data & 0xff));
}
@@ -655,7 +640,7 @@ 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_SHARE("videoram") // FIX PAGE
- AM_RANGE(0xc800, 0xc803) AM_MIRROR(0x07fc) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, buckrog_ppi8255_0_w) // 8255
+ AM_RANGE(0xc800, 0xc803) AM_MIRROR(0x07fc) AM_DEVWRITE_LEGACY("ppi8255_0", ppi8255_r) AM_WRITE(buckrog_ppi8255_0_w) // 8255
AM_RANGE(0xd000, 0xd003) AM_MIRROR(0x07fc) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) // 8255
AM_RANGE(0xd800, 0xd800) AM_MIRROR(0x07fe) AM_DEVREADWRITE("i8279", i8279_device, data_r, data_w )
AM_RANGE(0xd801, 0xd801) AM_MIRROR(0x07fe) AM_DEVREADWRITE("i8279", i8279_device, status_r, cmd_w)
diff --git a/src/mame/drivers/twin16.c b/src/mame/drivers/twin16.c
index ebe5118efa7..58765da691b 100644
--- a/src/mame/drivers/twin16.c
+++ b/src/mame/drivers/twin16.c
@@ -188,18 +188,21 @@ READ16_MEMBER(twin16_state::twin16_input_r)
return 0;
}
-static READ8_DEVICE_HANDLER( twin16_upd_busy_r )
+READ8_MEMBER(twin16_state::twin16_upd_busy_r)
{
+ device_t *device = machine().device("upd");
return upd7759_busy_r(device);
}
-static WRITE8_DEVICE_HANDLER( twin16_upd_reset_w )
+WRITE8_MEMBER(twin16_state::twin16_upd_reset_w)
{
+ device_t *device = machine().device("upd");
upd7759_reset_w(device, data & 2);
}
-static WRITE8_DEVICE_HANDLER( twin16_upd_start_w )
+WRITE8_MEMBER(twin16_state::twin16_upd_start_w)
{
+ device_t *device = machine().device("upd");
upd7759_start_w(device, data & 1);
}
@@ -223,13 +226,13 @@ WRITE16_MEMBER(twin16_state::cuebrickj_nvram_bank_w)
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_LEGACY("upd", twin16_upd_reset_w)
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(twin16_upd_reset_w)
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("konami", k007232_r, k007232_w)
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xd000, 0xd000) AM_DEVWRITE_LEGACY("upd", upd7759_port_w)
- AM_RANGE(0xe000, 0xe000) AM_DEVWRITE_LEGACY("upd", twin16_upd_start_w)
- AM_RANGE(0xf000, 0xf000) AM_DEVREAD_LEGACY("upd", twin16_upd_busy_r) // miaj writes 0 to it
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(twin16_upd_start_w)
+ AM_RANGE(0xf000, 0xf000) AM_READ(twin16_upd_busy_r) // miaj writes 0 to it
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, twin16_state )
diff --git a/src/mame/drivers/tx1.c b/src/mame/drivers/tx1.c
index b277964078b..7cd07496a64 100644
--- a/src/mame/drivers/tx1.c
+++ b/src/mame/drivers/tx1.c
@@ -401,18 +401,18 @@ READ8_MEMBER(tx1_state::ts_r)
}
-static WRITE8_DEVICE_HANDLER( tx1_coin_cnt_w )
+WRITE8_MEMBER(tx1_state::tx1_coin_cnt_w)
{
- coin_counter_w(device->machine(), 0, data & 0x80);
- coin_counter_w(device->machine(), 1, data & 0x40);
-// coin_counter_w(device->machine(), 2, data & 0x40);
+ coin_counter_w(machine(), 0, data & 0x80);
+ coin_counter_w(machine(), 1, data & 0x40);
+// coin_counter_w(machine(), 2, data & 0x40);
}
-static WRITE8_DEVICE_HANDLER( bb_coin_cnt_w )
+WRITE8_MEMBER(tx1_state::bb_coin_cnt_w)
{
- coin_counter_w(device->machine(), 0, data & 0x01);
- coin_counter_w(device->machine(), 1, data & 0x02);
-// coin_counter_w(device->machine(), 2, data & 0x04);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
+// coin_counter_w(machine(), 2, data & 0x04);
}
WRITE8_MEMBER(tx1_state::tx1_ppi_latch_w)
@@ -421,16 +421,14 @@ WRITE8_MEMBER(tx1_state::tx1_ppi_latch_w)
m_ppi_latch_b = ioport("AN_STEERING")->read();
}
-static READ8_DEVICE_HANDLER( tx1_ppi_porta_r )
+READ8_MEMBER(tx1_state::tx1_ppi_porta_r)
{
- tx1_state *state = device->machine().driver_data<tx1_state>();
- return state->m_ppi_latch_a;
+ return m_ppi_latch_a;
}
-static READ8_DEVICE_HANDLER( tx1_ppi_portb_r )
+READ8_MEMBER(tx1_state::tx1_ppi_portb_r)
{
- tx1_state *state = device->machine().driver_data<tx1_state>();
- return state->ioport("PPI_PORTD")->read() | state->m_ppi_latch_b;
+ return ioport("PPI_PORTD")->read() | m_ppi_latch_b;
}
@@ -472,19 +470,19 @@ static I8255A_INTERFACE( buggyboy_ppi8255_intf )
DEVCB_INPUT_PORT("PPI_PORTA"), /* Port A read */
DEVCB_NULL, /* Port A write */
DEVCB_NULL, /* Port B read */
- DEVCB_HANDLER(bb_coin_cnt_w), /* Port B write */
+ DEVCB_DRIVER_MEMBER(tx1_state,bb_coin_cnt_w), /* Port B write */
DEVCB_INPUT_PORT("PPI_PORTC"), /* Port C read */
DEVCB_NULL /* Port C write */
};
static I8255A_INTERFACE( tx1_ppi8255_intf )
{
- DEVCB_HANDLER(tx1_ppi_porta_r), /* Port A read */
+ DEVCB_DRIVER_MEMBER(tx1_state,tx1_ppi_porta_r), /* Port A read */
DEVCB_NULL, /* Port A write */
- DEVCB_HANDLER(tx1_ppi_portb_r), /* Port B read */
+ DEVCB_DRIVER_MEMBER(tx1_state,tx1_ppi_portb_r), /* Port B read */
DEVCB_NULL, /* Port B write */
DEVCB_INPUT_PORT("PPI_PORTC"), /* Port C read */
- DEVCB_HANDLER(tx1_coin_cnt_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(tx1_state,tx1_coin_cnt_w) /* Port C write */
};
diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c
index 340974c9712..405089e1dac 100644
--- a/src/mame/drivers/ultratnk.c
+++ b/src/mame/drivers/ultratnk.c
@@ -127,20 +127,24 @@ WRITE8_MEMBER(ultratnk_state::ultratnk_lockout_w)
}
-static WRITE8_DEVICE_HANDLER( ultratnk_fire_1_w )
+WRITE8_MEMBER(ultratnk_state::ultratnk_fire_1_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, ULTRATNK_FIRE_EN_1, offset & 1);
}
-static WRITE8_DEVICE_HANDLER( ultratnk_fire_2_w )
+WRITE8_MEMBER(ultratnk_state::ultratnk_fire_2_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, ULTRATNK_FIRE_EN_2, offset & 1);
}
-static WRITE8_DEVICE_HANDLER( ultratnk_attract_w )
+WRITE8_MEMBER(ultratnk_state::ultratnk_attract_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, ULTRATNK_ATTRACT_EN, data & 1);
}
-static WRITE8_DEVICE_HANDLER( ultratnk_explosion_w )
+WRITE8_MEMBER(ultratnk_state::ultratnk_explosion_w)
{
+ device_t *device = machine().device("discrete");
discrete_sound_w(device, ULTRATNK_EXPLOSION_DATA, data & 15);
}
@@ -161,16 +165,16 @@ static ADDRESS_MAP_START( ultratnk_cpu_map, AS_PROGRAM, 8, ultratnk_state )
AM_RANGE(0x2040, 0x2047) AM_MIRROR(0x718) AM_READ(ultratnk_collision_r)
AM_RANGE(0x2060, 0x2063) AM_MIRROR(0x71c) AM_READ(ultratnk_options_r)
- AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x71f) AM_DEVWRITE_LEGACY("discrete", ultratnk_attract_w)
+ AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x71f) AM_WRITE(ultratnk_attract_w)
AM_RANGE(0x2020, 0x2027) AM_MIRROR(0x718) AM_WRITE(ultratnk_collision_reset_w)
AM_RANGE(0x2040, 0x2041) AM_MIRROR(0x718) AM_WRITE(ultratnk_da_latch_w)
- AM_RANGE(0x2042, 0x2043) AM_MIRROR(0x718) AM_DEVWRITE_LEGACY("discrete", ultratnk_explosion_w)
+ AM_RANGE(0x2042, 0x2043) AM_MIRROR(0x718) AM_WRITE(ultratnk_explosion_w)
AM_RANGE(0x2044, 0x2045) AM_MIRROR(0x718) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x2066, 0x2067) AM_MIRROR(0x710) AM_WRITE(ultratnk_lockout_w)
AM_RANGE(0x2068, 0x2069) AM_MIRROR(0x710) AM_WRITE(ultratnk_led_1_w)
AM_RANGE(0x206a, 0x206b) AM_MIRROR(0x710) AM_WRITE(ultratnk_led_2_w)
- AM_RANGE(0x206c, 0x206d) AM_MIRROR(0x710) AM_DEVWRITE_LEGACY("discrete", ultratnk_fire_2_w)
- AM_RANGE(0x206e, 0x206f) AM_MIRROR(0x710) AM_DEVWRITE_LEGACY("discrete", ultratnk_fire_1_w)
+ AM_RANGE(0x206c, 0x206d) AM_MIRROR(0x710) AM_WRITE(ultratnk_fire_2_w)
+ AM_RANGE(0x206e, 0x206f) AM_MIRROR(0x710) AM_WRITE(ultratnk_fire_1_w)
AM_RANGE(0x2800, 0x2fff) AM_NOP /* diagnostic ROM */
AM_RANGE(0x3000, 0x3fff) AM_ROM
diff --git a/src/mame/drivers/unico.c b/src/mame/drivers/unico.c
index f119b5abdc8..81640f052a2 100644
--- a/src/mame/drivers/unico.c
+++ b/src/mame/drivers/unico.c
@@ -48,8 +48,9 @@ Year + Game PCB Notes
Burglar X
***************************************************************************/
-static WRITE16_DEVICE_HANDLER( burglarx_sound_bank_w )
+WRITE16_MEMBER(unico_state::burglarx_sound_bank_w)
{
+ device_t *device = machine().device("oki");
if (ACCESSING_BITS_8_15)
{
int bank = (data >> 8 ) & 1;
@@ -69,7 +70,7 @@ static ADDRESS_MAP_START( burglarx_map, AS_PROGRAM, 16, unico_state )
AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8_LEGACY("ymsnd", ym3812_write_port_w, 0xff00 ) //
AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8_LEGACY("ymsnd", ym3812_status_port_r, ym3812_control_port_w, 0xff00 ) //
- AM_RANGE(0x80018e, 0x80018f) AM_DEVWRITE_LEGACY("oki", burglarx_sound_bank_w) //
+ AM_RANGE(0x80018e, 0x80018f) AM_WRITE(burglarx_sound_bank_w) //
AM_RANGE(0x8001e0, 0x8001e1) AM_WRITENOP // IRQ Ack
AM_RANGE(0x904000, 0x90ffff) AM_RAM_WRITE(unico_vram_w) AM_SHARE("vram") // Layers 1, 2, 0
AM_RANGE(0x920000, 0x923fff) AM_RAM // ? 0
@@ -196,10 +197,11 @@ WRITE32_MEMBER(unico_state::zeropnt2_leds_w)
}
}
-static WRITE32_DEVICE_HANDLER( zeropnt2_eeprom_w )
+WRITE32_MEMBER(unico_state::zeropnt2_eeprom_w)
{
+ device_t *device = machine().device("eeprom");
if (data & ~0xfe00000)
- logerror("%s - Unknown EEPROM bit written %04X\n",device->machine().describe_context(),data);
+ logerror("%s - Unknown EEPROM bit written %04X\n",machine().describe_context(),data);
if ( ACCESSING_BITS_24_31 )
{
@@ -232,7 +234,7 @@ static ADDRESS_MAP_START( zeropnt2_map, AS_PROGRAM, 32, unico_state )
AM_RANGE(0x800154, 0x800157) AM_READ_PORT("DSW2")
AM_RANGE(0x80015c, 0x80015f) AM_READ_PORT("BUTTONS")
AM_RANGE(0x8001e0, 0x8001e3) AM_WRITENOP // ? IRQ Ack
- AM_RANGE(0x8001f0, 0x8001f3) AM_DEVWRITE_LEGACY("eeprom", zeropnt2_eeprom_w) // EEPROM
+ AM_RANGE(0x8001f0, 0x8001f3) AM_WRITE(zeropnt2_eeprom_w) // EEPROM
AM_RANGE(0x904000, 0x90ffff) AM_RAM_WRITE(unico_vram32_w) AM_SHARE("vram32") // Layers 1, 2, 0
AM_RANGE(0x920000, 0x923fff) AM_RAM // ? 0
AM_RANGE(0x930000, 0x9307ff) AM_RAM AM_SHARE("spriteram") // Sprites
diff --git a/src/mame/drivers/vendetta.c b/src/mame/drivers/vendetta.c
index 892a6fce931..45b0d4129f0 100644
--- a/src/mame/drivers/vendetta.c
+++ b/src/mame/drivers/vendetta.c
@@ -222,8 +222,9 @@ READ8_MEMBER(vendetta_state::vendetta_sound_interrupt_r)
return 0x00;
}
-static READ8_DEVICE_HANDLER( vendetta_sound_r )
+READ8_MEMBER(vendetta_state::vendetta_sound_r)
{
+ device_t *device = machine().device("k053260");
return k053260_r(device, 2 + offset);
}
@@ -244,7 +245,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, vendetta_state )
AM_RANGE(0x5fe0, 0x5fe0) AM_WRITE(vendetta_5fe0_w)
AM_RANGE(0x5fe2, 0x5fe2) AM_WRITE(vendetta_eeprom_w)
AM_RANGE(0x5fe4, 0x5fe4) AM_READWRITE(vendetta_sound_interrupt_r, z80_irq_w)
- AM_RANGE(0x5fe6, 0x5fe7) AM_DEVREADWRITE_LEGACY("k053260", vendetta_sound_r, k053260_w)
+ AM_RANGE(0x5fe6, 0x5fe7) AM_READ(vendetta_sound_r) AM_DEVWRITE_LEGACY("k053260", k053260_w)
AM_RANGE(0x5fe8, 0x5fe9) AM_DEVREAD_LEGACY("k053246", k053246_r)
AM_RANGE(0x5fea, 0x5fea) AM_READ(watchdog_reset_r)
/* what is the desired effect of overlapping these memory regions anyway? */
@@ -268,7 +269,7 @@ static ADDRESS_MAP_START( esckids_map, AS_PROGRAM, 8, vendetta_state )
AM_RANGE(0x3fd0, 0x3fd0) AM_WRITE(vendetta_5fe0_w) // Coin Counter, 052109 RMRD, 053246 OBJCHA
AM_RANGE(0x3fd2, 0x3fd2) AM_WRITE(vendetta_eeprom_w) // EEPROM, Video banking
AM_RANGE(0x3fd4, 0x3fd4) AM_READWRITE(vendetta_sound_interrupt_r, z80_irq_w) // Sound
- AM_RANGE(0x3fd6, 0x3fd7) AM_DEVREADWRITE_LEGACY("k053260", vendetta_sound_r, k053260_w) // Sound
+ AM_RANGE(0x3fd6, 0x3fd7) AM_READ(vendetta_sound_r) AM_DEVWRITE_LEGACY("k053260", k053260_w) // Sound
AM_RANGE(0x3fd8, 0x3fd9) AM_DEVREAD_LEGACY("k053246", k053246_r) // 053246 (Sprite)
AM_RANGE(0x3fda, 0x3fda) AM_WRITENOP // Not Emulated (Watchdog ???)
/* what is the desired effect of overlapping these memory regions anyway? */
diff --git a/src/mame/drivers/vertigo.c b/src/mame/drivers/vertigo.c
index b08d7355d10..ad32a913e85 100644
--- a/src/mame/drivers/vertigo.c
+++ b/src/mame/drivers/vertigo.c
@@ -27,8 +27,8 @@
*
*************************************/
-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); }
+READ16_MEMBER(vertigo_state::vertigo_pit8254_lsb_r){ device_t * device = machine().device("pit8254"); return pit8253_r( device, offset ); }
+WRITE16_MEMBER(vertigo_state::vertigo_pit8254_lsb_w){ device_t * device = machine().device("pit8254"); if (ACCESSING_BITS_0_7) pit8253_w(device, offset, data); }
static ADDRESS_MAP_START( vertigo_map, AS_PROGRAM, 16, vertigo_state )
AM_RANGE(0x000000, 0x000007) AM_ROM
@@ -42,7 +42,7 @@ static ADDRESS_MAP_START( vertigo_map, AS_PROGRAM, 16, vertigo_state )
AM_RANGE(0x004050, 0x00405f) AM_RAM_WRITE(vertigo_audio_w) AM_MIRROR(0x001000)
AM_RANGE(0x004060, 0x00406f) AM_WRITE(vertigo_motor_w) AM_MIRROR(0x001000)
AM_RANGE(0x004070, 0x00407f) AM_WRITE(vertigo_wsot_w) AM_MIRROR(0x001000)
- AM_RANGE(0x006000, 0x006007) AM_DEVREADWRITE_LEGACY("pit8254", vertigo_pit8254_lsb_r, vertigo_pit8254_lsb_w)
+ AM_RANGE(0x006000, 0x006007) AM_READWRITE(vertigo_pit8254_lsb_r, vertigo_pit8254_lsb_w)
AM_RANGE(0x007000, 0x0073ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x800000, 0x81ffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/videopin.c b/src/mame/drivers/videopin.c
index 62d2670f56d..b8315d8e555 100644
--- a/src/mame/drivers/videopin.c
+++ b/src/mame/drivers/videopin.c
@@ -18,8 +18,8 @@
-static WRITE8_DEVICE_HANDLER(videopin_out1_w);
-static WRITE8_DEVICE_HANDLER(videopin_out2_w);
+
+
static void update_plunger(running_machine &machine)
@@ -63,14 +63,14 @@ static TIMER_CALLBACK( interrupt_callback )
static MACHINE_RESET( videopin )
{
- device_t *discrete = machine.device("discrete");
+ videopin_state *state = machine.driver_data<videopin_state>();
machine.scheduler().timer_set(machine.primary_screen->time_until_pos(32), FUNC(interrupt_callback), 32);
/* both output latches are cleared on reset */
- videopin_out1_w(discrete, 0, 0);
- videopin_out2_w(discrete, 0, 0);
+ state->videopin_out1_w(*machine.memory().first_space(), 0, 0);
+ state->videopin_out2_w(*machine.memory().first_space(), 0, 0);
}
@@ -136,9 +136,9 @@ WRITE8_MEMBER(videopin_state::videopin_led_w)
}
-static WRITE8_DEVICE_HANDLER( videopin_out1_w )
+WRITE8_MEMBER(videopin_state::videopin_out1_w)
{
- videopin_state *state = device->machine().driver_data<videopin_state>();
+ device_t *device = machine().device("discrete");
/* D0 => OCTAVE0 */
/* D1 => OCTACE1 */
/* D2 => OCTAVE2 */
@@ -148,20 +148,21 @@ static WRITE8_DEVICE_HANDLER( videopin_out1_w )
/* D6 => NOT USED */
/* D7 => NOT USED */
- state->m_mask = ~data & 0x10;
+ m_mask = ~data & 0x10;
- if (state->m_mask)
- cputag_set_input_line(device->machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
+ if (m_mask)
+ cputag_set_input_line(machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
- coin_lockout_global_w(device->machine(), ~data & 0x08);
+ coin_lockout_global_w(machine(), ~data & 0x08);
/* Convert octave data to divide value and write to sound */
discrete_sound_w(device, VIDEOPIN_OCTAVE_DATA, (0x01 << (~data & 0x07)) & 0xfe);
}
-static WRITE8_DEVICE_HANDLER( videopin_out2_w )
+WRITE8_MEMBER(videopin_state::videopin_out2_w)
{
+ device_t *device = machine().device("discrete");
/* D0 => VOL0 */
/* D1 => VOL1 */
/* D2 => VOL2 */
@@ -171,7 +172,7 @@ static WRITE8_DEVICE_HANDLER( videopin_out2_w )
/* D6 => BELL */
/* D7 => ATTRACT */
- coin_counter_w(device->machine(), 0, data & 0x10);
+ coin_counter_w(machine(), 0, data & 0x10);
discrete_sound_w(device, VIDEOPIN_BELL_EN, data & 0x40); // Bell
discrete_sound_w(device, VIDEOPIN_BONG_EN, data & 0x20); // Bong
@@ -180,8 +181,9 @@ static WRITE8_DEVICE_HANDLER( videopin_out2_w )
}
-static WRITE8_DEVICE_HANDLER( videopin_note_dvsr_w )
+WRITE8_MEMBER(videopin_state::videopin_note_dvsr_w)
{
+ device_t *device = machine().device("discrete");
/* note data */
discrete_sound_w(device, VIDEOPIN_NOTE_DATA, ~data &0xff);
}
@@ -196,12 +198,12 @@ static WRITE8_DEVICE_HANDLER( videopin_note_dvsr_w )
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_SHARE("video_ram")
- AM_RANGE(0x0800, 0x0800) AM_READ(videopin_misc_r) AM_DEVWRITE_LEGACY("discrete", videopin_note_dvsr_w)
+ AM_RANGE(0x0800, 0x0800) AM_READ(videopin_misc_r) AM_WRITE(videopin_note_dvsr_w)
AM_RANGE(0x0801, 0x0801) AM_WRITE(videopin_led_w)
AM_RANGE(0x0802, 0x0802) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x0804, 0x0804) AM_WRITE(videopin_ball_w)
- AM_RANGE(0x0805, 0x0805) AM_DEVWRITE_LEGACY("discrete", videopin_out1_w)
- AM_RANGE(0x0806, 0x0806) AM_DEVWRITE_LEGACY("discrete", videopin_out2_w)
+ AM_RANGE(0x0805, 0x0805) AM_WRITE(videopin_out1_w)
+ AM_RANGE(0x0806, 0x0806) AM_WRITE(videopin_out2_w)
AM_RANGE(0x1000, 0x1000) AM_READ_PORT("IN0")
AM_RANGE(0x1800, 0x1800) AM_READ_PORT("DSW")
AM_RANGE(0x2000, 0x3fff) AM_ROM
diff --git a/src/mame/drivers/vsnes.c b/src/mame/drivers/vsnes.c
index 6ae87c34e0c..653169fc6e4 100644
--- a/src/mame/drivers/vsnes.c
+++ b/src/mame/drivers/vsnes.c
@@ -193,30 +193,50 @@ WRITE8_MEMBER(vsnes_state::vsnes_coin_counter_1_w)
}
/******************************************************************************/
-static READ8_DEVICE_HANDLER( psg_4015_r )
+READ8_MEMBER(vsnes_state::psg1_4015_r)
{
+ device_t *device = machine().device("nes1");
return nes_psg_r(device, 0x15);
}
-static WRITE8_DEVICE_HANDLER( psg_4015_w )
+WRITE8_MEMBER(vsnes_state::psg1_4015_w)
{
+ device_t *device = machine().device("nes1");
nes_psg_w(device, 0x15, data);
}
-static WRITE8_DEVICE_HANDLER( psg_4017_w )
+WRITE8_MEMBER(vsnes_state::psg1_4017_w)
{
+ device_t *device = machine().device("nes1");
nes_psg_w(device, 0x17, data);
}
+READ8_MEMBER(vsnes_state::psg2_4015_r)
+{
+ device_t *device = machine().device("nes2");
+ return nes_psg_r(device, 0x15);
+}
+
+WRITE8_MEMBER(vsnes_state::psg2_4015_w)
+{
+ device_t *device = machine().device("nes2");
+ nes_psg_w(device, 0x15, data);
+}
+
+WRITE8_MEMBER(vsnes_state::psg2_4017_w)
+{
+ device_t *device = machine().device("nes2");
+ nes_psg_w(device, 0x17, data);
+}
static ADDRESS_MAP_START( vsnes_cpu1_map, AS_PROGRAM, 8, vsnes_state )
AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x1800) AM_RAM AM_SHARE("work_ram")
AM_RANGE(0x2000, 0x3fff) AM_DEVREADWRITE("ppu1", ppu2c0x_device, read, write)
AM_RANGE(0x4011, 0x4011) AM_DEVWRITE_LEGACY("dac1", dac_w)
AM_RANGE(0x4000, 0x4013) AM_DEVREADWRITE_LEGACY("nes1", nes_psg_r, nes_psg_w)
AM_RANGE(0x4014, 0x4014) AM_WRITE(sprite_dma_0_w)
- AM_RANGE(0x4015, 0x4015) AM_DEVREADWRITE_LEGACY("nes1", psg_4015_r, psg_4015_w) /* PSG status / first control register */
+ AM_RANGE(0x4015, 0x4015) AM_READWRITE(psg1_4015_r, psg1_4015_w) /* PSG status / first control register */
AM_RANGE(0x4016, 0x4016) AM_READWRITE(vsnes_in0_r, vsnes_in0_w)
- AM_RANGE(0x4017, 0x4017) AM_READ(vsnes_in1_r) AM_DEVWRITE_LEGACY("nes1", psg_4017_w) /* IN1 - input port 2 / PSG second control register */
+ AM_RANGE(0x4017, 0x4017) AM_READ(vsnes_in1_r) AM_WRITE(psg1_4017_w) /* IN1 - input port 2 / PSG second control register */
AM_RANGE(0x4020, 0x4020) AM_READWRITE(vsnes_coin_counter_r, vsnes_coin_counter_w)
AM_RANGE(0x6000, 0x7fff) AM_RAMBANK("extra1")
AM_RANGE(0x8000, 0xffff) AM_ROM
@@ -228,9 +248,9 @@ static ADDRESS_MAP_START( vsnes_cpu2_map, AS_PROGRAM, 8, vsnes_state )
AM_RANGE(0x4011, 0x4011) AM_DEVWRITE_LEGACY("dac2", dac_w)
AM_RANGE(0x4000, 0x4013) AM_DEVREADWRITE_LEGACY("nes2", nes_psg_r, nes_psg_w)
AM_RANGE(0x4014, 0x4014) AM_WRITE(sprite_dma_1_w)
- AM_RANGE(0x4015, 0x4015) AM_DEVREADWRITE_LEGACY("nes2", psg_4015_r, psg_4015_w) /* PSG status / first control register */
+ AM_RANGE(0x4015, 0x4015) AM_READWRITE(psg2_4015_r, psg2_4015_w) /* PSG status / first control register */
AM_RANGE(0x4016, 0x4016) AM_READWRITE(vsnes_in0_1_r, vsnes_in0_1_w)
- AM_RANGE(0x4017, 0x4017) AM_READ(vsnes_in1_1_r) AM_DEVWRITE_LEGACY("nes2", psg_4017_w) /* IN1 - input port 2 / PSG second control register */
+ AM_RANGE(0x4017, 0x4017) AM_READ(vsnes_in1_1_r) AM_WRITE(psg2_4017_w) /* IN1 - input port 2 / PSG second control register */
AM_RANGE(0x4020, 0x4020) AM_WRITE(vsnes_coin_counter_1_w)
AM_RANGE(0x6000, 0x7fff) AM_RAMBANK("extra2")
AM_RANGE(0x8000, 0xffff) AM_ROM
diff --git a/src/mame/drivers/warpwarp.c b/src/mame/drivers/warpwarp.c
index 3db32767751..cad6a5532c6 100644
--- a/src/mame/drivers/warpwarp.c
+++ b/src/mame/drivers/warpwarp.c
@@ -235,19 +235,18 @@ READ8_MEMBER(warpwarp_state::warpwarp_sw_r)
}
/* Read Dipswitches */
-static READ8_DEVICE_HANDLER( warpwarp_dsw1_r )
+READ8_MEMBER(warpwarp_state::warpwarp_dsw1_r)
{
- return (device->machine().root_device().ioport("DSW1")->read() >> (offset & 7)) & 1;
+ return (machine().root_device().ioport("DSW1")->read() >> (offset & 7)) & 1;
}
/* Read mux Controller Inputs */
-static READ8_DEVICE_HANDLER( warpwarp_vol_r )
+READ8_MEMBER(warpwarp_state::warpwarp_vol_r)
{
- warpwarp_state *state = device->machine().driver_data<warpwarp_state>();
int res;
- res = state->ioport((state->flip_screen() & 1) ? "VOLIN2" : "VOLIN1")->read();
- if (state->m_handle_joystick)
+ res = ioport((flip_screen() & 1) ? "VOLIN2" : "VOLIN1")->read();
+ if (m_handle_joystick)
{
if (res & 1) return 0x0f;
if (res & 2) return 0x3f;
@@ -335,8 +334,8 @@ static ADDRESS_MAP_START( bombbee_map, AS_PROGRAM, 8, warpwarp_state )
AM_RANGE(0x4000, 0x47ff) AM_RAM_WRITE(warpwarp_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x4800, 0x4fff) AM_ROM AM_REGION("gfx1", 0)
AM_RANGE(0x6000, 0x600f) AM_READWRITE(warpwarp_sw_r, warpwarp_out0_w)
- AM_RANGE(0x6010, 0x601f) AM_DEVREADWRITE_LEGACY("warpwarp", warpwarp_vol_r, warpwarp_music1_w)
- AM_RANGE(0x6020, 0x602f) AM_DEVREADWRITE_LEGACY("warpwarp", warpwarp_dsw1_r, warpwarp_music2_w)
+ AM_RANGE(0x6010, 0x601f) AM_READ(warpwarp_vol_r) AM_DEVWRITE_LEGACY("warpwarp", warpwarp_music1_w)
+ AM_RANGE(0x6020, 0x602f) AM_READ(warpwarp_dsw1_r) AM_DEVWRITE_LEGACY("warpwarp", warpwarp_music2_w)
AM_RANGE(0x6030, 0x603f) AM_WRITE(warpwarp_out3_w)
ADDRESS_MAP_END
@@ -346,8 +345,8 @@ static ADDRESS_MAP_START( warpwarp_map, AS_PROGRAM, 8, warpwarp_state )
AM_RANGE(0x4000, 0x47ff) AM_RAM_WRITE(warpwarp_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x4800, 0x4fff) AM_ROM AM_REGION("gfx1", 0)
AM_RANGE(0xc000, 0xc00f) AM_READWRITE(warpwarp_sw_r, warpwarp_out0_w)
- AM_RANGE(0xc010, 0xc01f) AM_DEVREADWRITE_LEGACY("warpwarp", warpwarp_vol_r, warpwarp_music1_w)
- AM_RANGE(0xc020, 0xc02f) AM_DEVREADWRITE_LEGACY("warpwarp", warpwarp_dsw1_r, warpwarp_music2_w)
+ AM_RANGE(0xc010, 0xc01f) AM_READ(warpwarp_vol_r) AM_DEVWRITE_LEGACY("warpwarp", warpwarp_music1_w)
+ AM_RANGE(0xc020, 0xc02f) AM_READ(warpwarp_dsw1_r) AM_DEVWRITE_LEGACY("warpwarp", warpwarp_music2_w)
AM_RANGE(0xc030, 0xc03f) AM_WRITE(warpwarp_out3_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/wc90b.c b/src/mame/drivers/wc90b.c
index 7c4c1469d06..5e002b93494 100644
--- a/src/mame/drivers/wc90b.c
+++ b/src/mame/drivers/wc90b.c
@@ -120,14 +120,15 @@ WRITE8_MEMBER(wc90b_state::wc90b_sound_command_w)
cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
}
-static WRITE8_DEVICE_HANDLER( adpcm_control_w )
+WRITE8_MEMBER(wc90b_state::adpcm_control_w)
{
+ device_t *device = machine().device("msm");
int bankaddress;
- UINT8 *ROM = device->machine().root_device().memregion("audiocpu")->base();
+ UINT8 *ROM = machine().root_device().memregion("audiocpu")->base();
/* the code writes either 2 or 3 in the bottom two bits */
bankaddress = 0x10000 + (data & 0x01) * 0x4000;
- device->machine().root_device().membank("bank3")->set_base(&ROM[bankaddress]);
+ machine().root_device().membank("bank3")->set_base(&ROM[bankaddress]);
msm5205_reset_w(device,data & 0x08);
}
@@ -174,7 +175,7 @@ ADDRESS_MAP_END
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_LEGACY("msm", adpcm_control_w)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(adpcm_control_w)
AM_RANGE(0xe400, 0xe400) AM_WRITE(adpcm_data_w)
AM_RANGE(0xe800, 0xe801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0xf000, 0xf7ff) AM_RAM
diff --git a/src/mame/drivers/wecleman.c b/src/mame/drivers/wecleman.c
index 1406813aeb2..4fd3ae77c12 100644
--- a/src/mame/drivers/wecleman.c
+++ b/src/mame/drivers/wecleman.c
@@ -615,8 +615,9 @@ WRITE8_MEMBER(wecleman_state::multiply_w)
** sample playing ends when a byte with bit 7 set is reached **/
-static WRITE8_DEVICE_HANDLER( wecleman_K00723216_bank_w )
+WRITE8_MEMBER(wecleman_state::wecleman_K00723216_bank_w)
{
+ device_t *device = machine().device("konami");
k007232_set_bank(device, 0, ~data&1 ); //* (wecleman062gre)
}
@@ -630,7 +631,7 @@ static ADDRESS_MAP_START( wecleman_sound_map, AS_PROGRAM, 8, wecleman_state )
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) // From main CPU
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("konami", k007232_r, k007232_w) // K007232 (Reading offset 5/b triggers the sample)
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
- AM_RANGE(0xf000, 0xf000) AM_DEVWRITE_LEGACY("konami", wecleman_K00723216_bank_w) // Samples banking
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(wecleman_K00723216_bank_w) // Samples banking
ADDRESS_MAP_END
@@ -703,21 +704,47 @@ WRITE8_MEMBER(wecleman_state::hotchase_sound_control_w)
/* Read and write handlers for one K007232 chip:
even and odd register are mapped swapped */
-static READ8_DEVICE_HANDLER( hotchase_k007232_r )
+READ8_MEMBER(wecleman_state::hotchase_1_k007232_r)
{
+ device_t *device = machine().device("konami1");
return k007232_r(device, offset ^ 1);
}
-static WRITE8_DEVICE_HANDLER( hotchase_k007232_w )
+WRITE8_MEMBER(wecleman_state::hotchase_1_k007232_w)
{
+ device_t *device = machine().device("konami1");
+ k007232_w(device, offset ^ 1, data);
+}
+
+READ8_MEMBER(wecleman_state::hotchase_2_k007232_r)
+{
+ device_t *device = machine().device("konami2");
+ return k007232_r(device, offset ^ 1);
+}
+
+WRITE8_MEMBER(wecleman_state::hotchase_2_k007232_w)
+{
+ device_t *device = machine().device("konami2");
+ k007232_w(device, offset ^ 1, data);
+}
+
+READ8_MEMBER(wecleman_state::hotchase_3_k007232_r)
+{
+ device_t *device = machine().device("konami3");
+ return k007232_r(device, offset ^ 1);
+}
+
+WRITE8_MEMBER(wecleman_state::hotchase_3_k007232_w)
+{
+ device_t *device = machine().device("konami3");
k007232_w(device, offset ^ 1, data);
}
static ADDRESS_MAP_START( hotchase_sound_map, AS_PROGRAM, 8, wecleman_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
- AM_RANGE(0x1000, 0x100d) AM_DEVREADWRITE_LEGACY("konami1", hotchase_k007232_r, hotchase_k007232_w) // 3 x K007232
- AM_RANGE(0x2000, 0x200d) AM_DEVREADWRITE_LEGACY("konami2", hotchase_k007232_r, hotchase_k007232_w)
- AM_RANGE(0x3000, 0x300d) AM_DEVREADWRITE_LEGACY("konami3", hotchase_k007232_r, hotchase_k007232_w)
+ AM_RANGE(0x1000, 0x100d) AM_READWRITE(hotchase_1_k007232_r, hotchase_1_k007232_w) // 3 x K007232
+ AM_RANGE(0x2000, 0x200d) AM_READWRITE(hotchase_2_k007232_r, hotchase_2_k007232_w)
+ AM_RANGE(0x3000, 0x300d) AM_READWRITE(hotchase_3_k007232_r, hotchase_3_k007232_w)
AM_RANGE(0x4000, 0x4007) AM_WRITE(hotchase_sound_control_w) // Sound volume, banking, etc.
AM_RANGE(0x5000, 0x5000) AM_WRITENOP // ? (written with 0 on IRQ, 1 on FIRQ)
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_byte_r) // From main CPU (Read on IRQ)
diff --git a/src/mame/drivers/wolfpack.c b/src/mame/drivers/wolfpack.c
index 2d8ab9200db..f009b304298 100644
--- a/src/mame/drivers/wolfpack.c
+++ b/src/mame/drivers/wolfpack.c
@@ -75,15 +75,17 @@ WRITE8_MEMBER(wolfpack_state::wolfpack_lamp_flash_w){}
WRITE8_MEMBER(wolfpack_state::wolfpack_warning_light_w){}
WRITE8_MEMBER(wolfpack_state::wolfpack_audamp_w){}
-static WRITE8_DEVICE_HANDLER( wolfpack_word_w )
+WRITE8_MEMBER(wolfpack_state::wolfpack_word_w)
{
+ device_t *device = machine().device("speech");
/* latch word from bus into temp register, and place on s14001a input bus */
/* there is no real need for a temp register at all, since the bus 'register' acts as one */
s14001a_reg_w(device, data & 0x1f); /* SA0 (IN5) is pulled low according to the schematic, so its 0x1f and not 0x3f as one would expect */
}
-static WRITE8_DEVICE_HANDLER( wolfpack_start_speech_w )
+WRITE8_MEMBER(wolfpack_state::wolfpack_start_speech_w)
{
+ device_t *device = machine().device("speech");
s14001a_set_volume(device, 15); /* hack, should be executed just once during game init, or defaulted to this in the s14001a core */
s14001a_rst_w(device, data&1);
}
@@ -116,7 +118,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, wolfpack_state )
AM_RANGE(0x2001, 0x2001) AM_WRITE(wolfpack_sonar_ping_w)
AM_RANGE(0x2002, 0x2002) AM_WRITE(wolfpack_sirlat_w)
AM_RANGE(0x2003, 0x2003) AM_WRITE(wolfpack_pt_sound_w)
- AM_RANGE(0x2004, 0x2004) AM_DEVWRITE_LEGACY("speech", wolfpack_start_speech_w)
+ AM_RANGE(0x2004, 0x2004) AM_WRITE(wolfpack_start_speech_w)
AM_RANGE(0x2005, 0x2005) AM_WRITE(wolfpack_launch_torpedo_w)
AM_RANGE(0x2006, 0x2006) AM_WRITE(wolfpack_low_explo_w)
AM_RANGE(0x2007, 0x2007) AM_WRITE(wolfpack_screw_cont_w)
@@ -131,7 +133,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, wolfpack_state )
AM_RANGE(0x3000, 0x3000) AM_WRITE(wolfpack_audamp_w)
AM_RANGE(0x3001, 0x3001) AM_WRITE(wolfpack_pt_horz_w)
AM_RANGE(0x3003, 0x3003) AM_WRITE(wolfpack_pt_pic_w)
- AM_RANGE(0x3004, 0x3004) AM_DEVWRITE_LEGACY("speech", wolfpack_word_w)
+ AM_RANGE(0x3004, 0x3004) AM_WRITE(wolfpack_word_w)
AM_RANGE(0x3007, 0x3007) AM_WRITE(wolfpack_coldetres_w)
AM_RANGE(0x4000, 0x4000) AM_WRITE(wolfpack_ship_h_w)
AM_RANGE(0x4001, 0x4001) AM_WRITE(wolfpack_torpedo_pic_w)
diff --git a/src/mame/drivers/wwfwfest.c b/src/mame/drivers/wwfwfest.c
index a0c97a5d46d..1de898a21de 100644
--- a/src/mame/drivers/wwfwfest.c
+++ b/src/mame/drivers/wwfwfest.c
@@ -51,7 +51,7 @@
/*- in this file -*/
-static WRITE8_DEVICE_HANDLER( oki_bankswitch_w );
+
@@ -89,7 +89,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, wwfwfest_state )
AM_RANGE(0xc800, 0xc801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xd800, 0xd800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_byte_r)
- AM_RANGE(0xe800, 0xe800) AM_DEVWRITE_LEGACY("oki", oki_bankswitch_w)
+ AM_RANGE(0xe800, 0xe800) AM_WRITE(oki_bankswitch_w)
ADDRESS_MAP_END
/*******************************************************************************
@@ -156,8 +156,9 @@ WRITE16_MEMBER(wwfwfest_state::wwfwfest_scroll_write)
/*- Sound Related (from dd3) -*/
-static WRITE8_DEVICE_HANDLER( oki_bankswitch_w )
+WRITE8_MEMBER(wwfwfest_state::oki_bankswitch_w)
{
+ device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_bank_base((data & 1) * 0x40000);
}
diff --git a/src/mame/drivers/xorworld.c b/src/mame/drivers/xorworld.c
index 017ee7eb29b..3b32fd82cc8 100644
--- a/src/mame/drivers/xorworld.c
+++ b/src/mame/drivers/xorworld.c
@@ -44,22 +44,25 @@ EEPROM chip: 93C46
EEPROM read/write/control
****************************************************************/
-static WRITE16_DEVICE_HANDLER( eeprom_chip_select_w )
+WRITE16_MEMBER(xorworld_state::eeprom_chip_select_w)
{
+ device_t *device = machine().device("eeprom");
/* bit 0 is CS (active low) */
eeprom_device *eeprom = downcast<eeprom_device *>(device);
eeprom->set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE16_DEVICE_HANDLER( eeprom_serial_clock_w )
+WRITE16_MEMBER(xorworld_state::eeprom_serial_clock_w)
{
+ device_t *device = machine().device("eeprom");
/* bit 0 is SK (active high) */
eeprom_device *eeprom = downcast<eeprom_device *>(device);
eeprom->set_clock_line((data & 0x01) ? ASSERT_LINE : CLEAR_LINE);
}
-static WRITE16_DEVICE_HANDLER( eeprom_data_w )
+WRITE16_MEMBER(xorworld_state::eeprom_data_w)
{
+ device_t *device = machine().device("eeprom");
/* bit 0 is EEPROM data (DIN) */
eeprom_device *eeprom = downcast<eeprom_device *>(device);
eeprom->write_bit(data & 0x01);
@@ -82,9 +85,9 @@ static ADDRESS_MAP_START( xorworld_map, AS_PROGRAM, 16, xorworld_state )
AM_RANGE(0x600000, 0x600001) AM_READ_PORT("DSW")
AM_RANGE(0x800000, 0x800001) AM_DEVWRITE8_LEGACY("saa", saa1099_data_w, 0x00ff)
AM_RANGE(0x800002, 0x800003) AM_DEVWRITE8_LEGACY("saa", saa1099_control_w, 0x00ff)
- AM_RANGE(0xa00008, 0xa00009) AM_DEVWRITE_LEGACY("eeprom", eeprom_chip_select_w)
- AM_RANGE(0xa0000a, 0xa0000b) AM_DEVWRITE_LEGACY("eeprom", eeprom_serial_clock_w)
- AM_RANGE(0xa0000c, 0xa0000d) AM_DEVWRITE_LEGACY("eeprom", eeprom_data_w)
+ AM_RANGE(0xa00008, 0xa00009) AM_WRITE(eeprom_chip_select_w)
+ AM_RANGE(0xa0000a, 0xa0000b) AM_WRITE(eeprom_serial_clock_w)
+ AM_RANGE(0xa0000c, 0xa0000d) AM_WRITE(eeprom_data_w)
AM_RANGE(0xffc000, 0xffc7ff) AM_RAM_WRITE(xorworld_videoram16_w) AM_SHARE("videoram")
AM_RANGE(0xffc800, 0xffc87f) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xffc880, 0xffc881) AM_WRITE(xorworld_irq2_ack_w)
diff --git a/src/mame/drivers/yiear.c b/src/mame/drivers/yiear.c
index 6ba52c3a5ab..ace0db95a89 100644
--- a/src/mame/drivers/yiear.c
+++ b/src/mame/drivers/yiear.c
@@ -94,16 +94,18 @@ _________________________|___________________________
#include "includes/yiear.h"
-READ8_DEVICE_HANDLER( yiear_speech_r )
+READ8_MEMBER(yiear_state::yiear_speech_r)
{
+ device_t *device = machine().device("vlm");
if (vlm5030_bsy(device))
return 1;
else
return 0;
}
-WRITE8_DEVICE_HANDLER( yiear_VLM5030_control_w )
+WRITE8_MEMBER(yiear_state::yiear_VLM5030_control_w)
{
+ device_t *device = machine().device("vlm");
/* bit 0 is latch direction */
vlm5030_st(device, (data >> 1) & 1);
vlm5030_rst(device, (data >> 2) & 1);
@@ -128,11 +130,11 @@ static INTERRUPT_GEN( yiear_nmi_interrupt )
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, yiear_state )
- AM_RANGE(0x0000, 0x0000) AM_DEVREAD_LEGACY("vlm", yiear_speech_r)
+ AM_RANGE(0x0000, 0x0000) AM_READ(yiear_speech_r)
AM_RANGE(0x4000, 0x4000) AM_WRITE(yiear_control_w)
AM_RANGE(0x4800, 0x4800) AM_WRITE_LEGACY(konami_SN76496_latch_w)
AM_RANGE(0x4900, 0x4900) AM_DEVWRITE_LEGACY("snsnd", konami_SN76496_w)
- AM_RANGE(0x4a00, 0x4a00) AM_DEVWRITE_LEGACY("vlm", yiear_VLM5030_control_w)
+ AM_RANGE(0x4a00, 0x4a00) AM_WRITE(yiear_VLM5030_control_w)
AM_RANGE(0x4b00, 0x4b00) AM_DEVWRITE_LEGACY("vlm", vlm5030_data_w)
AM_RANGE(0x4c00, 0x4c00) AM_READ_PORT("DSW2")
AM_RANGE(0x4d00, 0x4d00) AM_READ_PORT("DSW3")
diff --git a/src/mame/drivers/yunsung8.c b/src/mame/drivers/yunsung8.c
index d0d05136ec8..13a662001a3 100644
--- a/src/mame/drivers/yunsung8.c
+++ b/src/mame/drivers/yunsung8.c
@@ -94,14 +94,15 @@ ADDRESS_MAP_END
***************************************************************************/
-static WRITE8_DEVICE_HANDLER( yunsung8_sound_bankswitch_w )
+WRITE8_MEMBER(yunsung8_state::yunsung8_sound_bankswitch_w)
{
+ device_t *device = machine().device("msm");
msm5205_reset_w(device, data & 0x20);
- device->machine().root_device().membank("bank2")->set_entry(data & 0x07);
+ machine().root_device().membank("bank2")->set_entry(data & 0x07);
if (data != (data & (~0x27)))
- logerror("%s: Bank %02X\n", device->machine().describe_context(), data);
+ logerror("%s: Bank %02X\n", machine().describe_context(), data);
}
WRITE8_MEMBER(yunsung8_state::yunsung8_adpcm_w)
@@ -116,7 +117,7 @@ WRITE8_MEMBER(yunsung8_state::yunsung8_adpcm_w)
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_LEGACY("msm", yunsung8_sound_bankswitch_w ) // ROM Bank
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(yunsung8_sound_bankswitch_w ) // ROM Bank
AM_RANGE(0xe400, 0xe400) AM_WRITE(yunsung8_adpcm_w)
AM_RANGE(0xec00, 0xec01) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0xf000, 0xf7ff) AM_RAM
diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c
index cdb1fae9097..8b6c07f92e2 100644
--- a/src/mame/drivers/zaccaria.c
+++ b/src/mame/drivers/zaccaria.c
@@ -48,25 +48,24 @@ Notes:
#include "includes/zaccaria.h"
-static WRITE8_DEVICE_HANDLER( zaccaria_dsw_sel_w )
+WRITE8_MEMBER(zaccaria_state::zaccaria_dsw_sel_w)
{
- zaccaria_state *state = device->machine().driver_data<zaccaria_state>();
switch (data & 0xf0)
{
case 0xe0:
- state->m_dsw = 0;
+ m_dsw = 0;
break;
case 0xd0:
- state->m_dsw = 1;
+ m_dsw = 1;
break;
case 0xb0:
- state->m_dsw = 2;
+ m_dsw = 2;
break;
default:
- logerror("%s: portsel = %02x\n", device->machine().describe_context(), data);
+ logerror("%s: portsel = %02x\n", machine().describe_context(), data);
break;
}
}
@@ -79,7 +78,7 @@ READ8_MEMBER(zaccaria_state::zaccaria_dsw_r)
}
-static WRITE8_DEVICE_HANDLER( ay8910_port0a_w )
+WRITE8_MEMBER(zaccaria_state::ay8910_port0a_w)
{
/* bits 0-2 go to a 74LS156 with open collector outputs
* one out of 8 Resitors is than used to form a resistor
@@ -97,62 +96,59 @@ static WRITE8_DEVICE_HANDLER( ay8910_port0a_w )
/* 150 below to scale to volume 100 */
v = (150 * table[ba]) / (4700 + table[ba]);
//printf("dac1w %02d %04d\n", ba, v);
- ay8910_set_volume(device->machine().device("ay2"), 1, v);
+ ay8910_set_volume(machine().device("ay2"), 1, v);
}
-static WRITE_LINE_DEVICE_HANDLER( zaccaria_irq0a )
+WRITE_LINE_MEMBER(zaccaria_state::zaccaria_irq0a)
{
- cputag_set_input_line(device->machine(), "audiocpu", INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE);
}
-static WRITE_LINE_DEVICE_HANDLER( zaccaria_irq0b )
+WRITE_LINE_MEMBER(zaccaria_state::zaccaria_irq0b)
{
- cputag_set_input_line(device->machine(), "audiocpu", 0, state ? ASSERT_LINE : CLEAR_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static READ8_DEVICE_HANDLER( zaccaria_port0a_r )
+READ8_MEMBER(zaccaria_state::zaccaria_port0a_r)
{
- zaccaria_state *state = device->machine().driver_data<zaccaria_state>();
- return ay8910_r(device->machine().device((state->m_active_8910 == 0) ? "ay1" : "ay2"), 0);
+ return ay8910_r(machine().device((m_active_8910 == 0) ? "ay1" : "ay2"), 0);
}
-static WRITE8_DEVICE_HANDLER( zaccaria_port0a_w )
+WRITE8_MEMBER(zaccaria_state::zaccaria_port0a_w)
{
- zaccaria_state *state = device->machine().driver_data<zaccaria_state>();
- state->m_port0a = data;
+ m_port0a = data;
}
-static WRITE8_DEVICE_HANDLER( zaccaria_port0b_w )
+WRITE8_MEMBER(zaccaria_state::zaccaria_port0b_w)
{
- zaccaria_state *state = device->machine().driver_data<zaccaria_state>();
/* bit 1 goes to 8910 #0 BDIR pin */
- if ((state->m_last_port0b & 0x02) == 0x02 && (data & 0x02) == 0x00)
+ if ((m_last_port0b & 0x02) == 0x02 && (data & 0x02) == 0x00)
{
/* bit 0 goes to the 8910 #0 BC1 pin */
- ay8910_data_address_w(device->machine().device("ay1"), state->m_last_port0b, state->m_port0a);
+ ay8910_data_address_w(machine().device("ay1"), m_last_port0b, m_port0a);
}
- else if ((state->m_last_port0b & 0x02) == 0x00 && (data & 0x02) == 0x02)
+ else if ((m_last_port0b & 0x02) == 0x00 && (data & 0x02) == 0x02)
{
/* bit 0 goes to the 8910 #0 BC1 pin */
- if (state->m_last_port0b & 0x01)
- state->m_active_8910 = 0;
+ if (m_last_port0b & 0x01)
+ m_active_8910 = 0;
}
/* bit 3 goes to 8910 #1 BDIR pin */
- if ((state->m_last_port0b & 0x08) == 0x08 && (data & 0x08) == 0x00)
+ if ((m_last_port0b & 0x08) == 0x08 && (data & 0x08) == 0x00)
{
/* bit 2 goes to the 8910 #1 BC1 pin */
- ay8910_data_address_w(device->machine().device("ay2"), state->m_last_port0b >> 2, state->m_port0a);
+ ay8910_data_address_w(machine().device("ay2"), m_last_port0b >> 2, m_port0a);
}
- else if ((state->m_last_port0b & 0x08) == 0x00 && (data & 0x08) == 0x08)
+ else if ((m_last_port0b & 0x08) == 0x00 && (data & 0x08) == 0x08)
{
/* bit 2 goes to the 8910 #1 BC1 pin */
- if (state->m_last_port0b & 0x04)
- state->m_active_8910 = 1;
+ if (m_last_port0b & 0x04)
+ m_active_8910 = 1;
}
- state->m_last_port0b = data;
+ m_last_port0b = data;
}
static INTERRUPT_GEN( zaccaria_cb1_toggle )
@@ -164,10 +160,9 @@ static INTERRUPT_GEN( zaccaria_cb1_toggle )
state->m_toggle ^= 1;
}
-static WRITE8_DEVICE_HANDLER( zaccaria_port1b_w )
+WRITE8_MEMBER(zaccaria_state::zaccaria_port1b_w)
{
- zaccaria_state *state = device->machine().driver_data<zaccaria_state>();
- device_t *tms = device->machine().device("tms");
+ device_t *tms = machine().device("tms");
// bit 0 = /RS
tms5220_rsq_w(tms, (data >> 0) & 0x01);
@@ -175,10 +170,10 @@ static WRITE8_DEVICE_HANDLER( zaccaria_port1b_w )
tms5220_wsq_w(tms, (data >> 1) & 0x01);
// bit 3 = "ACS" (goes, inverted, to input port 6 bit 3)
- state->m_acs = ~data & 0x08;
+ m_acs = ~data & 0x08;
// bit 4 = led (for testing?)
- set_led_status(device->machine(), 0,~data & 0x10);
+ set_led_status(machine(), 0,~data & 0x10);
}
@@ -195,8 +190,9 @@ WRITE8_MEMBER(zaccaria_state::sound1_command_w)
soundlatch2_byte_w(space, 0, data);
}
-static WRITE8_DEVICE_HANDLER( mc1408_data_w )
+WRITE8_MEMBER(zaccaria_state::mc1408_data_w)
{
+ device_t *device = machine().device("dac2");
dac_data_w(device, data);
}
@@ -328,7 +324,7 @@ ADDRESS_MAP_END
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("pia1", pia6821_device, read, write) AM_MIRROR(0x8F6C)
- AM_RANGE(0x1000, 0x1000) AM_DEVWRITE_LEGACY("dac2", mc1408_data_w) AM_MIRROR(0x83FF) /* MC1408 */
+ AM_RANGE(0x1000, 0x1000) AM_WRITE(mc1408_data_w) AM_MIRROR(0x83FF) /* MC1408 */
AM_RANGE(0x1400, 0x1400) AM_WRITE(sound1_command_w) AM_MIRROR(0xC3FF)
AM_RANGE(0x1800, 0x1800) AM_READ(soundlatch_byte_r) AM_MIRROR(0xC3FF)
AM_RANGE(0x2000, 0x2fff) AM_ROM AM_MIRROR(0x8000) // rom 8 with A12 low
@@ -523,7 +519,7 @@ static I8255A_INTERFACE( ppi8255_intf )
DEVCB_INPUT_PORT("P2"), /* Port B read */
DEVCB_NULL, /* Port B write */
DEVCB_INPUT_PORT("SYSTEM"), /* Port C read */
- DEVCB_HANDLER(zaccaria_dsw_sel_w) /* Port C write */
+ DEVCB_DRIVER_MEMBER(zaccaria_state,zaccaria_dsw_sel_w) /* Port C write */
};
static const ay8910_interface ay8910_config =
@@ -532,24 +528,24 @@ static const ay8910_interface ay8910_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(driver_device, soundlatch2_byte_r),
- DEVCB_HANDLER(ay8910_port0a_w),
+ DEVCB_DRIVER_MEMBER(zaccaria_state,ay8910_port0a_w),
DEVCB_NULL
};
static const pia6821_interface pia_0_config =
{
- DEVCB_HANDLER(zaccaria_port0a_r), /* port A in */
+ DEVCB_DRIVER_MEMBER(zaccaria_state,zaccaria_port0a_r), /* port A in */
DEVCB_NULL, /* port B in */
DEVCB_NULL, /* line CA1 in */
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
- DEVCB_HANDLER(zaccaria_port0a_w), /* port A out */
- DEVCB_HANDLER(zaccaria_port0b_w), /* port B out */
+ DEVCB_DRIVER_MEMBER(zaccaria_state,zaccaria_port0a_w), /* port A out */
+ DEVCB_DRIVER_MEMBER(zaccaria_state,zaccaria_port0b_w), /* port B out */
DEVCB_NULL, /* line CA2 out */
DEVCB_NULL, /* port CB2 out */
- DEVCB_LINE(zaccaria_irq0a), /* IRQA */
- DEVCB_LINE(zaccaria_irq0b) /* IRQB */
+ DEVCB_DRIVER_LINE_MEMBER(zaccaria_state,zaccaria_irq0a), /* IRQA */
+ DEVCB_DRIVER_LINE_MEMBER(zaccaria_state,zaccaria_irq0b) /* IRQB */
};
static const pia6821_interface pia_1_config =
@@ -561,7 +557,7 @@ static const pia6821_interface pia_1_config =
DEVCB_NULL, /* line CA2 in */ // tms5220_readyq_r, "
DEVCB_NULL, /* line CB2 in */
DEVCB_DEVICE_HANDLER("tms", tms5220_data_w), /* port A out */
- DEVCB_HANDLER(zaccaria_port1b_w), /* port B out */
+ DEVCB_DRIVER_MEMBER(zaccaria_state,zaccaria_port1b_w), /* port B out */
DEVCB_NULL, /* line CA2 out */
DEVCB_NULL, /* port CB2 out */
DEVCB_NULL, /* IRQA */
diff --git a/src/mame/includes/40love.h b/src/mame/includes/40love.h
index ece1fd0692d..8d9e497a1f2 100644
--- a/src/mame/includes/40love.h
+++ b/src/mame/includes/40love.h
@@ -79,6 +79,11 @@ public:
DECLARE_READ8_MEMBER(fortyl_bg_videoram_r);
DECLARE_WRITE8_MEMBER(fortyl_bg_colorram_w);
DECLARE_READ8_MEMBER(fortyl_bg_colorram_r);
+ DECLARE_WRITE8_MEMBER(pix1_mcu_w);
+ DECLARE_WRITE8_MEMBER(sound_control_0_w);
+ DECLARE_WRITE8_MEMBER(sound_control_1_w);
+ DECLARE_WRITE8_MEMBER(sound_control_2_w);
+ DECLARE_WRITE8_MEMBER(sound_control_3_w);
};
diff --git a/src/mame/includes/4enraya.h b/src/mame/includes/4enraya.h
index 1be6ad59417..f596257f3f0 100644
--- a/src/mame/includes/4enraya.h
+++ b/src/mame/includes/4enraya.h
@@ -26,6 +26,7 @@ public:
DECLARE_READ8_MEMBER(fenraya_custom_map_r);
DECLARE_WRITE8_MEMBER(fenraya_custom_map_w);
DECLARE_WRITE8_MEMBER(fenraya_videoram_w);
+ DECLARE_WRITE8_MEMBER(sound_control_w);
};
diff --git a/src/mame/includes/aerofgt.h b/src/mame/includes/aerofgt.h
index 820739987b5..b005e5af51a 100644
--- a/src/mame/includes/aerofgt.h
+++ b/src/mame/includes/aerofgt.h
@@ -66,6 +66,8 @@ public:
DECLARE_WRITE16_MEMBER(aerofgt_bg2scrolly_w);
DECLARE_WRITE16_MEMBER(pspikes_palette_bank_w);
DECLARE_WRITE16_MEMBER(wbbc97_bitmap_enable_w);
+ DECLARE_WRITE16_MEMBER(pspikesb_oki_banking_w);
+ DECLARE_WRITE16_MEMBER(aerfboo2_okim6295_banking_w);
};
diff --git a/src/mame/includes/ajax.h b/src/mame/includes/ajax.h
index 1cbcab0b0a6..5a8c3b6b7b7 100644
--- a/src/mame/includes/ajax.h
+++ b/src/mame/includes/ajax.h
@@ -32,6 +32,7 @@ public:
DECLARE_WRITE8_MEMBER(ajax_bankswitch_2_w);
DECLARE_WRITE8_MEMBER(ajax_bankswitch_w);
DECLARE_WRITE8_MEMBER(ajax_lamps_w);
+ DECLARE_WRITE8_MEMBER(k007232_extvol_w);
};
diff --git a/src/mame/includes/aliens.h b/src/mame/includes/aliens.h
index 8fe6cf14390..df453025547 100644
--- a/src/mame/includes/aliens.h
+++ b/src/mame/includes/aliens.h
@@ -34,6 +34,7 @@ public:
DECLARE_WRITE8_MEMBER(aliens_sh_irqtrigger_w);
DECLARE_READ8_MEMBER(k052109_051960_r);
DECLARE_WRITE8_MEMBER(k052109_051960_w);
+ DECLARE_WRITE8_MEMBER(aliens_snd_bankswitch_w);
};
/*----------- defined in video/aliens.c -----------*/
diff --git a/src/mame/includes/amspdwy.h b/src/mame/includes/amspdwy.h
index e9dcd5d6408..4f777aa1ab9 100644
--- a/src/mame/includes/amspdwy.h
+++ b/src/mame/includes/amspdwy.h
@@ -37,6 +37,7 @@ public:
DECLARE_WRITE8_MEMBER(amspdwy_flipscreen_w);
DECLARE_WRITE8_MEMBER(amspdwy_videoram_w);
DECLARE_WRITE8_MEMBER(amspdwy_colorram_w);
+ DECLARE_READ8_MEMBER(amspdwy_sound_r);
};
diff --git a/src/mame/includes/arabian.h b/src/mame/includes/arabian.h
index 22c105027a1..031c9d83cce 100644
--- a/src/mame/includes/arabian.h
+++ b/src/mame/includes/arabian.h
@@ -36,6 +36,8 @@ public:
DECLARE_WRITE8_MEMBER(mcu_port_p_w);
DECLARE_WRITE8_MEMBER(arabian_blitter_w);
DECLARE_WRITE8_MEMBER(arabian_videoram_w);
+ DECLARE_WRITE8_MEMBER(ay8910_porta_w);
+ DECLARE_WRITE8_MEMBER(ay8910_portb_w);
};
diff --git a/src/mame/includes/ashnojoe.h b/src/mame/includes/ashnojoe.h
index 89efe7ca10e..d5ea3c010af 100644
--- a/src/mame/includes/ashnojoe.h
+++ b/src/mame/includes/ashnojoe.h
@@ -60,6 +60,8 @@ public:
DECLARE_WRITE16_MEMBER(ashnojoe_tileram7_w);
DECLARE_WRITE16_MEMBER(joe_tilemaps_xscroll_w);
DECLARE_WRITE16_MEMBER(joe_tilemaps_yscroll_w);
+ DECLARE_WRITE8_MEMBER(ym2203_write_a);
+ DECLARE_WRITE8_MEMBER(ym2203_write_b);
};
diff --git a/src/mame/includes/asterix.h b/src/mame/includes/asterix.h
index 6d29a4633b0..1199610a56e 100644
--- a/src/mame/includes/asterix.h
+++ b/src/mame/includes/asterix.h
@@ -38,6 +38,7 @@ public:
DECLARE_WRITE16_MEMBER(sound_irq_w);
DECLARE_WRITE16_MEMBER(protection_w);
DECLARE_WRITE16_MEMBER(asterix_spritebank_w);
+ DECLARE_READ8_MEMBER(asterix_sound_r);
};
diff --git a/src/mame/includes/asuka.h b/src/mame/includes/asuka.h
index ef5f3cd9b84..730d24185f0 100644
--- a/src/mame/includes/asuka.h
+++ b/src/mame/includes/asuka.h
@@ -39,6 +39,9 @@ public:
DECLARE_READ16_MEMBER(cadash_share_r);
DECLARE_WRITE16_MEMBER(cadash_share_w);
DECLARE_WRITE16_MEMBER(asuka_spritectrl_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_2151_w);
+ DECLARE_WRITE8_MEMBER(asuka_msm5205_start_w);
+ DECLARE_WRITE8_MEMBER(asuka_msm5205_stop_w);
};
diff --git a/src/mame/includes/atarisy1.h b/src/mame/includes/atarisy1.h
index 14a7baab772..067e733990c 100644
--- a/src/mame/includes/atarisy1.h
+++ b/src/mame/includes/atarisy1.h
@@ -49,6 +49,10 @@ public:
DECLARE_READ16_MEMBER(port4_r);
DECLARE_READ8_MEMBER(switch_6502_r);
DECLARE_WRITE8_MEMBER(led_w);
+ DECLARE_WRITE8_MEMBER(via_pa_w);
+ DECLARE_READ8_MEMBER(via_pa_r);
+ DECLARE_WRITE8_MEMBER(via_pb_w);
+ DECLARE_READ8_MEMBER(via_pb_r);
};
diff --git a/src/mame/includes/bagman.h b/src/mame/includes/bagman.h
index 7f686c46889..970e088a2c7 100644
--- a/src/mame/includes/bagman.h
+++ b/src/mame/includes/bagman.h
@@ -39,6 +39,9 @@ public:
DECLARE_WRITE8_MEMBER(bagman_videoram_w);
DECLARE_WRITE8_MEMBER(bagman_colorram_w);
DECLARE_WRITE8_MEMBER(bagman_flipscreen_w);
+ DECLARE_WRITE8_MEMBER(bagman_ls259_w);
+ DECLARE_READ8_MEMBER(dial_input_p1_r);
+ DECLARE_READ8_MEMBER(dial_input_p2_r);
};
diff --git a/src/mame/includes/battlera.h b/src/mame/includes/battlera.h
index b6ff36ba161..ffb57322d2b 100644
--- a/src/mame/includes/battlera.h
+++ b/src/mame/includes/battlera.h
@@ -38,6 +38,7 @@ public:
DECLARE_WRITE8_MEMBER(HuC6270_register_w);
DECLARE_READ8_MEMBER(HuC6270_data_r);
DECLARE_WRITE8_MEMBER(HuC6270_data_w);
+ DECLARE_WRITE8_MEMBER(battlera_adpcm_reset_w);
};
diff --git a/src/mame/includes/bking.h b/src/mame/includes/bking.h
index 840d4435a1b..c795882cee8 100644
--- a/src/mame/includes/bking.h
+++ b/src/mame/includes/bking.h
@@ -77,6 +77,8 @@ public:
DECLARE_READ8_MEMBER(bking_input_port_5_r);
DECLARE_READ8_MEMBER(bking_input_port_6_r);
DECLARE_READ8_MEMBER(bking_pos_r);
+ DECLARE_WRITE8_MEMBER(unk_w);
+ DECLARE_WRITE8_MEMBER(port_b_w);
};
diff --git a/src/mame/includes/bladestl.h b/src/mame/includes/bladestl.h
index 9519e87062e..94b00f0529f 100644
--- a/src/mame/includes/bladestl.h
+++ b/src/mame/includes/bladestl.h
@@ -28,6 +28,9 @@ public:
DECLARE_READ8_MEMBER(trackball_r);
DECLARE_WRITE8_MEMBER(bladestl_bankswitch_w);
DECLARE_WRITE8_MEMBER(bladestl_sh_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(bladestl_port_B_w);
+ DECLARE_READ8_MEMBER(bladestl_speech_busy_r);
+ DECLARE_WRITE8_MEMBER(bladestl_speech_ctrl_w);
};
diff --git a/src/mame/includes/blueprnt.h b/src/mame/includes/blueprnt.h
index 925ca68af61..33b42de87c2 100644
--- a/src/mame/includes/blueprnt.h
+++ b/src/mame/includes/blueprnt.h
@@ -35,6 +35,7 @@ public:
DECLARE_WRITE8_MEMBER(blueprnt_videoram_w);
DECLARE_WRITE8_MEMBER(blueprnt_colorram_w);
DECLARE_WRITE8_MEMBER(blueprnt_flipscreen_w);
+ DECLARE_WRITE8_MEMBER(dipsw_w);
};
diff --git a/src/mame/includes/bogeyman.h b/src/mame/includes/bogeyman.h
index 87e78d13013..438b3d5194e 100644
--- a/src/mame/includes/bogeyman.h
+++ b/src/mame/includes/bogeyman.h
@@ -38,6 +38,7 @@ public:
DECLARE_WRITE8_MEMBER(bogeyman_videoram2_w);
DECLARE_WRITE8_MEMBER(bogeyman_colorram2_w);
DECLARE_WRITE8_MEMBER(bogeyman_paletteram_w);
+ DECLARE_WRITE8_MEMBER(bogeyman_colbank_w);
};
diff --git a/src/mame/includes/boogwing.h b/src/mame/includes/boogwing.h
index 649f453b7f4..7abc786324a 100644
--- a/src/mame/includes/boogwing.h
+++ b/src/mame/includes/boogwing.h
@@ -44,6 +44,7 @@ public:
required_shared_ptr<UINT16> m_pf3_rowscroll;
required_shared_ptr<UINT16> m_pf4_rowscroll;
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
};
diff --git a/src/mame/includes/btime.h b/src/mame/includes/btime.h
index 5e54516a056..246244762f3 100644
--- a/src/mame/includes/btime.h
+++ b/src/mame/includes/btime.h
@@ -79,6 +79,7 @@ public:
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted_irq_hi);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted_irq_lo);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted_nmi_lo);
+ DECLARE_WRITE8_MEMBER(ay_audio_nmi_enable_w);
};
diff --git a/src/mame/includes/buggychl.h b/src/mame/includes/buggychl.h
index c4555267578..fd4ab79e990 100644
--- a/src/mame/includes/buggychl.h
+++ b/src/mame/includes/buggychl.h
@@ -47,6 +47,10 @@ public:
DECLARE_WRITE8_MEMBER(buggychl_sprite_lookup_w);
DECLARE_WRITE8_MEMBER(buggychl_ctrl_w);
DECLARE_WRITE8_MEMBER(buggychl_bg_scrollx_w);
+ DECLARE_WRITE8_MEMBER(port_a_0_w);
+ DECLARE_WRITE8_MEMBER(port_b_0_w);
+ DECLARE_WRITE8_MEMBER(port_a_1_w);
+ DECLARE_WRITE8_MEMBER(port_b_1_w);
};
diff --git a/src/mame/includes/bzone.h b/src/mame/includes/bzone.h
index b52774f0f19..7f0f652acfd 100644
--- a/src/mame/includes/bzone.h
+++ b/src/mame/includes/bzone.h
@@ -21,6 +21,8 @@ public:
DECLARE_READ8_MEMBER(analog_data_r);
DECLARE_WRITE8_MEMBER(analog_select_w);
DECLARE_CUSTOM_INPUT_MEMBER(clock_r);
+ DECLARE_READ8_MEMBER(redbaron_joy_r);
+ DECLARE_WRITE8_MEMBER(redbaron_joysound_w);
};
diff --git a/src/mame/includes/cabal.h b/src/mame/includes/cabal.h
index f18140c217f..42ab223cf5e 100644
--- a/src/mame/includes/cabal.h
+++ b/src/mame/includes/cabal.h
@@ -26,6 +26,8 @@ public:
DECLARE_WRITE16_MEMBER(cabal_flipscreen_w);
DECLARE_WRITE16_MEMBER(cabal_background_videoram16_w);
DECLARE_WRITE16_MEMBER(cabal_text_videoram16_w);
+ DECLARE_WRITE8_MEMBER(cabalbl_1_adpcm_w);
+ DECLARE_WRITE8_MEMBER(cabalbl_2_adpcm_w);
};
diff --git a/src/mame/includes/calomega.h b/src/mame/includes/calomega.h
index 38c8ac04998..0f434b3e6a1 100644
--- a/src/mame/includes/calomega.h
+++ b/src/mame/includes/calomega.h
@@ -15,6 +15,27 @@ public:
tilemap_t *m_bg_tilemap;
DECLARE_WRITE8_MEMBER(calomega_videoram_w);
DECLARE_WRITE8_MEMBER(calomega_colorram_w);
+ DECLARE_WRITE_LINE_MEMBER(tx_rx_clk);
+ DECLARE_READ8_MEMBER(s903_mux_port_r);
+ DECLARE_WRITE8_MEMBER(s903_mux_w);
+ DECLARE_READ8_MEMBER(s905_mux_port_r);
+ DECLARE_WRITE8_MEMBER(s905_mux_w);
+ DECLARE_READ8_MEMBER(pia0_ain_r);
+ DECLARE_READ8_MEMBER(pia0_bin_r);
+ DECLARE_WRITE8_MEMBER(pia0_aout_w);
+ DECLARE_WRITE8_MEMBER(pia0_bout_w);
+ DECLARE_WRITE8_MEMBER(pia0_ca2_w);
+ DECLARE_READ8_MEMBER(pia1_ain_r);
+ DECLARE_READ8_MEMBER(pia1_bin_r);
+ DECLARE_WRITE8_MEMBER(pia1_aout_w);
+ DECLARE_WRITE8_MEMBER(pia1_bout_w);
+ DECLARE_WRITE8_MEMBER(ay_aout_w);
+ DECLARE_WRITE8_MEMBER(ay_bout_w);
+ DECLARE_WRITE8_MEMBER(lamps_903a_w);
+ DECLARE_WRITE8_MEMBER(lamps_903b_w);
+ DECLARE_WRITE8_MEMBER(lamps_905_w);
+ DECLARE_READ_LINE_MEMBER(acia_rx_r);
+ DECLARE_WRITE_LINE_MEMBER(acia_tx_w);
};
diff --git a/src/mame/includes/cave.h b/src/mame/includes/cave.h
index b9dfaba4f5b..20127ac058f 100644
--- a/src/mame/includes/cave.h
+++ b/src/mame/includes/cave.h
@@ -156,6 +156,14 @@ public:
DECLARE_WRITE16_MEMBER(cave_vram_3_8x8_w);
DECLARE_CUSTOM_INPUT_MEMBER(korokoro_hopper_r);
DECLARE_CUSTOM_INPUT_MEMBER(tjumpman_hopper_r);
+ DECLARE_WRITE16_MEMBER(cave_eeprom_msb_w);
+ DECLARE_WRITE16_MEMBER(sailormn_eeprom_msb_w);
+ DECLARE_WRITE16_MEMBER(hotdogst_eeprom_msb_w);
+ DECLARE_WRITE16_MEMBER(cave_eeprom_lsb_w);
+ DECLARE_WRITE16_MEMBER(metmqstr_eeprom_msb_w);
+ DECLARE_WRITE16_MEMBER(korokoro_eeprom_msb_w);
+ DECLARE_READ16_MEMBER(pwrinst2_eeprom_r);
+ DECLARE_WRITE16_MEMBER(tjumpman_eeprom_lsb_w);
};
/*----------- defined in video/cave.c -----------*/
diff --git a/src/mame/includes/cchasm.h b/src/mame/includes/cchasm.h
index b9126b89f51..59b8e3d683e 100644
--- a/src/mame/includes/cchasm.h
+++ b/src/mame/includes/cchasm.h
@@ -30,6 +30,7 @@ public:
DECLARE_WRITE16_MEMBER(cchasm_io_w);
DECLARE_READ16_MEMBER(cchasm_io_r);
INPUT_CHANGED_MEMBER(cchasm_set_coin_flag);
+ DECLARE_WRITE_LINE_MEMBER(cchasm_6840_irq);
};
diff --git a/src/mame/includes/cd32.h b/src/mame/includes/cd32.h
index 3cdb8a87c44..53706c3ef89 100644
--- a/src/mame/includes/cd32.h
+++ b/src/mame/includes/cd32.h
@@ -27,6 +27,9 @@ public:
int m_oldstate[2];
DECLARE_CUSTOM_INPUT_MEMBER(cubo_input);
DECLARE_WRITE32_MEMBER(aga_overlay_w);
+ DECLARE_WRITE8_MEMBER(cd32_cia_0_porta_w);
+ DECLARE_READ8_MEMBER(cd32_cia_0_portb_r);
+ DECLARE_WRITE8_MEMBER(cd32_cia_0_portb_w);
};
/*----------- defined in machine/cd32.c -----------*/
diff --git a/src/mame/includes/centiped.h b/src/mame/includes/centiped.h
index 2d566655a86..3f468d46874 100644
--- a/src/mame/includes/centiped.h
+++ b/src/mame/includes/centiped.h
@@ -46,6 +46,9 @@ public:
DECLARE_WRITE8_MEMBER(centiped_paletteram_w);
DECLARE_WRITE8_MEMBER(milliped_paletteram_w);
DECLARE_WRITE8_MEMBER(mazeinv_paletteram_w);
+ DECLARE_READ8_MEMBER(caterplr_rand_r);
+ DECLARE_WRITE8_MEMBER(caterplr_AY8910_w);
+ DECLARE_READ8_MEMBER(caterplr_AY8910_r);
};
diff --git a/src/mame/includes/chaknpop.h b/src/mame/includes/chaknpop.h
index 74630ef6f81..dae1cb66dac 100644
--- a/src/mame/includes/chaknpop.h
+++ b/src/mame/includes/chaknpop.h
@@ -45,6 +45,8 @@ public:
DECLARE_WRITE8_MEMBER(chaknpop_gfxmode_w);
DECLARE_WRITE8_MEMBER(chaknpop_txram_w);
DECLARE_WRITE8_MEMBER(chaknpop_attrram_w);
+ DECLARE_WRITE8_MEMBER(unknown_port_1_w);
+ DECLARE_WRITE8_MEMBER(unknown_port_2_w);
};
diff --git a/src/mame/includes/champbas.h b/src/mame/includes/champbas.h
index 92a9929bbad..d3ade93ce5e 100644
--- a/src/mame/includes/champbas.h
+++ b/src/mame/includes/champbas.h
@@ -46,6 +46,9 @@ public:
DECLARE_WRITE8_MEMBER(champbas_palette_bank_w);
DECLARE_WRITE8_MEMBER(champbas_flipscreen_w);
DECLARE_CUSTOM_INPUT_MEMBER(champbas_watchdog_bit2);
+ DECLARE_WRITE8_MEMBER(champbas_dac_w);
+ DECLARE_WRITE8_MEMBER(champbas_dac1_w);
+ DECLARE_WRITE8_MEMBER(champbas_dac2_w);
};
diff --git a/src/mame/includes/chqflag.h b/src/mame/includes/chqflag.h
index 97333e22e45..b706f2d0d76 100644
--- a/src/mame/includes/chqflag.h
+++ b/src/mame/includes/chqflag.h
@@ -39,6 +39,7 @@ public:
DECLARE_READ8_MEMBER(analog_read_r);
DECLARE_WRITE8_MEMBER(chqflag_sh_irqtrigger_w);
DECLARE_WRITE8_MEMBER(k007232_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(k007232_extvolume_w);
};
/*----------- defined in video/chqflag.c -----------*/
diff --git a/src/mame/includes/cischeat.h b/src/mame/includes/cischeat.h
index bd29e157863..2ba3859201d 100644
--- a/src/mame/includes/cischeat.h
+++ b/src/mame/includes/cischeat.h
@@ -67,6 +67,8 @@ public:
DECLARE_WRITE16_MEMBER(f1gpstr2_vregs_w);
DECLARE_WRITE16_MEMBER(scudhamm_vregs_w);
void cischeat_set_vreg_flag(int which, int data);
+ DECLARE_WRITE16_MEMBER(cischeat_soundbank_1_w);
+ DECLARE_WRITE16_MEMBER(cischeat_soundbank_2_w);
};
diff --git a/src/mame/includes/cninja.h b/src/mame/includes/cninja.h
index 929eb595116..e7d13325fcc 100644
--- a/src/mame/includes/cninja.h
+++ b/src/mame/includes/cninja.h
@@ -57,6 +57,7 @@ public:
DECLARE_READ16_MEMBER(robocop2_prot_r);
DECLARE_WRITE16_MEMBER(cninja_pf12_control_w);
DECLARE_WRITE16_MEMBER(cninja_pf34_control_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
};
/*----------- defined in video/cninja.c -----------*/
diff --git a/src/mame/includes/combatsc.h b/src/mame/includes/combatsc.h
index a3f11a03007..f3949c86766 100644
--- a/src/mame/includes/combatsc.h
+++ b/src/mame/includes/combatsc.h
@@ -60,6 +60,12 @@ public:
DECLARE_WRITE8_MEMBER(combatsc_pf_control_w);
DECLARE_READ8_MEMBER(combatsc_scrollram_r);
DECLARE_WRITE8_MEMBER(combatsc_scrollram_w);
+ DECLARE_READ8_MEMBER(combatsc_busy_r);
+ DECLARE_WRITE8_MEMBER(combatsc_play_w);
+ DECLARE_WRITE8_MEMBER(combatsc_voice_reset_w);
+ DECLARE_WRITE8_MEMBER(combatsc_portA_w);
+ DECLARE_READ8_MEMBER(combatsc_ym2203_r);
+ DECLARE_WRITE8_MEMBER(combatscb_dac_w);
};
diff --git a/src/mame/includes/compgolf.h b/src/mame/includes/compgolf.h
index f6f76647ed3..11cf1901f23 100644
--- a/src/mame/includes/compgolf.h
+++ b/src/mame/includes/compgolf.h
@@ -31,6 +31,8 @@ public:
DECLARE_WRITE8_MEMBER(compgolf_ctrl_w);
DECLARE_WRITE8_MEMBER(compgolf_video_w);
DECLARE_WRITE8_MEMBER(compgolf_back_w);
+ DECLARE_WRITE8_MEMBER(compgolf_scrollx_lo_w);
+ DECLARE_WRITE8_MEMBER(compgolf_scrolly_lo_w);
};
diff --git a/src/mame/includes/coolpool.h b/src/mame/includes/coolpool.h
index af48e822716..9a9c7c5e28e 100644
--- a/src/mame/includes/coolpool.h
+++ b/src/mame/includes/coolpool.h
@@ -52,4 +52,5 @@ public:
DECLARE_READ16_MEMBER(dsp_rom_r);
DECLARE_WRITE16_MEMBER(dsp_romaddr_w);
DECLARE_READ16_MEMBER(coolpool_input_r);
+ DECLARE_WRITE16_MEMBER(dsp_dac_w);
};
diff --git a/src/mame/includes/cps1.h b/src/mame/includes/cps1.h
index 7c1bc4b5c41..fddc94232b8 100644
--- a/src/mame/includes/cps1.h
+++ b/src/mame/includes/cps1.h
@@ -172,6 +172,7 @@ public:
DECLARE_READ16_MEMBER(cps2_objram2_r);
DECLARE_WRITE16_MEMBER(cps2_objram1_w);
DECLARE_WRITE16_MEMBER(cps2_objram2_w);
+ DECLARE_WRITE8_MEMBER(cps1_oki_pin7_w);
};
/*----------- defined in drivers/cps1.c -----------*/
diff --git a/src/mame/includes/crgolf.h b/src/mame/includes/crgolf.h
index 9a2f59de306..da33b6064e6 100644
--- a/src/mame/includes/crgolf.h
+++ b/src/mame/includes/crgolf.h
@@ -48,6 +48,7 @@ public:
DECLARE_READ8_MEMBER(sound_to_main_r);
DECLARE_WRITE8_MEMBER(crgolf_videoram_w);
DECLARE_READ8_MEMBER(crgolf_videoram_r);
+ DECLARE_WRITE8_MEMBER(crgolfhi_sample_w);
};
/*----------- defined in video/crgolf.c -----------*/
diff --git a/src/mame/includes/crimfght.h b/src/mame/includes/crimfght.h
index e02e06561ec..4776dad294d 100644
--- a/src/mame/includes/crimfght.h
+++ b/src/mame/includes/crimfght.h
@@ -27,6 +27,7 @@ public:
DECLARE_WRITE8_MEMBER(crimfght_sh_irqtrigger_w);
DECLARE_READ8_MEMBER(k052109_051960_r);
DECLARE_WRITE8_MEMBER(k052109_051960_w);
+ DECLARE_WRITE8_MEMBER(crimfght_snd_bankswitch_w);
};
/*----------- defined in video/crimfght.c -----------*/
diff --git a/src/mame/includes/cvs.h b/src/mame/includes/cvs.h
index 1e89ed3c9c0..aef1f1bb28f 100644
--- a/src/mame/includes/cvs.h
+++ b/src/mame/includes/cvs.h
@@ -89,6 +89,11 @@ public:
DECLARE_READ8_MEMBER(cvs_collision_r);
DECLARE_READ8_MEMBER(cvs_collision_clear);
DECLARE_WRITE8_MEMBER(cvs_scroll_w);
+ DECLARE_READ8_MEMBER(tms_clock_r);
+ DECLARE_WRITE8_MEMBER(cvs_4_bit_dac_data_w);
+ DECLARE_WRITE8_MEMBER(cvs_unknown_w);
+ DECLARE_WRITE8_MEMBER(cvs_tms5110_ctl_w);
+ DECLARE_WRITE8_MEMBER(cvs_tms5110_pdc_w);
};
diff --git a/src/mame/includes/darius.h b/src/mame/includes/darius.h
index f5410effcef..7e51309024c 100644
--- a/src/mame/includes/darius.h
+++ b/src/mame/includes/darius.h
@@ -80,6 +80,11 @@ public:
DECLARE_WRITE8_MEMBER(adpcm_nmi_disable);
DECLARE_WRITE8_MEMBER(adpcm_nmi_enable);
DECLARE_WRITE16_MEMBER(darius_fg_layer_w);
+ DECLARE_WRITE8_MEMBER(darius_write_portA0);
+ DECLARE_WRITE8_MEMBER(darius_write_portA1);
+ DECLARE_WRITE8_MEMBER(darius_write_portB0);
+ DECLARE_WRITE8_MEMBER(darius_write_portB1);
+ DECLARE_WRITE8_MEMBER(adpcm_data_w);
};
diff --git a/src/mame/includes/dassault.h b/src/mame/includes/dassault.h
index a9e6e46c63a..bfc7ae5f17d 100644
--- a/src/mame/includes/dassault.h
+++ b/src/mame/includes/dassault.h
@@ -55,6 +55,7 @@ public:
DECLARE_WRITE16_MEMBER(dassault_irq_w);
DECLARE_WRITE16_MEMBER(shared_ram_w);
DECLARE_READ16_MEMBER(shared_ram_r);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
};
diff --git a/src/mame/includes/dbz.h b/src/mame/includes/dbz.h
index 200c805f202..8ccc55e5f8b 100644
--- a/src/mame/includes/dbz.h
+++ b/src/mame/includes/dbz.h
@@ -41,6 +41,7 @@ public:
DECLARE_WRITE16_MEMBER(dbz_sound_cause_nmi);
DECLARE_WRITE16_MEMBER(dbz_bg2_videoram_w);
DECLARE_WRITE16_MEMBER(dbz_bg1_videoram_w);
+ DECLARE_WRITE_LINE_MEMBER(dbz_irq2_ack_w);
};
diff --git a/src/mame/includes/ddragon3.h b/src/mame/includes/ddragon3.h
index 870cae32400..ab1c3e25d74 100644
--- a/src/mame/includes/ddragon3.h
+++ b/src/mame/includes/ddragon3.h
@@ -41,6 +41,7 @@ public:
DECLARE_READ16_MEMBER(ddragon3_scroll_r);
DECLARE_WRITE16_MEMBER(ddragon3_bg_videoram_w);
DECLARE_WRITE16_MEMBER(ddragon3_fg_videoram_w);
+ DECLARE_WRITE8_MEMBER(oki_bankswitch_w);
};
diff --git a/src/mame/includes/ddribble.h b/src/mame/includes/ddribble.h
index b675068bf46..a3ff9ef3049 100644
--- a/src/mame/includes/ddribble.h
+++ b/src/mame/includes/ddribble.h
@@ -50,6 +50,8 @@ public:
DECLARE_WRITE8_MEMBER(K005885_1_w);
DECLARE_WRITE8_MEMBER(ddribble_fg_videoram_w);
DECLARE_WRITE8_MEMBER(ddribble_bg_videoram_w);
+ DECLARE_READ8_MEMBER(ddribble_vlm5030_busy_r);
+ DECLARE_WRITE8_MEMBER(ddribble_vlm5030_ctrl_w);
};
/*----------- defined in video/ddribble.c -----------*/
diff --git a/src/mame/includes/dec8.h b/src/mame/includes/dec8.h
index 3cdcb7cb426..3b02b32b019 100644
--- a/src/mame/includes/dec8.h
+++ b/src/mame/includes/dec8.h
@@ -87,6 +87,7 @@ public:
DECLARE_WRITE8_MEMBER(lastmisn_scrollx_w);
DECLARE_WRITE8_MEMBER(lastmisn_scrolly_w);
DECLARE_WRITE8_MEMBER(gondo_scroll_w);
+ DECLARE_READ8_MEMBER(csilver_adpcm_reset_r);
};
/*----------- defined in video/dec8.c -----------*/
diff --git a/src/mame/includes/deco32.h b/src/mame/includes/deco32.h
index a364afb640f..140945d9945 100644
--- a/src/mame/includes/deco32.h
+++ b/src/mame/includes/deco32.h
@@ -94,6 +94,9 @@ public:
DECLARE_WRITE32_MEMBER(deco32_nonbuffered_palette_w);
DECLARE_WRITE32_MEMBER(deco32_buffered_palette_w);
DECLARE_WRITE32_MEMBER(deco32_palette_dma_w);
+ DECLARE_READ32_MEMBER(dragngun_eeprom_r);
+ DECLARE_WRITE32_MEMBER(dragngun_eeprom_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
};
class dragngun_state : public deco32_state
diff --git a/src/mame/includes/deco_mlc.h b/src/mame/includes/deco_mlc.h
index 3fe56bac996..5f9ae2378dd 100644
--- a/src/mame/includes/deco_mlc.h
+++ b/src/mame/includes/deco_mlc.h
@@ -31,6 +31,7 @@ public:
DECLARE_READ32_MEMBER(mlc_vram_r);
DECLARE_READ32_MEMBER(stadhr96_prot_146_r);
DECLARE_READ32_MEMBER(avengrgs_speedup_r);
+ DECLARE_WRITE32_MEMBER(avengrs_eprom_w);
};
diff --git a/src/mame/includes/deniam.h b/src/mame/includes/deniam.h
index acf3c2e1f4c..a3965eecd0e 100644
--- a/src/mame/includes/deniam.h
+++ b/src/mame/includes/deniam.h
@@ -49,6 +49,8 @@ public:
DECLARE_WRITE16_MEMBER(deniam_palette_w);
DECLARE_READ16_MEMBER(deniam_coinctrl_r);
DECLARE_WRITE16_MEMBER(deniam_coinctrl_w);
+ DECLARE_WRITE8_MEMBER(deniam16b_oki_rom_bank_w);
+ DECLARE_WRITE16_MEMBER(deniam16c_oki_rom_bank_w);
};
diff --git a/src/mame/includes/djmain.h b/src/mame/includes/djmain.h
index 38908a310ac..86b35b84da0 100644
--- a/src/mame/includes/djmain.h
+++ b/src/mame/includes/djmain.h
@@ -34,6 +34,10 @@ public:
DECLARE_WRITE32_MEMBER(unknown590000_w);
DECLARE_WRITE32_MEMBER(unknown802000_w);
DECLARE_WRITE32_MEMBER(unknownc02000_w);
+ DECLARE_READ32_MEMBER(ide_std_r);
+ DECLARE_WRITE32_MEMBER(ide_std_w);
+ DECLARE_READ32_MEMBER(ide_alt_r);
+ DECLARE_WRITE32_MEMBER(ide_alt_w);
};
diff --git a/src/mame/includes/dkong.h b/src/mame/includes/dkong.h
index 06d9333267e..85700c467a6 100644
--- a/src/mame/includes/dkong.h
+++ b/src/mame/includes/dkong.h
@@ -226,6 +226,12 @@ public:
DECLARE_WRITE8_MEMBER(dkong_spritebank_w);
DECLARE_WRITE8_MEMBER(dkong_voice_w);
DECLARE_WRITE8_MEMBER(dkong_audio_irq_w);
+ DECLARE_READ8_MEMBER(p8257_ctl_r);
+ DECLARE_WRITE8_MEMBER(p8257_ctl_w);
+ DECLARE_WRITE8_MEMBER(p8257_drq_w);
+ DECLARE_WRITE8_MEMBER(dkong_z80dma_rdy_w);
+ DECLARE_READ8_MEMBER(braze_eeprom_r);
+ DECLARE_WRITE8_MEMBER(braze_eeprom_w);
};
/*----------- defined in video/dkong.c -----------*/
diff --git a/src/mame/includes/docastle.h b/src/mame/includes/docastle.h
index 6e51f60016e..946a7410b05 100644
--- a/src/mame/includes/docastle.h
+++ b/src/mame/includes/docastle.h
@@ -39,6 +39,8 @@ public:
DECLARE_READ8_MEMBER(docastle_flipscreen_on_r);
DECLARE_WRITE8_MEMBER(docastle_flipscreen_off_w);
DECLARE_WRITE8_MEMBER(docastle_flipscreen_on_w);
+ DECLARE_READ8_MEMBER(idsoccer_adpcm_status_r);
+ DECLARE_WRITE8_MEMBER(idsoccer_adpcm_w);
};
diff --git a/src/mame/includes/dooyong.h b/src/mame/includes/dooyong.h
index c8087ce4c76..898586db0e3 100644
--- a/src/mame/includes/dooyong.h
+++ b/src/mame/includes/dooyong.h
@@ -62,6 +62,7 @@ public:
DECLARE_WRITE8_MEMBER(paletteram_flytiger_w);
DECLARE_WRITE8_MEMBER(flytiger_ctrl_w);
DECLARE_WRITE16_MEMBER(rshark_ctrl_w);
+ DECLARE_READ8_MEMBER(unk_r);
};
diff --git a/src/mame/includes/dribling.h b/src/mame/includes/dribling.h
index 63d7ec6a84f..79250c0d332 100644
--- a/src/mame/includes/dribling.h
+++ b/src/mame/includes/dribling.h
@@ -37,6 +37,12 @@ public:
DECLARE_READ8_MEMBER(ioread);
DECLARE_WRITE8_MEMBER(iowrite);
DECLARE_WRITE8_MEMBER(dribling_colorram_w);
+ DECLARE_READ8_MEMBER(dsr_r);
+ DECLARE_READ8_MEMBER(input_mux0_r);
+ DECLARE_WRITE8_MEMBER(misc_w);
+ DECLARE_WRITE8_MEMBER(sound_w);
+ DECLARE_WRITE8_MEMBER(pb_w);
+ DECLARE_WRITE8_MEMBER(shr_w);
};
diff --git a/src/mame/includes/dynax.h b/src/mame/includes/dynax.h
index 39555be2207..09d8a8b7b77 100644
--- a/src/mame/includes/dynax.h
+++ b/src/mame/includes/dynax.h
@@ -409,6 +409,12 @@ public:
DECLARE_WRITE8_MEMBER(daimyojn_palette_sel_w);
DECLARE_WRITE8_MEMBER(daimyojn_blitter_data_palette_w);
DECLARE_READ8_MEMBER(daimyojn_year_hack_r);
+ DECLARE_WRITE8_MEMBER(adpcm_reset_w);
+ DECLARE_WRITE8_MEMBER(htengoku_dsw_w);
+ DECLARE_READ8_MEMBER(htengoku_dsw_r);
+ DECLARE_WRITE8_MEMBER(tenkai_dswsel_w);
+ DECLARE_READ8_MEMBER(tenkai_dsw_r);
+ DECLARE_WRITE_LINE_MEMBER(tenkai_rtc_irq);
};
//----------- defined in drivers/dynax.c -----------
diff --git a/src/mame/includes/epos.h b/src/mame/includes/epos.h
index 765034b8031..fb1cd10b001 100644
--- a/src/mame/includes/epos.h
+++ b/src/mame/includes/epos.h
@@ -21,6 +21,7 @@ public:
int m_counter;
DECLARE_WRITE8_MEMBER(dealer_decrypt_rom);
DECLARE_WRITE8_MEMBER(epos_port_1_w);
+ DECLARE_WRITE8_MEMBER(write_prtc);
};
diff --git a/src/mame/includes/equites.h b/src/mame/includes/equites.h
index c176ae5fd18..955d0b4af20 100644
--- a/src/mame/includes/equites.h
+++ b/src/mame/includes/equites.h
@@ -85,6 +85,8 @@ public:
DECLARE_WRITE16_MEMBER(splndrbt_bg_scrollx_w);
DECLARE_WRITE16_MEMBER(splndrbt_bg_scrolly_w);
DECLARE_CUSTOM_INPUT_MEMBER(gekisou_unknown_status);
+ DECLARE_WRITE8_MEMBER(equites_8910porta_w);
+ DECLARE_WRITE8_MEMBER(equites_8910portb_w);
};
diff --git a/src/mame/includes/esripsys.h b/src/mame/includes/esripsys.h
index 7f34bcd3254..4522b2978ac 100644
--- a/src/mame/includes/esripsys.h
+++ b/src/mame/includes/esripsys.h
@@ -88,6 +88,8 @@ public:
DECLARE_WRITE8_MEMBER(esripsys_bg_intensity_w);
DECLARE_INPUT_CHANGED_MEMBER(keypad_interrupt);
DECLARE_INPUT_CHANGED_MEMBER(coin_interrupt);
+ DECLARE_WRITE_LINE_MEMBER(ptm_irq);
+ DECLARE_WRITE8_MEMBER(esripsys_dac_w);
};
diff --git a/src/mame/includes/exerion.h b/src/mame/includes/exerion.h
index ff1d24524f3..0950ae22e04 100644
--- a/src/mame/includes/exerion.h
+++ b/src/mame/includes/exerion.h
@@ -53,6 +53,8 @@ public:
DECLARE_READ8_MEMBER(exerion_video_timing_r);
DECLARE_CUSTOM_INPUT_MEMBER(exerion_controls_r);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
+ DECLARE_READ8_MEMBER(exerion_porta_r);
+ DECLARE_WRITE8_MEMBER(exerion_portb_w);
};
diff --git a/src/mame/includes/exprraid.h b/src/mame/includes/exprraid.h
index 70418050844..6f73f752a34 100644
--- a/src/mame/includes/exprraid.h
+++ b/src/mame/includes/exprraid.h
@@ -43,6 +43,7 @@ public:
DECLARE_WRITE8_MEMBER(exprraid_scrolly_w);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted_deco16);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted_nmi);
+ DECLARE_WRITE_LINE_MEMBER(irqhandler);
};
diff --git a/src/mame/includes/exterm.h b/src/mame/includes/exterm.h
index dc5839a397c..d85c80235fb 100644
--- a/src/mame/includes/exterm.h
+++ b/src/mame/includes/exterm.h
@@ -32,6 +32,8 @@ public:
DECLARE_READ8_MEMBER(sound_slave_latch_r);
DECLARE_READ8_MEMBER(sound_nmi_to_slave_r);
DECLARE_WRITE8_MEMBER(sound_control_w);
+ DECLARE_WRITE8_MEMBER(ym2151_data_latch_w);
+ DECLARE_WRITE8_MEMBER(sound_slave_dac_w);
};
diff --git a/src/mame/includes/fastlane.h b/src/mame/includes/fastlane.h
index c251b79f55f..8923ad2efad 100644
--- a/src/mame/includes/fastlane.h
+++ b/src/mame/includes/fastlane.h
@@ -39,6 +39,10 @@ public:
DECLARE_WRITE8_MEMBER(fastlane_bankswitch_w);
DECLARE_WRITE8_MEMBER(fastlane_vram1_w);
DECLARE_WRITE8_MEMBER(fastlane_vram2_w);
+ DECLARE_READ8_MEMBER(fastlane_k1_k007232_r);
+ DECLARE_WRITE8_MEMBER(fastlane_k1_k007232_w);
+ DECLARE_READ8_MEMBER(fastlane_k2_k007232_r);
+ DECLARE_WRITE8_MEMBER(fastlane_k2_k007232_w);
};
diff --git a/src/mame/includes/flstory.h b/src/mame/includes/flstory.h
index e3545d5c498..f6614b27f5f 100644
--- a/src/mame/includes/flstory.h
+++ b/src/mame/includes/flstory.h
@@ -100,6 +100,10 @@ public:
DECLARE_WRITE8_MEMBER(victnine_gfxctrl_w);
DECLARE_WRITE8_MEMBER(flstory_scrlram_w);
DECLARE_CUSTOM_INPUT_MEMBER(victnine_mcu_status_bit01_r);
+ DECLARE_WRITE8_MEMBER(sound_control_0_w);
+ DECLARE_WRITE8_MEMBER(sound_control_1_w);
+ DECLARE_WRITE8_MEMBER(sound_control_2_w);
+ DECLARE_WRITE8_MEMBER(sound_control_3_w);
};
diff --git a/src/mame/includes/foodf.h b/src/mame/includes/foodf.h
index 9242105682b..6fa01c56ba2 100644
--- a/src/mame/includes/foodf.h
+++ b/src/mame/includes/foodf.h
@@ -30,6 +30,7 @@ public:
DECLARE_WRITE16_MEMBER(analog_w);
DECLARE_WRITE16_MEMBER(foodf_paletteram_w);
void foodf_set_flip(int flip);
+ DECLARE_READ8_MEMBER(pot_r);
};
diff --git a/src/mame/includes/freekick.h b/src/mame/includes/freekick.h
index 3dc998dc835..0635435d1a0 100644
--- a/src/mame/includes/freekick.h
+++ b/src/mame/includes/freekick.h
@@ -35,6 +35,9 @@ public:
DECLARE_READ8_MEMBER(freekick_ff_r);
DECLARE_WRITE8_MEMBER(freekick_ff_w);
DECLARE_WRITE8_MEMBER(freek_videoram_w);
+ DECLARE_WRITE8_MEMBER(snd_rom_addr_l_w);
+ DECLARE_WRITE8_MEMBER(snd_rom_addr_h_w);
+ DECLARE_READ8_MEMBER(snd_rom_r);
};
diff --git a/src/mame/includes/fromance.h b/src/mame/includes/fromance.h
index 6f8956d8455..5b0c23b6133 100644
--- a/src/mame/includes/fromance.h
+++ b/src/mame/includes/fromance.h
@@ -69,6 +69,7 @@ public:
DECLARE_WRITE8_MEMBER(fromance_scroll_w);
DECLARE_WRITE8_MEMBER(fromance_crtc_data_w);
DECLARE_WRITE8_MEMBER(fromance_crtc_register_w);
+ DECLARE_WRITE8_MEMBER(fromance_adpcm_reset_w);
};
diff --git a/src/mame/includes/funworld.h b/src/mame/includes/funworld.h
index 290d72aa6f4..7180832b83a 100644
--- a/src/mame/includes/funworld.h
+++ b/src/mame/includes/funworld.h
@@ -13,6 +13,11 @@ public:
DECLARE_WRITE8_MEMBER(question_bank_w);
DECLARE_WRITE8_MEMBER(funworld_videoram_w);
DECLARE_WRITE8_MEMBER(funworld_colorram_w);
+ DECLARE_WRITE8_MEMBER(funworld_lamp_a_w);
+ DECLARE_WRITE8_MEMBER(funworld_lamp_b_w);
+ DECLARE_WRITE8_MEMBER(pia1_ca2_w);
+ DECLARE_READ8_MEMBER(funquiz_ay8910_a_r);
+ DECLARE_READ8_MEMBER(funquiz_ay8910_b_r);
};
diff --git a/src/mame/includes/funybubl.h b/src/mame/includes/funybubl.h
index 04eefa94037..9739cf1dbf9 100644
--- a/src/mame/includes/funybubl.h
+++ b/src/mame/includes/funybubl.h
@@ -19,6 +19,7 @@ public:
DECLARE_WRITE8_MEMBER(funybubl_cpurombank_w);
DECLARE_WRITE8_MEMBER(funybubl_soundcommand_w);
DECLARE_WRITE8_MEMBER(funybubl_paldatawrite);
+ DECLARE_WRITE8_MEMBER(funybubl_oki_bank_sw);
};
diff --git a/src/mame/includes/fuukifg2.h b/src/mame/includes/fuukifg2.h
index 5dea3030095..e5f3a1ea0d2 100644
--- a/src/mame/includes/fuukifg2.h
+++ b/src/mame/includes/fuukifg2.h
@@ -35,6 +35,7 @@ public:
DECLARE_WRITE16_MEMBER(fuuki16_vram_1_w);
DECLARE_WRITE16_MEMBER(fuuki16_vram_2_w);
DECLARE_WRITE16_MEMBER(fuuki16_vram_3_w);
+ DECLARE_WRITE8_MEMBER(fuuki16_oki_banking_w);
};
diff --git a/src/mame/includes/gaelco3d.h b/src/mame/includes/gaelco3d.h
index ffa4bb28370..bfbac067aa4 100644
--- a/src/mame/includes/gaelco3d.h
+++ b/src/mame/includes/gaelco3d.h
@@ -103,6 +103,12 @@ public:
DECLARE_WRITE16_MEMBER(gaelco3d_paletteram_w);
DECLARE_WRITE32_MEMBER(gaelco3d_paletteram_020_w);
DECLARE_CUSTOM_INPUT_MEMBER(analog_bit_r);
+ DECLARE_WRITE_LINE_MEMBER(ser_irq);
+ DECLARE_READ16_MEMBER(eeprom_data_r);
+ DECLARE_READ32_MEMBER(eeprom_data32_r);
+ DECLARE_WRITE16_MEMBER(eeprom_data_w);
+ DECLARE_WRITE16_MEMBER(eeprom_clock_w);
+ DECLARE_WRITE16_MEMBER(eeprom_cs_w);
};
diff --git a/src/mame/includes/galaga.h b/src/mame/includes/galaga.h
index f4bd81861ad..6a20d379d1e 100644
--- a/src/mame/includes/galaga.h
+++ b/src/mame/includes/galaga.h
@@ -43,6 +43,11 @@ public:
DECLARE_WRITE8_MEMBER(bosco_latch_w);
DECLARE_WRITE8_MEMBER(galaga_videoram_w);
DECLARE_WRITE8_MEMBER(gatsbee_bank_w);
+ DECLARE_WRITE8_MEMBER(out_0);
+ DECLARE_WRITE8_MEMBER(out_1);
+ DECLARE_READ8_MEMBER(namco_52xx_rom_r);
+ DECLARE_READ8_MEMBER(namco_52xx_si_r);
+ DECLARE_READ8_MEMBER(custom_mod_r);
};
class xevious_state : public galaga_state
diff --git a/src/mame/includes/galaxian.h b/src/mame/includes/galaxian.h
index 5806c903734..a099b070bca 100644
--- a/src/mame/includes/galaxian.h
+++ b/src/mame/includes/galaxian.h
@@ -155,6 +155,24 @@ public:
DECLARE_WRITE8_MEMBER(artic_gfxbank_w);
DECLARE_READ8_MEMBER(tenspot_dsw_read);
DECLARE_INPUT_CHANGED_MEMBER(gmgalax_game_changed);
+ DECLARE_WRITE8_MEMBER(konami_sound_control_w);
+ DECLARE_READ8_MEMBER(konami_sound_timer_r);
+ DECLARE_WRITE8_MEMBER(konami_portc_0_w);
+ DECLARE_WRITE8_MEMBER(konami_portc_1_w);
+ DECLARE_WRITE8_MEMBER(theend_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(scramble_protection_w);
+ DECLARE_READ8_MEMBER(scramble_protection_r);
+ DECLARE_READ8_MEMBER(explorer_sound_latch_r);
+ DECLARE_WRITE8_MEMBER(sfx_sample_control_w);
+ DECLARE_WRITE8_MEMBER(monsterz_porta_1_w);
+ DECLARE_WRITE8_MEMBER(monsterz_portb_1_w);
+ DECLARE_WRITE8_MEMBER(monsterz_portc_1_w);
+ DECLARE_READ8_MEMBER(frogger_sound_timer_r);
+ DECLARE_READ8_MEMBER(scorpion_protection_r);
+ DECLARE_WRITE8_MEMBER(scorpion_protection_w);
+ DECLARE_WRITE8_MEMBER(scorpion_digitalker_control_w);
+ DECLARE_WRITE8_MEMBER(kingball_dac_w);
+ DECLARE_WRITE8_MEMBER(moonwar_port_select_w);
};
diff --git a/src/mame/includes/galaxold.h b/src/mame/includes/galaxold.h
index aef1aa987a2..a440f4f2c40 100644
--- a/src/mame/includes/galaxold.h
+++ b/src/mame/includes/galaxold.h
@@ -132,6 +132,7 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(vpool_lives_r);
DECLARE_CUSTOM_INPUT_MEMBER(ckongg_coinage_r);
DECLARE_CUSTOM_INPUT_MEMBER(dkongjrm_coinage_r);
+ DECLARE_READ8_MEMBER(ttl7474_trampoline);
};
diff --git a/src/mame/includes/galpani2.h b/src/mame/includes/galpani2.h
index afb8009fbce..3477a8d2a39 100644
--- a/src/mame/includes/galpani2.h
+++ b/src/mame/includes/galpani2.h
@@ -38,6 +38,10 @@ public:
DECLARE_WRITE8_MEMBER(galpani2_mcu_nmi2_w);
DECLARE_WRITE8_MEMBER(galpani2_coin_lockout_w);
DECLARE_READ16_MEMBER(galpani2_bankedrom_r);
+ DECLARE_READ16_MEMBER(galpani2_eeprom_r);
+ DECLARE_WRITE16_MEMBER(galpani2_eeprom_w);
+ DECLARE_WRITE8_MEMBER(galpani2_oki1_bank_w);
+ DECLARE_WRITE8_MEMBER(galpani2_oki2_bank_w);
};
diff --git a/src/mame/includes/galpanic.h b/src/mame/includes/galpanic.h
index 7756d0b11dd..c3463d1d4a0 100644
--- a/src/mame/includes/galpanic.h
+++ b/src/mame/includes/galpanic.h
@@ -21,6 +21,7 @@ public:
DECLARE_WRITE16_MEMBER(galpanic_bgvideoram_mirror_w);
DECLARE_READ16_MEMBER(comad_timer_r);
DECLARE_READ16_MEMBER(zipzap_random_read);
+ DECLARE_READ8_MEMBER(comad_okim6295_r);
};
diff --git a/src/mame/includes/gameplan.h b/src/mame/includes/gameplan.h
index cc7258fb0bf..a59a473ab8d 100644
--- a/src/mame/includes/gameplan.h
+++ b/src/mame/includes/gameplan.h
@@ -51,6 +51,14 @@ public:
required_device<via6522_device> m_via_0;
required_device<via6522_device> m_via_1;
required_device<via6522_device> m_via_2;
+ DECLARE_WRITE8_MEMBER(io_select_w);
+ DECLARE_READ8_MEMBER(io_port_r);
+ DECLARE_WRITE8_MEMBER(coin_w);
+ DECLARE_WRITE8_MEMBER(audio_reset_w);
+ DECLARE_WRITE8_MEMBER(audio_cmd_w);
+ DECLARE_WRITE8_MEMBER(audio_trigger_w);
+ DECLARE_WRITE_LINE_MEMBER(r6532_irq);
+ DECLARE_WRITE8_MEMBER(r6532_soundlatch_w);
};
diff --git a/src/mame/includes/gaplus.h b/src/mame/includes/gaplus.h
index 657b491e49d..69e4889575f 100644
--- a/src/mame/includes/gaplus.h
+++ b/src/mame/includes/gaplus.h
@@ -37,6 +37,8 @@ public:
DECLARE_READ8_MEMBER(gaplus_videoram_r);
DECLARE_WRITE8_MEMBER(gaplus_videoram_w);
DECLARE_WRITE8_MEMBER(gaplus_starfield_control_w);
+ DECLARE_WRITE8_MEMBER(out_lamps0);
+ DECLARE_WRITE8_MEMBER(out_lamps1);
};
diff --git a/src/mame/includes/gatron.h b/src/mame/includes/gatron.h
index ab77b4ca3ed..680075d941c 100644
--- a/src/mame/includes/gatron.h
+++ b/src/mame/includes/gatron.h
@@ -9,6 +9,7 @@ public:
tilemap_t *m_bg_tilemap;
DECLARE_WRITE8_MEMBER(output_port_0_w);
DECLARE_WRITE8_MEMBER(gat_videoram_w);
+ DECLARE_WRITE8_MEMBER(output_port_1_w);
};
diff --git a/src/mame/includes/gbusters.h b/src/mame/includes/gbusters.h
index 2ae6a3afb96..a3242d74b99 100644
--- a/src/mame/includes/gbusters.h
+++ b/src/mame/includes/gbusters.h
@@ -36,6 +36,7 @@ public:
DECLARE_WRITE8_MEMBER(gbusters_sh_irqtrigger_w);
DECLARE_READ8_MEMBER(k052109_051960_r);
DECLARE_WRITE8_MEMBER(k052109_051960_w);
+ DECLARE_WRITE8_MEMBER(gbusters_snd_bankswitch_w);
};
/*----------- defined in video/gbusters.c -----------*/
diff --git a/src/mame/includes/ginganin.h b/src/mame/includes/ginganin.h
index b457f9c080c..651a9770b3d 100644
--- a/src/mame/includes/ginganin.h
+++ b/src/mame/includes/ginganin.h
@@ -37,6 +37,7 @@ public:
DECLARE_WRITE16_MEMBER(ginganin_fgram16_w);
DECLARE_WRITE16_MEMBER(ginganin_txtram16_w);
DECLARE_WRITE16_MEMBER(ginganin_vregs16_w);
+ DECLARE_WRITE8_MEMBER(ptm_irq);
};
diff --git a/src/mame/includes/gladiatr.h b/src/mame/includes/gladiatr.h
index 1efccae5c8e..6660e24a76e 100644
--- a/src/mame/includes/gladiatr.h
+++ b/src/mame/includes/gladiatr.h
@@ -53,6 +53,9 @@ public:
DECLARE_READ8_MEMBER(qx0_r);
DECLARE_READ8_MEMBER(qx1_r);
DECLARE_READ8_MEMBER(f6a3_r);
+ DECLARE_WRITE8_MEMBER(gladiator_int_control_w);
+ DECLARE_WRITE8_MEMBER(glad_adpcm_w);
+ DECLARE_READ8_MEMBER(f1_r);
};
/*----------- defined in video/gladiatr.c -----------*/
diff --git a/src/mame/includes/goal92.h b/src/mame/includes/goal92.h
index 62e990a1ea0..7463ba05151 100644
--- a/src/mame/includes/goal92.h
+++ b/src/mame/includes/goal92.h
@@ -44,6 +44,7 @@ public:
DECLARE_WRITE16_MEMBER(goal92_text_w);
DECLARE_WRITE16_MEMBER(goal92_background_w);
DECLARE_WRITE16_MEMBER(goal92_foreground_w);
+ DECLARE_WRITE8_MEMBER(adpcm_control_w);
};
diff --git a/src/mame/includes/goldstar.h b/src/mame/includes/goldstar.h
index db71cef46bd..9d553cfef42 100644
--- a/src/mame/includes/goldstar.h
+++ b/src/mame/includes/goldstar.h
@@ -91,6 +91,11 @@ public:
DECLARE_WRITE8_MEMBER(unkch_reel3_attrram_w);
DECLARE_WRITE8_MEMBER(goldstar_fa00_w);
DECLARE_WRITE8_MEMBER(cm_background_col_w);
+ DECLARE_WRITE8_MEMBER(system_outputa_w);
+ DECLARE_WRITE8_MEMBER(system_outputb_w);
+ DECLARE_WRITE8_MEMBER(system_outputc_w);
+ DECLARE_WRITE8_MEMBER(ay8910_outputa_w);
+ DECLARE_WRITE8_MEMBER(ay8910_outputb_w);
};
diff --git a/src/mame/includes/gotcha.h b/src/mame/includes/gotcha.h
index c2bf27c1c19..ed1672a09bb 100644
--- a/src/mame/includes/gotcha.h
+++ b/src/mame/includes/gotcha.h
@@ -34,6 +34,7 @@ public:
DECLARE_WRITE16_MEMBER(gotcha_gfxbank_select_w);
DECLARE_WRITE16_MEMBER(gotcha_gfxbank_w);
DECLARE_WRITE16_MEMBER(gotcha_scroll_w);
+ DECLARE_WRITE16_MEMBER(gotcha_oki_bank_w);
};
diff --git a/src/mame/includes/gradius3.h b/src/mame/includes/gradius3.h
index 2ed783d8c11..a9bcffd3602 100644
--- a/src/mame/includes/gradius3.h
+++ b/src/mame/includes/gradius3.h
@@ -44,6 +44,7 @@ public:
DECLARE_WRITE16_MEMBER(sound_irq_w);
DECLARE_READ16_MEMBER(gradius3_gfxrom_r);
DECLARE_WRITE16_MEMBER(gradius3_gfxram_w);
+ DECLARE_WRITE8_MEMBER(sound_bank_w);
};
/*----------- defined in video/gradius3.c -----------*/
diff --git a/src/mame/includes/grchamp.h b/src/mame/includes/grchamp.h
index 5456f896a83..1f762687e78 100644
--- a/src/mame/includes/grchamp.h
+++ b/src/mame/includes/grchamp.h
@@ -59,6 +59,10 @@ public:
DECLARE_WRITE8_MEMBER(grchamp_left_w);
DECLARE_WRITE8_MEMBER(grchamp_center_w);
DECLARE_WRITE8_MEMBER(grchamp_right_w);
+ DECLARE_WRITE8_MEMBER(grchamp_portA_0_w);
+ DECLARE_WRITE8_MEMBER(grchamp_portB_0_w);
+ DECLARE_WRITE8_MEMBER(grchamp_portA_2_w);
+ DECLARE_WRITE8_MEMBER(grchamp_portB_2_w);
};
/* Discrete Sound Input Nodes */
diff --git a/src/mame/includes/gsword.h b/src/mame/includes/gsword.h
index 7395c39df58..6a305dbbc73 100644
--- a/src/mame/includes/gsword.h
+++ b/src/mame/includes/gsword.h
@@ -31,6 +31,12 @@ public:
DECLARE_WRITE8_MEMBER(gsword_scroll_w);
DECLARE_READ8_MEMBER(gsword_hack_r);
DECLARE_WRITE8_MEMBER(adpcm_soundcommand_w);
+ DECLARE_WRITE8_MEMBER(gsword_nmi_set_w);
+ DECLARE_WRITE8_MEMBER(gsword_AY8910_control_port_0_w);
+ DECLARE_WRITE8_MEMBER(gsword_AY8910_control_port_1_w);
+ DECLARE_READ8_MEMBER(gsword_fake_0_r);
+ DECLARE_READ8_MEMBER(gsword_fake_1_r);
+ DECLARE_WRITE8_MEMBER(gsword_adpcm_data_w);
};
diff --git a/src/mame/includes/gyruss.h b/src/mame/includes/gyruss.h
index c0fc05fd2f9..cbea13ec69d 100644
--- a/src/mame/includes/gyruss.h
+++ b/src/mame/includes/gyruss.h
@@ -36,6 +36,10 @@ public:
DECLARE_WRITE8_MEMBER(slave_irq_mask_w);
DECLARE_WRITE8_MEMBER(gyruss_spriteram_w);
DECLARE_READ8_MEMBER(gyruss_scanline_r);
+ DECLARE_READ8_MEMBER(gyruss_portA_r);
+ DECLARE_WRITE8_MEMBER(gyruss_dac_w);
+ DECLARE_WRITE8_MEMBER(gyruss_filter0_w);
+ DECLARE_WRITE8_MEMBER(gyruss_filter1_w);
};
diff --git a/src/mame/includes/hcastle.h b/src/mame/includes/hcastle.h
index 761564ff4a9..c8626dea94f 100644
--- a/src/mame/includes/hcastle.h
+++ b/src/mame/includes/hcastle.h
@@ -47,6 +47,7 @@ public:
DECLARE_READ8_MEMBER(hcastle_gfxbank_r);
DECLARE_WRITE8_MEMBER(hcastle_pf1_control_w);
DECLARE_WRITE8_MEMBER(hcastle_pf2_control_w);
+ DECLARE_WRITE8_MEMBER(sound_bank_w);
};
diff --git a/src/mame/includes/hexion.h b/src/mame/includes/hexion.h
index ed2b7671d79..21cd6080210 100644
--- a/src/mame/includes/hexion.h
+++ b/src/mame/includes/hexion.h
@@ -17,6 +17,8 @@ public:
DECLARE_WRITE8_MEMBER(hexion_bankedram_w);
DECLARE_WRITE8_MEMBER(hexion_bankctrl_w);
DECLARE_WRITE8_MEMBER(hexion_gfxrom_select_w);
+ DECLARE_WRITE_LINE_MEMBER(hexion_irq_ack_w);
+ DECLARE_WRITE_LINE_MEMBER(hexion_nmi_ack_w);
};
diff --git a/src/mame/includes/hitme.h b/src/mame/includes/hitme.h
index 2a01e3079de..0e6d19af14f 100644
--- a/src/mame/includes/hitme.h
+++ b/src/mame/includes/hitme.h
@@ -32,6 +32,8 @@ public:
DECLARE_READ8_MEMBER(hitme_port_1_r);
DECLARE_READ8_MEMBER(hitme_port_2_r);
DECLARE_READ8_MEMBER(hitme_port_3_r);
+ DECLARE_WRITE8_MEMBER(output_port_0_w);
+ DECLARE_WRITE8_MEMBER(output_port_1_w);
};
diff --git a/src/mame/includes/hnayayoi.h b/src/mame/includes/hnayayoi.h
index c69392ef3f9..7c4e14aaed0 100644
--- a/src/mame/includes/hnayayoi.h
+++ b/src/mame/includes/hnayayoi.h
@@ -27,6 +27,10 @@ public:
DECLARE_WRITE8_MEMBER(dynax_blitter_rev1_start_w);
DECLARE_WRITE8_MEMBER(dynax_blitter_rev1_clear_w);
DECLARE_WRITE8_MEMBER(hnayayoi_palbank_w);
+ DECLARE_WRITE8_MEMBER(adpcm_data_w);
+ DECLARE_WRITE8_MEMBER(adpcm_vclk_w);
+ DECLARE_WRITE8_MEMBER(adpcm_reset_w);
+ DECLARE_WRITE8_MEMBER(adpcm_reset_inv_w);
};
diff --git a/src/mame/includes/homerun.h b/src/mame/includes/homerun.h
index 84580eaf5fe..c946029aeb4 100644
--- a/src/mame/includes/homerun.h
+++ b/src/mame/includes/homerun.h
@@ -29,6 +29,9 @@ public:
DECLARE_WRITE8_MEMBER(homerun_videoram_w);
DECLARE_WRITE8_MEMBER(homerun_color_w);
DECLARE_CUSTOM_INPUT_MEMBER(homerun_40_r);
+ DECLARE_WRITE8_MEMBER(pa_w);
+ DECLARE_WRITE8_MEMBER(pb_w);
+ DECLARE_WRITE8_MEMBER(pc_w);
};
diff --git a/src/mame/includes/iqblock.h b/src/mame/includes/iqblock.h
index 5d7a34aa469..f8f36a23cfc 100644
--- a/src/mame/includes/iqblock.h
+++ b/src/mame/includes/iqblock.h
@@ -23,6 +23,7 @@ public:
DECLARE_WRITE8_MEMBER(iqblock_bgvideoram_w);
DECLARE_READ8_MEMBER(iqblock_bgvideoram_r);
DECLARE_WRITE8_MEMBER(iqblock_fgscroll_w);
+ DECLARE_WRITE8_MEMBER(port_C_w);
};
diff --git a/src/mame/includes/ironhors.h b/src/mame/includes/ironhors.h
index f676d7bfda0..199707152a0 100644
--- a/src/mame/includes/ironhors.h
+++ b/src/mame/includes/ironhors.h
@@ -39,6 +39,8 @@ public:
DECLARE_WRITE8_MEMBER(ironhors_charbank_w);
DECLARE_WRITE8_MEMBER(ironhors_palettebank_w);
DECLARE_WRITE8_MEMBER(ironhors_flipscreen_w);
+ DECLARE_WRITE8_MEMBER(ironhors_filter_w);
+ DECLARE_READ8_MEMBER(farwest_soundlatch_r);
};
diff --git a/src/mame/includes/itech32.h b/src/mame/includes/itech32.h
index 3e433589112..355971f9671 100644
--- a/src/mame/includes/itech32.h
+++ b/src/mame/includes/itech32.h
@@ -134,6 +134,9 @@ public:
DECLARE_WRITE32_MEMBER(drivedge_zbuf_control_w);
DECLARE_READ32_MEMBER(itech020_video_r);
DECLARE_CUSTOM_INPUT_MEMBER(special_port_r);
+ DECLARE_WRITE8_MEMBER(drivedge_portb_out);
+ DECLARE_WRITE8_MEMBER(drivedge_turbo_light);
+ DECLARE_WRITE8_MEMBER(pia_portb_out);
};
diff --git a/src/mame/includes/itech8.h b/src/mame/includes/itech8.h
index cea24d85bd4..64e4c8013a0 100644
--- a/src/mame/includes/itech8.h
+++ b/src/mame/includes/itech8.h
@@ -75,6 +75,8 @@ public:
DECLARE_WRITE8_MEMBER(grmatch_xscroll_w);
DECLARE_CUSTOM_INPUT_MEMBER(special_r);
DECLARE_CUSTOM_INPUT_MEMBER(gtg_mux);
+ DECLARE_WRITE8_MEMBER(pia_porta_out);
+ DECLARE_WRITE8_MEMBER(ym2203_portb_out);
};
diff --git a/src/mame/includes/jack.h b/src/mame/includes/jack.h
index 983668fbd3a..d8e44c6ae2f 100644
--- a/src/mame/includes/jack.h
+++ b/src/mame/includes/jack.h
@@ -41,6 +41,7 @@ public:
DECLARE_READ8_MEMBER(jack_flipscreen_r);
DECLARE_WRITE8_MEMBER(jack_flipscreen_w);
DECLARE_CUSTOM_INPUT_MEMBER(sound_check_r);
+ DECLARE_READ8_MEMBER(timer_r);
};
diff --git a/src/mame/includes/jailbrek.h b/src/mame/includes/jailbrek.h
index 6c12f76d490..ae826d89414 100644
--- a/src/mame/includes/jailbrek.h
+++ b/src/mame/includes/jailbrek.h
@@ -34,6 +34,8 @@ public:
DECLARE_WRITE8_MEMBER(ctrl_w);
DECLARE_WRITE8_MEMBER(jailbrek_videoram_w);
DECLARE_WRITE8_MEMBER(jailbrek_colorram_w);
+ DECLARE_READ8_MEMBER(jailbrek_speech_r);
+ DECLARE_WRITE8_MEMBER(jailbrek_speech_w);
};
diff --git a/src/mame/includes/jpmimpct.h b/src/mame/includes/jpmimpct.h
index a8a6f491354..72b079b852b 100644
--- a/src/mame/includes/jpmimpct.h
+++ b/src/mame/includes/jpmimpct.h
@@ -93,6 +93,13 @@ public:
void jpm_draw_lamps(int data, int lamp_strobe);
DECLARE_WRITE16_MEMBER(jpmimpct_bt477_w);
DECLARE_READ16_MEMBER(jpmimpct_bt477_r);
+ DECLARE_WRITE16_MEMBER(volume_w);
+ DECLARE_WRITE16_MEMBER(upd7759_w);
+ DECLARE_READ16_MEMBER(upd7759_r);
+ DECLARE_READ8_MEMBER(hopper_b_r);
+ DECLARE_READ8_MEMBER(hopper_c_r);
+ DECLARE_WRITE8_MEMBER(payen_a_w);
+ DECLARE_WRITE8_MEMBER(display_c_w);
};
diff --git a/src/mame/includes/kaneko16.h b/src/mame/includes/kaneko16.h
index 010a0d90d9c..f9d474278be 100644
--- a/src/mame/includes/kaneko16.h
+++ b/src/mame/includes/kaneko16.h
@@ -163,6 +163,18 @@ public:
DECLARE_WRITE16_MEMBER(kaneko16_bg15_select_w);
DECLARE_READ16_MEMBER(kaneko16_bg15_reg_r);
DECLARE_WRITE16_MEMBER(kaneko16_bg15_reg_w);
+ DECLARE_READ16_MEMBER(kaneko16_ay1_YM2149_r);
+ DECLARE_WRITE16_MEMBER(kaneko16_ay1_YM2149_w);
+ DECLARE_READ16_MEMBER(kaneko16_ay2_YM2149_r);
+ DECLARE_WRITE16_MEMBER(kaneko16_ay2_YM2149_w);
+ DECLARE_WRITE16_MEMBER(bakubrkr_oki_bank_sw);
+ DECLARE_WRITE16_MEMBER(bloodwar_oki_0_bank_w);
+ DECLARE_WRITE16_MEMBER(bloodwar_oki_1_bank_w);
+ DECLARE_WRITE16_MEMBER(bonkadv_oki_0_bank_w);
+ DECLARE_WRITE16_MEMBER(bonkadv_oki_1_bank_w);
+ DECLARE_WRITE16_MEMBER(gtmr_oki_0_bank_w);
+ DECLARE_WRITE16_MEMBER(gtmr_oki_1_bank_w);
+ DECLARE_WRITE8_MEMBER(kaneko16_eeprom_reset_w);
};
diff --git a/src/mame/includes/kchamp.h b/src/mame/includes/kchamp.h
index 798e650b4bb..dd7b39e1172 100644
--- a/src/mame/includes/kchamp.h
+++ b/src/mame/includes/kchamp.h
@@ -39,6 +39,7 @@ public:
DECLARE_WRITE8_MEMBER(kchamp_videoram_w);
DECLARE_WRITE8_MEMBER(kchamp_colorram_w);
DECLARE_WRITE8_MEMBER(kchamp_flipscreen_w);
+ DECLARE_WRITE8_MEMBER(sound_control_w);
};
diff --git a/src/mame/includes/kickgoal.h b/src/mame/includes/kickgoal.h
index 4b17aa10a03..0883d015c1d 100644
--- a/src/mame/includes/kickgoal.h
+++ b/src/mame/includes/kickgoal.h
@@ -49,6 +49,8 @@ public:
DECLARE_WRITE16_MEMBER(kickgoal_fgram_w);
DECLARE_WRITE16_MEMBER(kickgoal_bgram_w);
DECLARE_WRITE16_MEMBER(kickgoal_bg2ram_w);
+ DECLARE_WRITE16_MEMBER(kickgoal_snd_w);
+ DECLARE_WRITE16_MEMBER(actionhw_snd_w);
};
diff --git a/src/mame/includes/kncljoe.h b/src/mame/includes/kncljoe.h
index aeef0eb84bc..0e53fff9817 100644
--- a/src/mame/includes/kncljoe.h
+++ b/src/mame/includes/kncljoe.h
@@ -35,6 +35,11 @@ public:
DECLARE_WRITE8_MEMBER(kncljoe_videoram_w);
DECLARE_WRITE8_MEMBER(kncljoe_control_w);
DECLARE_WRITE8_MEMBER(kncljoe_scroll_w);
+ DECLARE_WRITE8_MEMBER(m6803_port1_w);
+ DECLARE_WRITE8_MEMBER(m6803_port2_w);
+ DECLARE_READ8_MEMBER(m6803_port1_r);
+ DECLARE_READ8_MEMBER(m6803_port2_r);
+ DECLARE_WRITE8_MEMBER(unused_w);
};
diff --git a/src/mame/includes/ksayakyu.h b/src/mame/includes/ksayakyu.h
index eee5537c4dd..7e3b42fe8f2 100644
--- a/src/mame/includes/ksayakyu.h
+++ b/src/mame/includes/ksayakyu.h
@@ -30,6 +30,9 @@ public:
DECLARE_WRITE8_MEMBER(tomaincpu_w);
DECLARE_WRITE8_MEMBER(ksayakyu_videoram_w);
DECLARE_WRITE8_MEMBER(ksayakyu_videoctrl_w);
+ DECLARE_WRITE8_MEMBER(dummy1_w);
+ DECLARE_WRITE8_MEMBER(dummy2_w);
+ DECLARE_WRITE8_MEMBER(dummy3_w);
};
diff --git a/src/mame/includes/ladyfrog.h b/src/mame/includes/ladyfrog.h
index 54ed6f5b5e7..54c716be31f 100644
--- a/src/mame/includes/ladyfrog.h
+++ b/src/mame/includes/ladyfrog.h
@@ -51,6 +51,7 @@ public:
DECLARE_READ8_MEMBER(ladyfrog_gfxctrl_r);
DECLARE_READ8_MEMBER(ladyfrog_scrlram_r);
DECLARE_WRITE8_MEMBER(ladyfrog_scrlram_w);
+ DECLARE_WRITE8_MEMBER(unk_w);
};
diff --git a/src/mame/includes/laserbat.h b/src/mame/includes/laserbat.h
index 82b6e8026f8..d5c545ff820 100644
--- a/src/mame/includes/laserbat.h
+++ b/src/mame/includes/laserbat.h
@@ -72,6 +72,11 @@ public:
DECLARE_WRITE8_MEMBER(laserbat_cntmov_w);
DECLARE_WRITE8_MEMBER(laserbat_csound1_w);
DECLARE_WRITE8_MEMBER(laserbat_csound2_w);
+ DECLARE_WRITE_LINE_MEMBER(zaccaria_irq0a);
+ DECLARE_WRITE_LINE_MEMBER(zaccaria_irq0b);
+ DECLARE_READ8_MEMBER(zaccaria_port0a_r);
+ DECLARE_WRITE8_MEMBER(zaccaria_port0a_w);
+ DECLARE_WRITE8_MEMBER(zaccaria_port0b_w);
};
diff --git a/src/mame/includes/legionna.h b/src/mame/includes/legionna.h
index 5a57c5c43b8..be2e3208c36 100644
--- a/src/mame/includes/legionna.h
+++ b/src/mame/includes/legionna.h
@@ -33,6 +33,7 @@ public:
DECLARE_WRITE16_MEMBER(legionna_midground_w);
DECLARE_WRITE16_MEMBER(legionna_foreground_w);
DECLARE_WRITE16_MEMBER(legionna_text_w);
+ DECLARE_WRITE8_MEMBER(okim_rombank_w);
};
diff --git a/src/mame/includes/lockon.h b/src/mame/includes/lockon.h
index 27d695f155a..588849a88b5 100644
--- a/src/mame/includes/lockon.h
+++ b/src/mame/includes/lockon.h
@@ -97,6 +97,7 @@ public:
DECLARE_WRITE16_MEMBER(emres_w);
DECLARE_READ8_MEMBER(adc_r);
DECLARE_WRITE8_MEMBER(sound_vol);
+ DECLARE_WRITE8_MEMBER(ym2203_out_b);
};
diff --git a/src/mame/includes/lordgun.h b/src/mame/includes/lordgun.h
index b77453ae4ed..1a082146f8b 100644
--- a/src/mame/includes/lordgun.h
+++ b/src/mame/includes/lordgun.h
@@ -49,6 +49,13 @@ public:
DECLARE_WRITE16_MEMBER(lordgun_vram_1_w);
DECLARE_WRITE16_MEMBER(lordgun_vram_2_w);
DECLARE_WRITE16_MEMBER(lordgun_vram_3_w);
+ DECLARE_WRITE8_MEMBER(fake_w);
+ DECLARE_WRITE8_MEMBER(fake2_w);
+ DECLARE_WRITE8_MEMBER(lordgun_eeprom_w);
+ DECLARE_WRITE8_MEMBER(aliencha_eeprom_w);
+ DECLARE_READ8_MEMBER(aliencha_dip_r);
+ DECLARE_WRITE8_MEMBER(aliencha_dip_w);
+ DECLARE_WRITE8_MEMBER(lordgun_okibank_w);
};
diff --git a/src/mame/includes/lsasquad.h b/src/mame/includes/lsasquad.h
index 8e2ef011c1b..0390851892f 100644
--- a/src/mame/includes/lsasquad.h
+++ b/src/mame/includes/lsasquad.h
@@ -56,6 +56,7 @@ public:
DECLARE_READ8_MEMBER(lsasquad_mcu_r);
DECLARE_READ8_MEMBER(lsasquad_mcu_status_r);
DECLARE_READ8_MEMBER(daikaiju_mcu_status_r);
+ DECLARE_WRITE8_MEMBER(unk);
};
/*----------- defined in machine/lsasquad.c -----------*/
diff --git a/src/mame/includes/lucky74.h b/src/mame/includes/lucky74.h
index bc4ed9dbebe..87eb2ae1bfc 100644
--- a/src/mame/includes/lucky74.h
+++ b/src/mame/includes/lucky74.h
@@ -32,6 +32,9 @@ public:
DECLARE_WRITE8_MEMBER(lucky74_fg_colorram_w);
DECLARE_WRITE8_MEMBER(lucky74_bg_videoram_w);
DECLARE_WRITE8_MEMBER(lucky74_bg_colorram_w);
+ DECLARE_WRITE8_MEMBER(ym2149_portb_w);
+ DECLARE_WRITE8_MEMBER(lamps_a_w);
+ DECLARE_WRITE8_MEMBER(lamps_b_w);
};
diff --git a/src/mame/includes/lwings.h b/src/mame/includes/lwings.h
index 6d16253a71d..3ee9c50e020 100644
--- a/src/mame/includes/lwings.h
+++ b/src/mame/includes/lwings.h
@@ -47,6 +47,7 @@ public:
DECLARE_WRITE8_MEMBER(lwings_bg1_scrolly_w);
DECLARE_WRITE8_MEMBER(trojan_bg2_scrollx_w);
DECLARE_WRITE8_MEMBER(trojan_bg2_image_w);
+ DECLARE_WRITE8_MEMBER(msm5205_w);
};
diff --git a/src/mame/includes/m72.h b/src/mame/includes/m72.h
index 30887ecc140..e3cff027670 100644
--- a/src/mame/includes/m72.h
+++ b/src/mame/includes/m72.h
@@ -85,6 +85,7 @@ public:
DECLARE_WRITE16_MEMBER(m72_port02_w);
DECLARE_WRITE16_MEMBER(rtype2_port02_w);
DECLARE_WRITE16_MEMBER(majtitle_gfx_ctrl_w);
+ DECLARE_WRITE8_MEMBER(m72_snd_cpu_sample_w);
};
diff --git a/src/mame/includes/m92.h b/src/mame/includes/m92.h
index 2ed03c97b64..f4b347601bb 100644
--- a/src/mame/includes/m92.h
+++ b/src/mame/includes/m92.h
@@ -58,6 +58,7 @@ public:
DECLARE_WRITE16_MEMBER(m92_pf3_control_w);
DECLARE_WRITE16_MEMBER(m92_master_control_w);
DECLARE_CUSTOM_INPUT_MEMBER(m92_sprite_busy_r);
+ DECLARE_WRITE16_MEMBER(oki_bank_w);
};
diff --git a/src/mame/includes/madalien.h b/src/mame/includes/madalien.h
index add2a284be3..fedb9123b2c 100644
--- a/src/mame/includes/madalien.h
+++ b/src/mame/includes/madalien.h
@@ -51,6 +51,8 @@ public:
DECLARE_WRITE8_MEMBER(madalien_videoram_w);
DECLARE_WRITE8_MEMBER(madalien_charram_w);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
+ DECLARE_WRITE8_MEMBER(madalien_portA_w);
+ DECLARE_WRITE8_MEMBER(madalien_portB_w);
};
diff --git a/src/mame/includes/magmax.h b/src/mame/includes/magmax.h
index 3ebbf728c96..b46d2e8818b 100644
--- a/src/mame/includes/magmax.h
+++ b/src/mame/includes/magmax.h
@@ -27,6 +27,8 @@ public:
DECLARE_READ8_MEMBER(magmax_sound_irq_ack);
DECLARE_READ8_MEMBER(magmax_sound_r);
DECLARE_WRITE16_MEMBER(magmax_vreg_w);
+ DECLARE_WRITE8_MEMBER(ay8910_portB_0_w);
+ DECLARE_WRITE8_MEMBER(ay8910_portA_0_w);
};
diff --git a/src/mame/includes/mainevt.h b/src/mame/includes/mainevt.h
index 845bfc51177..da1b36a6354 100644
--- a/src/mame/includes/mainevt.h
+++ b/src/mame/includes/mainevt.h
@@ -37,6 +37,8 @@ public:
DECLARE_WRITE8_MEMBER(mainevt_sh_bankswitch_w);
DECLARE_READ8_MEMBER(k052109_051960_r);
DECLARE_WRITE8_MEMBER(k052109_051960_w);
+ DECLARE_READ8_MEMBER(mainevt_sh_busy_r);
+ DECLARE_WRITE8_MEMBER(dv_sh_bankswitch_w);
};
/*----------- defined in video/mainevt.c -----------*/
diff --git a/src/mame/includes/mappy.h b/src/mame/includes/mappy.h
index a9b02dec474..d7fa4fae88c 100644
--- a/src/mame/includes/mappy.h
+++ b/src/mame/includes/mappy.h
@@ -25,6 +25,13 @@ public:
DECLARE_WRITE8_MEMBER(superpac_flipscreen_w);
DECLARE_READ8_MEMBER(superpac_flipscreen_r);
DECLARE_WRITE8_MEMBER(mappy_scroll_w);
+ DECLARE_READ8_MEMBER(dipA_l);
+ DECLARE_READ8_MEMBER(dipA_h);
+ DECLARE_READ8_MEMBER(dipB_mux);
+ DECLARE_READ8_MEMBER(dipB_muxi);
+ DECLARE_WRITE8_MEMBER(out_mux);
+ DECLARE_WRITE8_MEMBER(out_lamps);
+ DECLARE_WRITE8_MEMBER(grobda_DAC_w);
};
diff --git a/src/mame/includes/mario.h b/src/mame/includes/mario.h
index f04b362cdf2..e6c866939fb 100644
--- a/src/mame/includes/mario.h
+++ b/src/mame/includes/mario.h
@@ -77,6 +77,7 @@ public:
DECLARE_WRITE8_MEMBER(masao_sh_irqtrigger_w);
DECLARE_WRITE8_MEMBER(mario_sh_tuneselect_w);
DECLARE_WRITE8_MEMBER(mario_sh3_w);
+ DECLARE_WRITE8_MEMBER(mario_z80dma_rdy_w);
};
/*----------- defined in video/mario.c -----------*/
diff --git a/src/mame/includes/mcr68.h b/src/mame/includes/mcr68.h
index 5146b096654..d734647fac7 100644
--- a/src/mame/includes/mcr68.h
+++ b/src/mame/includes/mcr68.h
@@ -78,14 +78,9 @@ public:
DECLARE_WRITE16_MEMBER(mcr68_videoram_w);
DECLARE_WRITE16_MEMBER(zwackery_videoram_w);
DECLARE_WRITE16_MEMBER(zwackery_spriteram_w);
+ DECLARE_READ8_MEMBER(zwackery_port_2_r);
};
-
-/*----------- defined in drivers/mcr68.c -----------*/
-
-READ8_DEVICE_HANDLER( zwackery_port_2_r );
-
-
/*----------- defined in machine/mcr68.c -----------*/
extern const pia6821_interface zwackery_pia0_intf;
diff --git a/src/mame/includes/megasys1.h b/src/mame/includes/megasys1.h
index beb584f5734..0dbe96863b8 100644
--- a/src/mame/includes/megasys1.h
+++ b/src/mame/includes/megasys1.h
@@ -78,6 +78,10 @@ public:
DECLARE_WRITE16_MEMBER(megasys1_vregs_C_w);
DECLARE_WRITE16_MEMBER(megasys1_vregs_D_w);
void megasys1_set_vreg_flag(int which, int data);
+ DECLARE_READ8_MEMBER(oki_status_1_r);
+ DECLARE_READ8_MEMBER(oki_status_2_r);
+ DECLARE_WRITE16_MEMBER(okim6295_both_1_w);
+ DECLARE_WRITE16_MEMBER(okim6295_both_2_w);
};
diff --git a/src/mame/includes/megazone.h b/src/mame/includes/megazone.h
index c6690c3abb6..f56ffa4938a 100644
--- a/src/mame/includes/megazone.h
+++ b/src/mame/includes/megazone.h
@@ -44,6 +44,8 @@ public:
DECLARE_WRITE8_MEMBER(megazone_coin_counter_w);
DECLARE_WRITE8_MEMBER(irq_mask_w);
DECLARE_WRITE8_MEMBER(megazone_flipscreen_w);
+ DECLARE_READ8_MEMBER(megazone_port_a_r);
+ DECLARE_WRITE8_MEMBER(megazone_port_b_w);
};
diff --git a/src/mame/includes/metro.h b/src/mame/includes/metro.h
index c92565e0d1b..777d213212f 100644
--- a/src/mame/includes/metro.h
+++ b/src/mame/includes/metro.h
@@ -134,6 +134,14 @@ public:
DECLARE_WRITE16_MEMBER(metro_window_w);
void blt_write( address_space *space, const int tmap, const offs_t offs, const UINT16 data, const UINT16 mask );
DECLARE_CUSTOM_INPUT_MEMBER(custom_soundstatus_r);
+ DECLARE_WRITE16_MEMBER(gakusai_oki_bank_hi_w);
+ DECLARE_WRITE16_MEMBER(gakusai_oki_bank_lo_w);
+ DECLARE_READ16_MEMBER(gakusai_eeprom_r);
+ DECLARE_WRITE16_MEMBER(gakusai_eeprom_w);
+ DECLARE_READ16_MEMBER(dokyusp_eeprom_r);
+ DECLARE_WRITE16_MEMBER(dokyusp_eeprom_bit_w);
+ DECLARE_WRITE16_MEMBER(dokyusp_eeprom_reset_w);
+ DECLARE_WRITE16_MEMBER(mouja_sound_rombank_w);
};
diff --git a/src/mame/includes/mexico86.h b/src/mame/includes/mexico86.h
index b61368095ab..b432120f7cf 100644
--- a/src/mame/includes/mexico86.h
+++ b/src/mame/includes/mexico86.h
@@ -50,6 +50,7 @@ public:
DECLARE_WRITE8_MEMBER(mexico86_68705_port_b_w);
DECLARE_WRITE8_MEMBER(mexico86_68705_ddr_b_w);
DECLARE_WRITE8_MEMBER(mexico86_bankswitch_w);
+ DECLARE_READ8_MEMBER(kiki_ym2203_r);
};
diff --git a/src/mame/includes/midyunit.h b/src/mame/includes/midyunit.h
index 68558fea20f..dafdb404313 100644
--- a/src/mame/includes/midyunit.h
+++ b/src/mame/includes/midyunit.h
@@ -86,6 +86,7 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(narc_talkback_strobe_r);
DECLARE_CUSTOM_INPUT_MEMBER(narc_talkback_data_r);
DECLARE_CUSTOM_INPUT_MEMBER(adpcm_irq_state_r);
+ DECLARE_WRITE8_MEMBER(yawdim_oki_bank_w);
};
diff --git a/src/mame/includes/midzeus.h b/src/mame/includes/midzeus.h
index 9ead325be26..ac3a731a1e0 100644
--- a/src/mame/includes/midzeus.h
+++ b/src/mame/includes/midzeus.h
@@ -37,6 +37,8 @@ public:
DECLARE_WRITE32_MEMBER(zeus_w);
DECLARE_CUSTOM_INPUT_MEMBER(custom_49way_r);
DECLARE_CUSTOM_INPUT_MEMBER(keypad_r);
+ DECLARE_READ32_MEMBER(zeus2_timekeeper_r);
+ DECLARE_WRITE32_MEMBER(zeus2_timekeeper_w);
};
diff --git a/src/mame/includes/mitchell.h b/src/mame/includes/mitchell.h
index 1af70b17b24..1011c2d9fc5 100644
--- a/src/mame/includes/mitchell.h
+++ b/src/mame/includes/mitchell.h
@@ -73,6 +73,10 @@ public:
DECLARE_READ8_MEMBER(pang_paletteram_r);
DECLARE_WRITE8_MEMBER(mgakuen_paletteram_w);
DECLARE_READ8_MEMBER(mgakuen_paletteram_r);
+ DECLARE_WRITE8_MEMBER(eeprom_cs_w);
+ DECLARE_WRITE8_MEMBER(eeprom_clock_w);
+ DECLARE_WRITE8_MEMBER(eeprom_serial_w);
+ DECLARE_WRITE8_MEMBER(oki_banking_w);
};
diff --git a/src/mame/includes/mjkjidai.h b/src/mame/includes/mjkjidai.h
index b586aea46c4..43f9b9fd6b0 100644
--- a/src/mame/includes/mjkjidai.h
+++ b/src/mame/includes/mjkjidai.h
@@ -25,6 +25,7 @@ public:
DECLARE_WRITE8_MEMBER(keyboard_select_w);
DECLARE_WRITE8_MEMBER(mjkjidai_videoram_w);
DECLARE_WRITE8_MEMBER(mjkjidai_ctrl_w);
+ DECLARE_WRITE8_MEMBER(adpcm_w);
};
diff --git a/src/mame/includes/model1.h b/src/mame/includes/model1.h
index 3b568f1b046..66fa1980b03 100644
--- a/src/mame/includes/model1.h
+++ b/src/mame/includes/model1.h
@@ -127,6 +127,8 @@ public:
DECLARE_WRITE32_MEMBER(copro_ram_w);
DECLARE_READ16_MEMBER(model1_listctl_r);
DECLARE_WRITE16_MEMBER(model1_listctl_w);
+ DECLARE_WRITE16_MEMBER(m1_snd_mpcm_bnk1_w);
+ DECLARE_WRITE16_MEMBER(m1_snd_mpcm_bnk2_w);
};
diff --git a/src/mame/includes/model2.h b/src/mame/includes/model2.h
index 5b435a14fbd..1d49c0885a1 100644
--- a/src/mame/includes/model2.h
+++ b/src/mame/includes/model2.h
@@ -143,6 +143,8 @@ public:
DECLARE_READ32_MEMBER(jaleco_network_r);
DECLARE_WRITE32_MEMBER(jaleco_network_w);
void push_geo_data(UINT32 data);
+ DECLARE_WRITE16_MEMBER(m1_snd_mpcm_bnk1_w);
+ DECLARE_WRITE16_MEMBER(m1_snd_mpcm_bnk2_w);
};
diff --git a/src/mame/includes/moo.h b/src/mame/includes/moo.h
index e9579ea4071..fe3376bdaa2 100644
--- a/src/mame/includes/moo.h
+++ b/src/mame/includes/moo.h
@@ -48,6 +48,7 @@ public:
DECLARE_READ16_MEMBER(K053247_scattered_word_r);
DECLARE_WRITE16_MEMBER(K053247_scattered_word_w);
DECLARE_WRITE16_MEMBER(moo_prot_w);
+ DECLARE_WRITE16_MEMBER(moobl_oki_bank_w);
};
diff --git a/src/mame/includes/mpu4.h b/src/mame/includes/mpu4.h
index 32d859cd6fb..65970e09b8c 100644
--- a/src/mame/includes/mpu4.h
+++ b/src/mame/includes/mpu4.h
@@ -250,13 +250,49 @@ public:
DECLARE_READ8_MEMBER(crystal_sound_r);
DECLARE_WRITE8_MEMBER(crystal_sound_w);
DECLARE_WRITE8_MEMBER(ic3ss_w);
+ DECLARE_WRITE_LINE_MEMBER(cpu0_irq);
+ DECLARE_WRITE8_MEMBER(ic2_o1_callback);
+ DECLARE_WRITE8_MEMBER(ic2_o2_callback);
+ DECLARE_WRITE8_MEMBER(ic2_o3_callback);
+ DECLARE_WRITE8_MEMBER(pia_ic3_porta_w);
+ DECLARE_WRITE8_MEMBER(pia_ic3_portb_w);
+ DECLARE_WRITE_LINE_MEMBER(pia_ic3_ca2_w);
+ DECLARE_WRITE_LINE_MEMBER(pia_ic3_cb2_w);
+ DECLARE_WRITE8_MEMBER(pia_ic4_porta_w);
+ DECLARE_WRITE8_MEMBER(pia_ic4_portb_w);
+ DECLARE_READ8_MEMBER(pia_ic4_portb_r);
+ DECLARE_WRITE_LINE_MEMBER(pia_ic4_ca2_w);
+ DECLARE_WRITE_LINE_MEMBER(pia_ic4_cb2_w);
+ DECLARE_READ8_MEMBER(pia_ic5_porta_r);
+ DECLARE_WRITE8_MEMBER(pia_ic5_porta_w);
+ DECLARE_WRITE8_MEMBER(pia_ic5_portb_w);
+ DECLARE_READ8_MEMBER(pia_ic5_portb_r);
+ DECLARE_WRITE_LINE_MEMBER(pia_ic5_ca2_w);
+ DECLARE_WRITE_LINE_MEMBER(pia_ic5_cb2_w);
+ DECLARE_WRITE8_MEMBER(pia_ic6_portb_w);
+ DECLARE_WRITE8_MEMBER(pia_ic6_porta_w);
+ DECLARE_WRITE_LINE_MEMBER(pia_ic6_ca2_w);
+ DECLARE_WRITE_LINE_MEMBER(pia_ic6_cb2_w);
+ DECLARE_WRITE8_MEMBER(pia_ic7_porta_w);
+ DECLARE_WRITE8_MEMBER(pia_ic7_portb_w);
+ DECLARE_READ8_MEMBER(pia_ic7_portb_r);
+ DECLARE_WRITE_LINE_MEMBER(pia_ic7_ca2_w);
+ DECLARE_WRITE_LINE_MEMBER(pia_ic7_cb2_w);
+ DECLARE_READ8_MEMBER(pia_ic8_porta_r);
+ DECLARE_WRITE8_MEMBER(pia_ic8_portb_w);
+ DECLARE_WRITE_LINE_MEMBER(pia_ic8_ca2_w);
+ DECLARE_WRITE_LINE_MEMBER(pia_ic8_cb2_w);
+ DECLARE_WRITE8_MEMBER(pia_gb_porta_w);
+ DECLARE_WRITE8_MEMBER(pia_gb_portb_w);
+ DECLARE_READ8_MEMBER(pia_gb_portb_r);
+ DECLARE_WRITE_LINE_MEMBER(pia_gb_ca2_w);
+ DECLARE_WRITE_LINE_MEMBER(pia_gb_cb2_w);
+ DECLARE_WRITE8_MEMBER(ic3ss_o1_callback);
+ DECLARE_WRITE8_MEMBER(ic3ss_o2_callback);
+ DECLARE_WRITE8_MEMBER(ic3ss_o3_callback);
};
/* mpu4.c, used by mpu4vid.c */
-extern READ8_DEVICE_HANDLER( pia_ic5_portb_r );
-extern WRITE_LINE_DEVICE_HANDLER( pia_ic5_ca2_w );
-extern WRITE_LINE_DEVICE_HANDLER( pia_ic5_cb2_w );
-extern WRITE_LINE_DEVICE_HANDLER( cpu0_irq );
extern void mpu4_config_common(running_machine &machine);
extern void mpu4_stepper_reset(mpu4_state *state);
diff --git a/src/mame/includes/msisaac.h b/src/mame/includes/msisaac.h
index 8a9a8608b1a..b73472ef181 100644
--- a/src/mame/includes/msisaac.h
+++ b/src/mame/includes/msisaac.h
@@ -64,6 +64,7 @@ public:
DECLARE_WRITE8_MEMBER(msisaac_bg_videoram_w);
DECLARE_WRITE8_MEMBER(msisaac_bg2_videoram_w);
DECLARE_WRITE8_MEMBER(msisaac_fg_videoram_w);
+ DECLARE_WRITE8_MEMBER(sound_control_0_w);
};
diff --git a/src/mame/includes/munchmo.h b/src/mame/includes/munchmo.h
index ae0cec0123e..389d867a1fd 100644
--- a/src/mame/includes/munchmo.h
+++ b/src/mame/includes/munchmo.h
@@ -40,6 +40,8 @@ public:
DECLARE_WRITE8_MEMBER(sound_nmi_ack_w);
DECLARE_WRITE8_MEMBER(mnchmobl_palette_bank_w);
DECLARE_WRITE8_MEMBER(mnchmobl_flipscreen_w);
+ DECLARE_READ8_MEMBER(munchmo_ay1reset_r);
+ DECLARE_READ8_MEMBER(munchmo_ay2reset_r);
};
diff --git a/src/mame/includes/n8080.h b/src/mame/includes/n8080.h
index 3e28e74da4a..8579d8c9a91 100644
--- a/src/mame/includes/n8080.h
+++ b/src/mame/includes/n8080.h
@@ -56,6 +56,8 @@ public:
DECLARE_WRITE8_MEMBER(n8080_dac_w);
DECLARE_WRITE8_MEMBER(helifire_dac_w);
DECLARE_WRITE8_MEMBER(helifire_sound_ctrl_w);
+ DECLARE_WRITE_LINE_MEMBER(n8080_inte_callback);
+ DECLARE_WRITE8_MEMBER(n8080_status_callback);
};
diff --git a/src/mame/includes/namcona1.h b/src/mame/includes/namcona1.h
index 9fd8dfcd6fe..8d946c75ea8 100644
--- a/src/mame/includes/namcona1.h
+++ b/src/mame/includes/namcona1.h
@@ -88,6 +88,8 @@ public:
DECLARE_WRITE16_MEMBER(namcona1_paletteram_w);
DECLARE_READ16_MEMBER(namcona1_gfxram_r);
DECLARE_WRITE16_MEMBER(namcona1_gfxram_w);
+ DECLARE_READ16_MEMBER(snd_r);
+ DECLARE_WRITE16_MEMBER(snd_w);
};
diff --git a/src/mame/includes/nemesis.h b/src/mame/includes/nemesis.h
index fe2d3873206..ba936ca423f 100644
--- a/src/mame/includes/nemesis.h
+++ b/src/mame/includes/nemesis.h
@@ -75,6 +75,10 @@ public:
DECLARE_WRITE16_MEMBER(nemesis_colorram1_word_w);
DECLARE_WRITE16_MEMBER(nemesis_colorram2_word_w);
DECLARE_WRITE16_MEMBER(nemesis_charram_word_w);
+ DECLARE_WRITE8_MEMBER(gx400_speech_start_w);
+ DECLARE_WRITE8_MEMBER(salamand_speech_start_w);
+ DECLARE_READ8_MEMBER(nemesis_portA_r);
+ DECLARE_WRITE8_MEMBER(city_sound_bank_w);
};
diff --git a/src/mame/includes/nmk16.h b/src/mame/includes/nmk16.h
index a1bba41b608..828ed9fba8b 100644
--- a/src/mame/includes/nmk16.h
+++ b/src/mame/includes/nmk16.h
@@ -93,6 +93,8 @@ public:
DECLARE_WRITE16_MEMBER(nmk_tilebank_w);
DECLARE_WRITE16_MEMBER(bioship_scroll_w);
DECLARE_WRITE16_MEMBER(bioship_bank_w);
+ DECLARE_WRITE8_MEMBER(spec2k_oki1_banking_w);
+ DECLARE_WRITE8_MEMBER(twinactn_oki_bank_w);
};
diff --git a/src/mame/includes/norautp.h b/src/mame/includes/norautp.h
index a815302f844..145737d7f33 100644
--- a/src/mame/includes/norautp.h
+++ b/src/mame/includes/norautp.h
@@ -19,6 +19,9 @@ public:
DECLARE_WRITE8_MEMBER(vram_data_w);
DECLARE_WRITE8_MEMBER(vram_addr_w);
DECLARE_READ8_MEMBER(test2_r);
+ DECLARE_WRITE8_MEMBER(mainlamps_w);
+ DECLARE_WRITE8_MEMBER(soundlamps_w);
+ DECLARE_WRITE8_MEMBER(counterlamps_w);
};
diff --git a/src/mame/includes/nycaptor.h b/src/mame/includes/nycaptor.h
index 18eb2200ce8..31ade8c9c9c 100644
--- a/src/mame/includes/nycaptor.h
+++ b/src/mame/includes/nycaptor.h
@@ -93,6 +93,7 @@ public:
DECLARE_READ8_MEMBER(nycaptor_gfxctrl_r);
DECLARE_READ8_MEMBER(nycaptor_scrlram_r);
DECLARE_WRITE8_MEMBER(nycaptor_scrlram_w);
+ DECLARE_WRITE8_MEMBER(unk_w);
};
diff --git a/src/mame/includes/ojankohs.h b/src/mame/includes/ojankohs.h
index 1fcf01c15d5..12018c91ff2 100644
--- a/src/mame/includes/ojankohs.h
+++ b/src/mame/includes/ojankohs.h
@@ -56,6 +56,9 @@ public:
DECLARE_WRITE8_MEMBER(ojankohs_gfxreg_w);
DECLARE_WRITE8_MEMBER(ojankohs_flipscreen_w);
DECLARE_WRITE8_MEMBER(ojankoc_videoram_w);
+ DECLARE_WRITE8_MEMBER(ojankohs_adpcm_reset_w);
+ DECLARE_READ8_MEMBER(ojankohs_ay8910_0_r);
+ DECLARE_READ8_MEMBER(ojankohs_ay8910_1_r);
};
diff --git a/src/mame/includes/oneshot.h b/src/mame/includes/oneshot.h
index 0ecbf728097..b0ad6a8f679 100644
--- a/src/mame/includes/oneshot.h
+++ b/src/mame/includes/oneshot.h
@@ -42,6 +42,7 @@ public:
DECLARE_WRITE16_MEMBER(oneshot_bg_videoram_w);
DECLARE_WRITE16_MEMBER(oneshot_mid_videoram_w);
DECLARE_WRITE16_MEMBER(oneshot_fg_videoram_w);
+ DECLARE_WRITE16_MEMBER(soundbank_w);
};
/*----------- defined in video/oneshot.c -----------*/
diff --git a/src/mame/includes/opwolf.h b/src/mame/includes/opwolf.h
index 093c4191004..a6ab306dac8 100644
--- a/src/mame/includes/opwolf.h
+++ b/src/mame/includes/opwolf.h
@@ -65,6 +65,9 @@ public:
DECLARE_READ16_MEMBER(opwolf_cchip_status_r);
DECLARE_READ16_MEMBER(opwolf_cchip_data_r);
DECLARE_WRITE16_MEMBER(opwolf_spritectrl_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(opwolf_adpcm_b_w);
+ DECLARE_WRITE8_MEMBER(opwolf_adpcm_c_w);
};
diff --git a/src/mame/includes/othldrby.h b/src/mame/includes/othldrby.h
index 2d7b9e5489e..a1cc9ad4803 100644
--- a/src/mame/includes/othldrby.h
+++ b/src/mame/includes/othldrby.h
@@ -34,6 +34,7 @@ public:
DECLARE_WRITE16_MEMBER(othldrby_videoram_w);
DECLARE_WRITE16_MEMBER(othldrby_vreg_addr_w);
DECLARE_WRITE16_MEMBER(othldrby_vreg_w);
+ DECLARE_WRITE16_MEMBER(oki_bankswitch_w);
};
diff --git a/src/mame/includes/overdriv.h b/src/mame/includes/overdriv.h
index 93a1886682c..d8fb42209ee 100644
--- a/src/mame/includes/overdriv.h
+++ b/src/mame/includes/overdriv.h
@@ -38,6 +38,8 @@ public:
DECLARE_WRITE16_MEMBER(overdriv_soundirq_w);
DECLARE_WRITE16_MEMBER(overdriv_cpuB_irq5_w);
DECLARE_WRITE16_MEMBER(overdriv_cpuB_irq6_w);
+ DECLARE_READ8_MEMBER(overdriv_1_sound_r);
+ DECLARE_READ8_MEMBER(overdriv_2_sound_r);
};
/*----------- defined in video/overdriv.c -----------*/
diff --git a/src/mame/includes/pandoras.h b/src/mame/includes/pandoras.h
index 03acca5170e..dd861a6f3a7 100644
--- a/src/mame/includes/pandoras.h
+++ b/src/mame/includes/pandoras.h
@@ -43,6 +43,8 @@ public:
DECLARE_WRITE8_MEMBER(pandoras_cram_w);
DECLARE_WRITE8_MEMBER(pandoras_scrolly_w);
DECLARE_WRITE8_MEMBER(pandoras_flipscreen_w);
+ DECLARE_READ8_MEMBER(pandoras_portA_r);
+ DECLARE_READ8_MEMBER(pandoras_portB_r);
};
diff --git a/src/mame/includes/paradise.h b/src/mame/includes/paradise.h
index 77573ee0ba2..cd71b63400e 100644
--- a/src/mame/includes/paradise.h
+++ b/src/mame/includes/paradise.h
@@ -41,6 +41,7 @@ public:
DECLARE_WRITE8_MEMBER(paradise_vram_2_w);
DECLARE_WRITE8_MEMBER(paradise_pixmap_w);
DECLARE_WRITE8_MEMBER(paradise_priority_w);
+ DECLARE_WRITE8_MEMBER(paradise_okibank_w);
};
/*----------- defined in video/paradise.c -----------*/
diff --git a/src/mame/includes/parodius.h b/src/mame/includes/parodius.h
index 9218ae09676..74916e82ff2 100644
--- a/src/mame/includes/parodius.h
+++ b/src/mame/includes/parodius.h
@@ -39,6 +39,7 @@ public:
DECLARE_WRITE8_MEMBER(parodius_3fc0_w);
DECLARE_WRITE8_MEMBER(parodius_sh_irqtrigger_w);
DECLARE_WRITE8_MEMBER(sound_arm_nmi_w);
+ DECLARE_READ8_MEMBER(parodius_sound_r);
};
/*----------- defined in video/parodius.c -----------*/
diff --git a/src/mame/includes/pcktgal.h b/src/mame/includes/pcktgal.h
index 7e9b1e156d4..d122558107e 100644
--- a/src/mame/includes/pcktgal.h
+++ b/src/mame/includes/pcktgal.h
@@ -12,6 +12,7 @@ public:
DECLARE_WRITE8_MEMBER(pcktgal_sound_bank_w);
DECLARE_WRITE8_MEMBER(pcktgal_sound_w);
DECLARE_WRITE8_MEMBER(pcktgal_adpcm_data_w);
+ DECLARE_READ8_MEMBER(pcktgal_adpcm_reset_r);
};
diff --git a/src/mame/includes/pktgaldx.h b/src/mame/includes/pktgaldx.h
index c007d8a9cc4..4773fb45f43 100644
--- a/src/mame/includes/pktgaldx.h
+++ b/src/mame/includes/pktgaldx.h
@@ -29,6 +29,7 @@ public:
device_t *m_deco_tilegen1;
DECLARE_READ16_MEMBER(pckgaldx_unknown_r);
DECLARE_READ16_MEMBER(pckgaldx_protection_r);
+ DECLARE_WRITE16_MEMBER(pktgaldx_oki_bank_w);
};
diff --git a/src/mame/includes/playch10.h b/src/mame/includes/playch10.h
index 647e6c5ba30..f8fa65949e1 100644
--- a/src/mame/includes/playch10.h
+++ b/src/mame/includes/playch10.h
@@ -88,6 +88,9 @@ public:
void pc10_set_mirroring(int mirroring);
DECLARE_WRITE8_MEMBER(playch10_videoram_w);
DECLARE_CUSTOM_INPUT_MEMBER(pc10_int_detect_r);
+ DECLARE_READ8_MEMBER(psg_4015_r);
+ DECLARE_WRITE8_MEMBER(psg_4015_w);
+ DECLARE_WRITE8_MEMBER(psg_4017_w);
};
diff --git a/src/mame/includes/playmark.h b/src/mame/includes/playmark.h
index 2ca23d945c2..742f825bb37 100644
--- a/src/mame/includes/playmark.h
+++ b/src/mame/includes/playmark.h
@@ -74,6 +74,7 @@ public:
DECLARE_WRITE16_MEMBER(wbeachvl_scroll_w);
DECLARE_WRITE16_MEMBER(excelsr_scroll_w);
DECLARE_WRITE16_MEMBER(hrdtimes_scroll_w);
+ DECLARE_WRITE8_MEMBER(playmark_oki_banking_w);
};
/*----------- defined in video/playmark.c -----------*/
diff --git a/src/mame/includes/plygonet.h b/src/mame/includes/plygonet.h
index 1a97e28677c..654994080d9 100644
--- a/src/mame/includes/plygonet.h
+++ b/src/mame/includes/plygonet.h
@@ -64,6 +64,7 @@ public:
DECLARE_READ32_MEMBER(polygonet_roz_ram_r);
DECLARE_WRITE32_MEMBER(polygonet_roz_ram_w);
DIRECT_UPDATE_MEMBER(plygonet_dsp56k_direct_handler);
+ DECLARE_READ32_MEMBER(polygonet_eeprom_r);
};
/*----------- defined in video/plygonet.c -----------*/
diff --git a/src/mame/includes/polepos.h b/src/mame/includes/polepos.h
index 2056ae151f5..feaf5501865 100644
--- a/src/mame/includes/polepos.h
+++ b/src/mame/includes/polepos.h
@@ -65,6 +65,13 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(high_port_r);
DECLARE_CUSTOM_INPUT_MEMBER(low_port_r);
DECLARE_CUSTOM_INPUT_MEMBER(auto_start_r);
+ DECLARE_WRITE8_MEMBER(out_0);
+ DECLARE_WRITE8_MEMBER(out_1);
+ DECLARE_READ8_MEMBER(namco_52xx_rom_r);
+ DECLARE_READ8_MEMBER(namco_52xx_si_r);
+ DECLARE_READ8_MEMBER(namco_53xx_k_r);
+ DECLARE_READ8_MEMBER(steering_changed_r);
+ DECLARE_READ8_MEMBER(steering_delta_r);
};
diff --git a/src/mame/includes/popeye.h b/src/mame/includes/popeye.h
index 60fa2cbfda1..adbb170db4d 100644
--- a/src/mame/includes/popeye.h
+++ b/src/mame/includes/popeye.h
@@ -31,6 +31,8 @@ public:
DECLARE_WRITE8_MEMBER(popeye_colorram_w);
DECLARE_WRITE8_MEMBER(popeye_bitmap_w);
DECLARE_WRITE8_MEMBER(skyskipr_bitmap_w);
+ DECLARE_WRITE8_MEMBER(popeye_portB_w);
+ DECLARE_READ8_MEMBER(popeye_portA_r);
};
diff --git a/src/mame/includes/prehisle.h b/src/mame/includes/prehisle.h
index a716c2c2945..daff40ea519 100644
--- a/src/mame/includes/prehisle.h
+++ b/src/mame/includes/prehisle.h
@@ -21,6 +21,8 @@ public:
DECLARE_WRITE16_MEMBER(prehisle_fg_videoram16_w);
DECLARE_READ16_MEMBER(prehisle_control16_r);
DECLARE_WRITE16_MEMBER(prehisle_control16_w);
+ DECLARE_WRITE8_MEMBER(D7759_write_port_0_w);
+ DECLARE_WRITE8_MEMBER(D7759_upd_reset_w);
};
diff --git a/src/mame/includes/psikyo4.h b/src/mame/includes/psikyo4.h
index 64f66e711ca..d6e4572dc96 100644
--- a/src/mame/includes/psikyo4.h
+++ b/src/mame/includes/psikyo4.h
@@ -44,6 +44,8 @@ public:
DECLARE_WRITE32_MEMBER(hotgmck_pcm_bank_w);
DECLARE_CUSTOM_INPUT_MEMBER(system_port_r);
DECLARE_CUSTOM_INPUT_MEMBER(mahjong_ctrl_r);
+ DECLARE_WRITE32_MEMBER(ps4_eeprom_w);
+ DECLARE_READ32_MEMBER(ps4_eeprom_r);
};
diff --git a/src/mame/includes/psikyosh.h b/src/mame/includes/psikyosh.h
index f0e3e8f2bfc..0094902e552 100644
--- a/src/mame/includes/psikyosh.h
+++ b/src/mame/includes/psikyosh.h
@@ -51,6 +51,8 @@ public:
DECLARE_WRITE32_MEMBER(paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w);
DECLARE_WRITE32_MEMBER(psikyosh_vidregs_w);
DECLARE_READ32_MEMBER(mjgtaste_input_r);
+ DECLARE_WRITE32_MEMBER(psh_eeprom_w);
+ DECLARE_READ32_MEMBER(psh_eeprom_r);
};
/*----------- defined in video/psikyosh.c -----------*/
diff --git a/src/mame/includes/punchout.h b/src/mame/includes/punchout.h
index c69866c6a12..88122d16c4d 100644
--- a/src/mame/includes/punchout.h
+++ b/src/mame/includes/punchout.h
@@ -44,6 +44,9 @@ public:
DECLARE_WRITE8_MEMBER(punchout_spr1_videoram_w);
DECLARE_WRITE8_MEMBER(punchout_spr2_videoram_w);
DECLARE_CUSTOM_INPUT_MEMBER(punchout_vlm5030_busy_r);
+ DECLARE_WRITE8_MEMBER(punchout_speech_reset_w);
+ DECLARE_WRITE8_MEMBER(punchout_speech_st_w);
+ DECLARE_WRITE8_MEMBER(punchout_speech_vcu_w);
};
diff --git a/src/mame/includes/qdrmfgp.h b/src/mame/includes/qdrmfgp.h
index bc87ee141aa..f7200bb554c 100644
--- a/src/mame/includes/qdrmfgp.h
+++ b/src/mame/includes/qdrmfgp.h
@@ -27,6 +27,12 @@ public:
DECLARE_READ16_MEMBER(gp2_ide_std_r);
DECLARE_CUSTOM_INPUT_MEMBER(inputs_r);
DECLARE_CUSTOM_INPUT_MEMBER(battery_sensor_r);
+ DECLARE_READ16_MEMBER(ide_std_r);
+ DECLARE_WRITE16_MEMBER(ide_std_w);
+ DECLARE_READ16_MEMBER(ide_alt_r);
+ DECLARE_WRITE16_MEMBER(ide_alt_w);
+ DECLARE_WRITE_LINE_MEMBER(qdrmfgp_irq3_ack_w);
+ DECLARE_WRITE_LINE_MEMBER(qdrmfgp_irq4_ack_w);
};
/*----------- defined in video/qdrmfgp.c -----------*/
diff --git a/src/mame/includes/rainbow.h b/src/mame/includes/rainbow.h
index 3ac7f07a897..a270cca20b8 100644
--- a/src/mame/includes/rainbow.h
+++ b/src/mame/includes/rainbow.h
@@ -41,6 +41,7 @@ public:
DECLARE_READ16_MEMBER(rbisland_cchip_ram_r);
DECLARE_WRITE16_MEMBER(rbisland_spritectrl_w);
DECLARE_WRITE16_MEMBER(jumping_spritectrl_w);
+ DECLARE_WRITE8_MEMBER(bankswitch_w);
};
diff --git a/src/mame/includes/rastan.h b/src/mame/includes/rastan.h
index 5705d07620a..e4e01b39162 100644
--- a/src/mame/includes/rastan.h
+++ b/src/mame/includes/rastan.h
@@ -28,6 +28,9 @@ public:
device_t *m_pc080sn;
DECLARE_WRITE8_MEMBER(rastan_msm5205_address_w);
DECLARE_WRITE16_MEMBER(rastan_spritectrl_w);
+ DECLARE_WRITE8_MEMBER(rastan_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(rastan_msm5205_start_w);
+ DECLARE_WRITE8_MEMBER(rastan_msm5205_stop_w);
};
diff --git a/src/mame/includes/renegade.h b/src/mame/includes/renegade.h
index 6015439aca7..5b34e85df9a 100644
--- a/src/mame/includes/renegade.h
+++ b/src/mame/includes/renegade.h
@@ -63,6 +63,7 @@ public:
DECLARE_WRITE8_MEMBER(renegade_scroll0_w);
DECLARE_WRITE8_MEMBER(renegade_scroll1_w);
DECLARE_CUSTOM_INPUT_MEMBER(mcu_status_r);
+ DECLARE_WRITE8_MEMBER(adpcm_play_w);
};
diff --git a/src/mame/includes/rockrage.h b/src/mame/includes/rockrage.h
index 6a99cb95a85..9eff0b82581 100644
--- a/src/mame/includes/rockrage.h
+++ b/src/mame/includes/rockrage.h
@@ -25,6 +25,8 @@ public:
DECLARE_WRITE8_MEMBER(rockrage_bankswitch_w);
DECLARE_WRITE8_MEMBER(rockrage_sh_irqtrigger_w);
DECLARE_WRITE8_MEMBER(rockrage_vreg_w);
+ DECLARE_READ8_MEMBER(rockrage_VLM5030_busy_r);
+ DECLARE_WRITE8_MEMBER(rockrage_speech_w);
};
diff --git a/src/mame/includes/rohga.h b/src/mame/includes/rohga.h
index 3d3eb307cf8..075209dcea2 100644
--- a/src/mame/includes/rohga.h
+++ b/src/mame/includes/rohga.h
@@ -49,6 +49,7 @@ public:
DECLARE_READ16_MEMBER(rohga_irq_ack_r);
DECLARE_WRITE16_MEMBER(wizdfire_irq_ack_w);
DECLARE_WRITE16_MEMBER(rohga_buffer_spriteram16_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
};
diff --git a/src/mame/includes/rollerg.h b/src/mame/includes/rollerg.h
index 36d93e24451..0fb00e8412a 100644
--- a/src/mame/includes/rollerg.h
+++ b/src/mame/includes/rollerg.h
@@ -31,6 +31,8 @@ public:
DECLARE_WRITE8_MEMBER(soundirq_w);
DECLARE_WRITE8_MEMBER(sound_arm_nmi_w);
DECLARE_READ8_MEMBER(pip_r);
+ DECLARE_READ8_MEMBER(rollerg_sound_r);
+ DECLARE_WRITE_LINE_MEMBER(rollerg_irq_ack_w);
};
/*----------- defined in video/rollerg.c -----------*/
diff --git a/src/mame/includes/route16.h b/src/mame/includes/route16.h
index fc145bc57b0..0e5054349c3 100644
--- a/src/mame/includes/route16.h
+++ b/src/mame/includes/route16.h
@@ -25,6 +25,7 @@ public:
DECLARE_READ8_MEMBER(routex_prot_read);
DECLARE_WRITE8_MEMBER(route16_out0_w);
DECLARE_WRITE8_MEMBER(route16_out1_w);
+ DECLARE_WRITE8_MEMBER(stratvox_sn76477_w);
};
diff --git a/src/mame/includes/rpunch.h b/src/mame/includes/rpunch.h
index b1f8e6b4870..6de2e077171 100644
--- a/src/mame/includes/rpunch.h
+++ b/src/mame/includes/rpunch.h
@@ -31,6 +31,8 @@ public:
DECLARE_WRITE16_MEMBER(rpunch_crtc_register_w);
DECLARE_WRITE16_MEMBER(rpunch_ins_w);
DECLARE_CUSTOM_INPUT_MEMBER(hi_bits_r);
+ DECLARE_WRITE8_MEMBER(upd_control_w);
+ DECLARE_WRITE8_MEMBER(upd_data_w);
};
diff --git a/src/mame/includes/runaway.h b/src/mame/includes/runaway.h
index a7796b3ca70..9207c210cbd 100644
--- a/src/mame/includes/runaway.h
+++ b/src/mame/includes/runaway.h
@@ -17,6 +17,7 @@ public:
DECLARE_WRITE8_MEMBER(runaway_paletteram_w);
DECLARE_WRITE8_MEMBER(runaway_video_ram_w);
DECLARE_WRITE8_MEMBER(runaway_tile_bank_w);
+ DECLARE_READ8_MEMBER(runaway_pot_r);
};
diff --git a/src/mame/includes/sauro.h b/src/mame/includes/sauro.h
index 12ff1b06a97..71199783031 100644
--- a/src/mame/includes/sauro.h
+++ b/src/mame/includes/sauro.h
@@ -30,6 +30,7 @@ public:
DECLARE_WRITE8_MEMBER(tecfri_scroll_bg_w);
DECLARE_WRITE8_MEMBER(sauro_palette_bank_w);
DECLARE_WRITE8_MEMBER(sauro_scroll_fg_w);
+ DECLARE_WRITE8_MEMBER(adpcm_w);
};
diff --git a/src/mame/includes/sbugger.h b/src/mame/includes/sbugger.h
index 29f40b9afb1..77f2d2eca5b 100644
--- a/src/mame/includes/sbugger.h
+++ b/src/mame/includes/sbugger.h
@@ -12,6 +12,7 @@ public:
tilemap_t *m_tilemap;
DECLARE_WRITE8_MEMBER(sbugger_videoram_w);
DECLARE_WRITE8_MEMBER(sbugger_videoram_attr_w);
+ DECLARE_WRITE_LINE_MEMBER(sbugger_interrupt);
};
diff --git a/src/mame/includes/segag80r.h b/src/mame/includes/segag80r.h
index d20aeaf346b..9d7104a44a7 100644
--- a/src/mame/includes/segag80r.h
+++ b/src/mame/includes/segag80r.h
@@ -75,6 +75,11 @@ public:
DECLARE_READ8_MEMBER(n7751_command_r);
DECLARE_READ8_MEMBER(n7751_t1_r);
DECLARE_INPUT_CHANGED_MEMBER(service_switch);
+ DECLARE_WRITE8_MEMBER(usb_ram_w);
+ DECLARE_WRITE8_MEMBER(sindbadm_soundport_w);
+ DECLARE_WRITE8_MEMBER(sindbadm_misc_w);
+ DECLARE_WRITE8_MEMBER(sindbadm_sn1_SN76496_w);
+ DECLARE_WRITE8_MEMBER(sindbadm_sn2_SN76496_w);
};
diff --git a/src/mame/includes/segag80v.h b/src/mame/includes/segag80v.h
index f72421aec7c..b35b62c43a9 100644
--- a/src/mame/includes/segag80v.h
+++ b/src/mame/includes/segag80v.h
@@ -43,6 +43,7 @@ public:
DECLARE_WRITE8_MEMBER(spacfury1_sh_w);
DECLARE_WRITE8_MEMBER(spacfury2_sh_w);
DECLARE_INPUT_CHANGED_MEMBER(service_switch);
+ DECLARE_WRITE8_MEMBER(usb_ram_w);
};
diff --git a/src/mame/includes/segas32.h b/src/mame/includes/segas32.h
index f83e31a4b21..aeea36a2e60 100644
--- a/src/mame/includes/segas32.h
+++ b/src/mame/includes/segas32.h
@@ -145,6 +145,8 @@ public:
DECLARE_READ16_MEMBER(arescue_handshake_r);
DECLARE_READ16_MEMBER(arescue_slavebusy_r);
DECLARE_WRITE16_MEMBER(f1en_comms_echo_w);
+ DECLARE_WRITE8_MEMBER(multipcm_bank_w);
+ DECLARE_WRITE8_MEMBER(scross_bank_w);
};
diff --git a/src/mame/includes/seibuspi.h b/src/mame/includes/seibuspi.h
index b8fa1dddab7..4e0e671677a 100644
--- a/src/mame/includes/seibuspi.h
+++ b/src/mame/includes/seibuspi.h
@@ -85,6 +85,10 @@ public:
DECLARE_READ32_MEMBER(viprp1o_speedup_r);
DECLARE_READ32_MEMBER(rf2_speedup_r);
DECLARE_READ32_MEMBER(rfjet_speedup_r);
+ DECLARE_WRITE32_MEMBER(eeprom_w);
+ DECLARE_READ8_MEMBER(flashrom_read);
+ DECLARE_WRITE8_MEMBER(flashrom_write);
+ DECLARE_WRITE32_MEMBER(sys386f2_eeprom_w);
};
diff --git a/src/mame/includes/seicross.h b/src/mame/includes/seicross.h
index 37da1ca8dbf..e8d97153f9b 100644
--- a/src/mame/includes/seicross.h
+++ b/src/mame/includes/seicross.h
@@ -23,6 +23,8 @@ public:
UINT8 m_irq_mask;
DECLARE_WRITE8_MEMBER(seicross_videoram_w);
DECLARE_WRITE8_MEMBER(seicross_colorram_w);
+ DECLARE_READ8_MEMBER(friskyt_portB_r);
+ DECLARE_WRITE8_MEMBER(friskyt_portB_w);
};
diff --git a/src/mame/includes/senjyo.h b/src/mame/includes/senjyo.h
index cb832df8a82..d1eae39649d 100644
--- a/src/mame/includes/senjyo.h
+++ b/src/mame/includes/senjyo.h
@@ -64,6 +64,7 @@ public:
DECLARE_WRITE8_MEMBER(senjyo_bg3videoram_w);
DECLARE_WRITE8_MEMBER(senjyo_bgstripes_w);
DECLARE_WRITE8_MEMBER(senjyo_volume_w);
+ DECLARE_WRITE8_MEMBER(sound_cmd_w);
};
diff --git a/src/mame/includes/seta.h b/src/mame/includes/seta.h
index 3fabe180a38..30eaf79eac0 100644
--- a/src/mame/includes/seta.h
+++ b/src/mame/includes/seta.h
@@ -156,6 +156,8 @@ public:
DECLARE_WRITE16_MEMBER(downtown_protection_w);
DECLARE_READ16_MEMBER(arbalest_debug_r);
DECLARE_WRITE16_MEMBER(magspeed_lights_w);
+ DECLARE_READ8_MEMBER(dsw1_r);
+ DECLARE_READ8_MEMBER(dsw2_r);
};
/*----------- defined in video/seta.c -----------*/
diff --git a/src/mame/includes/seta2.h b/src/mame/includes/seta2.h
index ba15d3271b5..080c9ba8427 100644
--- a/src/mame/includes/seta2.h
+++ b/src/mame/includes/seta2.h
@@ -57,6 +57,10 @@ public:
DECLARE_WRITE8_MEMBER(funcube_leds_w);
DECLARE_READ8_MEMBER(funcube_outputs_r);
DECLARE_WRITE8_MEMBER(funcube_outputs_w);
+ DECLARE_READ16_MEMBER(gundamex_eeprom_r);
+ DECLARE_WRITE16_MEMBER(gundamex_eeprom_w);
+ DECLARE_READ32_MEMBER(oki_read);
+ DECLARE_WRITE32_MEMBER(oki_write);
};
/*----------- defined in video/seta2.c -----------*/
diff --git a/src/mame/includes/sf.h b/src/mame/includes/sf.h
index e9b37eeb45f..d5644c27937 100644
--- a/src/mame/includes/sf.h
+++ b/src/mame/includes/sf.h
@@ -39,6 +39,8 @@ public:
DECLARE_WRITE16_MEMBER(sf_bg_scroll_w);
DECLARE_WRITE16_MEMBER(sf_fg_scroll_w);
DECLARE_WRITE16_MEMBER(sf_gfxctrl_w);
+ DECLARE_WRITE8_MEMBER(msm1_5205_w);
+ DECLARE_WRITE8_MEMBER(msm2_5205_w);
};
diff --git a/src/mame/includes/shadfrce.h b/src/mame/includes/shadfrce.h
index b50ce05c20b..83e5d6a3b9d 100644
--- a/src/mame/includes/shadfrce.h
+++ b/src/mame/includes/shadfrce.h
@@ -37,6 +37,7 @@ public:
DECLARE_WRITE16_MEMBER(shadfrce_bg0scrolly_w);
DECLARE_WRITE16_MEMBER(shadfrce_bg1scrollx_w);
DECLARE_WRITE16_MEMBER(shadfrce_bg1scrolly_w);
+ DECLARE_WRITE8_MEMBER(oki_bankswitch_w);
};
diff --git a/src/mame/includes/shangkid.h b/src/mame/includes/shangkid.h
index b92b7bdf620..0adc0e4397b 100644
--- a/src/mame/includes/shangkid.h
+++ b/src/mame/includes/shangkid.h
@@ -20,6 +20,9 @@ public:
DECLARE_WRITE8_MEMBER(shangkid_sound_enable_w);
DECLARE_READ8_MEMBER(shangkid_soundlatch_r);
DECLARE_WRITE8_MEMBER(shangkid_videoram_w);
+ DECLARE_WRITE8_MEMBER(chinhero_ay8910_porta_w);
+ DECLARE_WRITE8_MEMBER(shangkid_ay8910_porta_w);
+ DECLARE_WRITE8_MEMBER(ay8910_portb_w);
};
diff --git a/src/mame/includes/silkroad.h b/src/mame/includes/silkroad.h
index 803d6f1a0ff..8878c578fff 100644
--- a/src/mame/includes/silkroad.h
+++ b/src/mame/includes/silkroad.h
@@ -22,6 +22,7 @@ public:
DECLARE_WRITE32_MEMBER(silkroad_fgram_w);
DECLARE_WRITE32_MEMBER(silkroad_fgram2_w);
DECLARE_WRITE32_MEMBER(silkroad_fgram3_w);
+ DECLARE_WRITE32_MEMBER(silk_6295_bank_w);
};
diff --git a/src/mame/includes/skydiver.h b/src/mame/includes/skydiver.h
index b1ee6d61dee..277ba6b6ca9 100644
--- a/src/mame/includes/skydiver.h
+++ b/src/mame/includes/skydiver.h
@@ -44,6 +44,8 @@ public:
DECLARE_WRITE8_MEMBER(skydiver_lamp_y_w);
DECLARE_WRITE8_MEMBER(skydiver_lamp_d_w);
DECLARE_WRITE8_MEMBER(skydiver_2000_201F_w);
+ DECLARE_WRITE8_MEMBER(skydiver_sound_enable_w);
+ DECLARE_WRITE8_MEMBER(skydiver_whistle_w);
};
diff --git a/src/mame/includes/snk68.h b/src/mame/includes/snk68.h
index 789447aa970..0145bf4100e 100644
--- a/src/mame/includes/snk68.h
+++ b/src/mame/includes/snk68.h
@@ -36,6 +36,8 @@ public:
DECLARE_WRITE16_MEMBER(pow_flipscreen16_w);
DECLARE_WRITE16_MEMBER(searchar_flipscreen16_w);
DECLARE_WRITE16_MEMBER(pow_paletteram16_word_w);
+ DECLARE_WRITE8_MEMBER(D7759_write_port_0_w);
+ DECLARE_WRITE8_MEMBER(D7759_upd_reset_w);
};
diff --git a/src/mame/includes/snowbros.h b/src/mame/includes/snowbros.h
index afe9f1d668a..87f712094ca 100644
--- a/src/mame/includes/snowbros.h
+++ b/src/mame/includes/snowbros.h
@@ -32,5 +32,7 @@ public:
DECLARE_READ16_MEMBER(_4in1_02_read);
DECLARE_READ16_MEMBER(_3in1_read);
DECLARE_READ16_MEMBER(cookbib3_read);
+ DECLARE_WRITE8_MEMBER(twinadv_oki_bank_w);
+ DECLARE_WRITE16_MEMBER(sb3_sound_w);
};
diff --git a/src/mame/includes/speedatk.h b/src/mame/includes/speedatk.h
index 362b44db2c1..14e601783aa 100644
--- a/src/mame/includes/speedatk.h
+++ b/src/mame/includes/speedatk.h
@@ -23,6 +23,7 @@ public:
DECLARE_WRITE8_MEMBER(speedatk_videoram_w);
DECLARE_WRITE8_MEMBER(speedatk_colorram_w);
DECLARE_WRITE8_MEMBER(speedatk_6845_w);
+ DECLARE_WRITE8_MEMBER(speedatk_output_w);
};
diff --git a/src/mame/includes/speedspn.h b/src/mame/includes/speedspn.h
index 49d8d92b071..049909d2d9e 100644
--- a/src/mame/includes/speedspn.h
+++ b/src/mame/includes/speedspn.h
@@ -18,6 +18,7 @@ public:
DECLARE_READ8_MEMBER(speedspn_vidram_r);
DECLARE_WRITE8_MEMBER(speedspn_banked_vidram_change);
DECLARE_WRITE8_MEMBER(speedspn_global_display_w);
+ DECLARE_WRITE8_MEMBER(oki_banking_w);
};
diff --git a/src/mame/includes/spiders.h b/src/mame/includes/spiders.h
index 4b8bcd2a7e7..097393fb0d7 100644
--- a/src/mame/includes/spiders.h
+++ b/src/mame/includes/spiders.h
@@ -21,6 +21,13 @@ public:
UINT8 m_gfx_rom_ctrl_latch;
UINT8 m_gfx_rom_ctrl_data;
pen_t m_pens[NUM_PENS];
+ DECLARE_WRITE_LINE_MEMBER(main_cpu_irq);
+ DECLARE_WRITE_LINE_MEMBER(main_cpu_firq);
+ DECLARE_WRITE_LINE_MEMBER(audio_cpu_irq);
+ DECLARE_WRITE_LINE_MEMBER(flipscreen_w);
+ DECLARE_WRITE_LINE_MEMBER(display_enable_changed);
+ DECLARE_WRITE8_MEMBER(gfx_rom_intf_w);
+ DECLARE_READ8_MEMBER(gfx_rom_r);
};
diff --git a/src/mame/includes/sprint2.h b/src/mame/includes/sprint2.h
index f92c536a170..143d0644ddb 100644
--- a/src/mame/includes/sprint2.h
+++ b/src/mame/includes/sprint2.h
@@ -54,6 +54,10 @@ public:
DECLARE_WRITE8_MEMBER(sprint2_collision_reset1_w);
DECLARE_WRITE8_MEMBER(sprint2_collision_reset2_w);
DECLARE_WRITE8_MEMBER(sprint2_video_ram_w);
+ DECLARE_WRITE8_MEMBER(sprint2_attract_w);
+ DECLARE_WRITE8_MEMBER(sprint2_noise_reset_w);
+ DECLARE_WRITE8_MEMBER(sprint2_skid1_w);
+ DECLARE_WRITE8_MEMBER(sprint2_skid2_w);
};
diff --git a/src/mame/includes/sprint4.h b/src/mame/includes/sprint4.h
index 934cf0973ab..be0a93f48cd 100644
--- a/src/mame/includes/sprint4.h
+++ b/src/mame/includes/sprint4.h
@@ -28,6 +28,12 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(get_lever);
DECLARE_CUSTOM_INPUT_MEMBER(get_wheel);
DECLARE_CUSTOM_INPUT_MEMBER(get_collision);
+ DECLARE_WRITE8_MEMBER(sprint4_screech_1_w);
+ DECLARE_WRITE8_MEMBER(sprint4_screech_2_w);
+ DECLARE_WRITE8_MEMBER(sprint4_screech_3_w);
+ DECLARE_WRITE8_MEMBER(sprint4_screech_4_w);
+ DECLARE_WRITE8_MEMBER(sprint4_bang_w);
+ DECLARE_WRITE8_MEMBER(sprint4_attract_w);
};
diff --git a/src/mame/includes/srmp2.h b/src/mame/includes/srmp2.h
index 80a2f3bdabb..3417712e6c5 100644
--- a/src/mame/includes/srmp2.h
+++ b/src/mame/includes/srmp2.h
@@ -39,6 +39,8 @@ public:
DECLARE_WRITE8_MEMBER(srmp3_flags_w);
DECLARE_WRITE8_MEMBER(srmp3_irq_ack_w);
DECLARE_WRITE8_MEMBER(rmgoldyh_rombank_w);
+ DECLARE_WRITE16_MEMBER(srmp2_adpcm_code_w);
+ DECLARE_WRITE8_MEMBER(srmp3_adpcm_code_w);
};
diff --git a/src/mame/includes/sslam.h b/src/mame/includes/sslam.h
index e38b30700de..473ecd6ac53 100644
--- a/src/mame/includes/sslam.h
+++ b/src/mame/includes/sslam.h
@@ -41,6 +41,7 @@ public:
DECLARE_WRITE16_MEMBER(sslam_md_tileram_w);
DECLARE_WRITE16_MEMBER(sslam_bg_tileram_w);
DECLARE_WRITE16_MEMBER(powerbls_bg_tileram_w);
+ DECLARE_WRITE16_MEMBER(sslam_snd_w);
};
diff --git a/src/mame/includes/ssv.h b/src/mame/includes/ssv.h
index adb041f2823..f7bd6855e15 100644
--- a/src/mame/includes/ssv.h
+++ b/src/mame/includes/ssv.h
@@ -97,6 +97,8 @@ public:
DECLARE_READ16_MEMBER(ssv_vblank_r);
DECLARE_WRITE16_MEMBER(ssv_scroll_w);
DECLARE_WRITE16_MEMBER(paletteram16_xrgb_swap_word_w);
+ DECLARE_READ16_MEMBER(gdfs_eeprom_r);
+ DECLARE_WRITE16_MEMBER(gdfs_eeprom_w);
};
/*----------- defined in video/ssv.c -----------*/
diff --git a/src/mame/includes/starshp1.h b/src/mame/includes/starshp1.h
index 51f5bdb42bd..7b39e47dab8 100644
--- a/src/mame/includes/starshp1.h
+++ b/src/mame/includes/starshp1.h
@@ -73,6 +73,8 @@ public:
DECLARE_WRITE8_MEMBER(starshp1_playfield_w);
DECLARE_CUSTOM_INPUT_MEMBER(starshp1_analog_r);
DECLARE_CUSTOM_INPUT_MEMBER(collision_latch_r);
+ DECLARE_WRITE8_MEMBER(starshp1_audio_w);
+ DECLARE_WRITE8_MEMBER(starshp1_analog_out_w);
};
diff --git a/src/mame/includes/stlforce.h b/src/mame/includes/stlforce.h
index dbcab3f737f..46da26ac820 100644
--- a/src/mame/includes/stlforce.h
+++ b/src/mame/includes/stlforce.h
@@ -34,6 +34,8 @@ public:
DECLARE_WRITE16_MEMBER(stlforce_mlow_videoram_w);
DECLARE_WRITE16_MEMBER(stlforce_mhigh_videoram_w);
DECLARE_WRITE16_MEMBER(stlforce_tx_videoram_w);
+ DECLARE_WRITE16_MEMBER(eeprom_w);
+ DECLARE_WRITE16_MEMBER(oki_bank_w);
};
diff --git a/src/mame/includes/suna16.h b/src/mame/includes/suna16.h
index b9a93d2950f..68a6d4de33a 100644
--- a/src/mame/includes/suna16.h
+++ b/src/mame/includes/suna16.h
@@ -28,6 +28,11 @@ public:
DECLARE_WRITE16_MEMBER(bestbest_flipscreen_w);
DECLARE_READ16_MEMBER(suna16_paletteram16_r);
DECLARE_WRITE16_MEMBER(suna16_paletteram16_w);
+ DECLARE_WRITE8_MEMBER(bssoccer_DAC1_w);
+ DECLARE_WRITE8_MEMBER(bssoccer_DAC2_w);
+ DECLARE_WRITE8_MEMBER(bssoccer_DAC3_w);
+ DECLARE_WRITE8_MEMBER(bssoccer_DAC4_w);
+ DECLARE_WRITE8_MEMBER(bestbest_ay8910_port_a_w);
};
diff --git a/src/mame/includes/superqix.h b/src/mame/includes/superqix.h
index 35401aa8629..dcf45ffb8d2 100644
--- a/src/mame/includes/superqix.h
+++ b/src/mame/includes/superqix.h
@@ -61,6 +61,12 @@ public:
DECLARE_WRITE8_MEMBER(superqix_bitmapram2_w);
DECLARE_WRITE8_MEMBER(pbillian_0410_w);
DECLARE_WRITE8_MEMBER(superqix_0410_w);
+ DECLARE_READ8_MEMBER(in4_mcu_r);
+ DECLARE_READ8_MEMBER(sqix_from_mcu_r);
+ DECLARE_WRITE8_MEMBER(sqix_z80_mcu_w);
+ DECLARE_READ8_MEMBER(bootleg_in0_r);
+ DECLARE_READ8_MEMBER(hotsmash_ay_port_a_r);
+ DECLARE_READ8_MEMBER(pbillian_ay_port_a_r);
};
diff --git a/src/mame/includes/suprridr.h b/src/mame/includes/suprridr.h
index f7b41360d9b..26409f208a9 100644
--- a/src/mame/includes/suprridr.h
+++ b/src/mame/includes/suprridr.h
@@ -35,6 +35,7 @@ public:
DECLARE_WRITE8_MEMBER(suprridr_bgram_w);
DECLARE_WRITE8_MEMBER(suprridr_fgram_w);
DECLARE_CUSTOM_INPUT_MEMBER(suprridr_control_r);
+ DECLARE_READ8_MEMBER(sound_data_r);
};
diff --git a/src/mame/includes/system1.h b/src/mame/includes/system1.h
index 2153b577b49..0f3a488d77a 100644
--- a/src/mame/includes/system1.h
+++ b/src/mame/includes/system1.h
@@ -62,6 +62,7 @@ public:
DECLARE_WRITE8_MEMBER(system1_paletteram_w);
DECLARE_CUSTOM_INPUT_MEMBER(dakkochn_mux_data_r);
DECLARE_CUSTOM_INPUT_MEMBER(dakkochn_mux_status_r);
+ DECLARE_WRITE8_MEMBER(sound_control_w);
};
diff --git a/src/mame/includes/system16.h b/src/mame/includes/system16.h
index 4b5be991c07..d0c15b2fa71 100644
--- a/src/mame/includes/system16.h
+++ b/src/mame/includes/system16.h
@@ -150,6 +150,7 @@ public:
DECLARE_WRITE16_MEMBER(s16a_bootleg_fgscrolly_w);
DECLARE_WRITE16_MEMBER(s16a_bootleg_fgscrollx_w);
DECLARE_WRITE16_MEMBER(s16a_bootleg_tilemapselect_w);
+ DECLARE_WRITE8_MEMBER(upd7759_bank_w);
};
/*----------- defined in video/system16.c -----------*/
diff --git a/src/mame/includes/tail2nos.h b/src/mame/includes/tail2nos.h
index 36213b70221..de7208397db 100644
--- a/src/mame/includes/tail2nos.h
+++ b/src/mame/includes/tail2nos.h
@@ -33,6 +33,7 @@ public:
DECLARE_READ16_MEMBER(tail2nos_zoomdata_r);
DECLARE_WRITE16_MEMBER(tail2nos_zoomdata_w);
DECLARE_WRITE16_MEMBER(tail2nos_gfxbank_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
};
diff --git a/src/mame/includes/taito_f2.h b/src/mame/includes/taito_f2.h
index 9f03e279e2c..ffffbdff4fd 100644
--- a/src/mame/includes/taito_f2.h
+++ b/src/mame/includes/taito_f2.h
@@ -98,6 +98,7 @@ public:
DECLARE_WRITE16_MEMBER(taitof2_sprite_extension_w);
DECLARE_WRITE16_MEMBER(taitof2_spritebank_w);
DECLARE_WRITE16_MEMBER(koshien_spritebank_w);
+ DECLARE_WRITE8_MEMBER(cameltrya_porta_w);
};
/*----------- defined in video/taito_f2.c -----------*/
diff --git a/src/mame/includes/taito_l.h b/src/mame/includes/taito_l.h
index 89e525b20e0..6c071579cb9 100644
--- a/src/mame/includes/taito_l.h
+++ b/src/mame/includes/taito_l.h
@@ -96,6 +96,13 @@ public:
DECLARE_READ8_MEMBER(taitol_bankc_r);
DECLARE_WRITE8_MEMBER(taitol_control_w);
DECLARE_READ8_MEMBER(taitol_control_r);
+ DECLARE_READ8_MEMBER(portA_r);
+ DECLARE_READ8_MEMBER(portB_r);
+ DECLARE_READ8_MEMBER(extport_select_and_ym2203_r);
+ DECLARE_WRITE8_MEMBER(champwr_msm5205_start_w);
+ DECLARE_WRITE8_MEMBER(champwr_msm5205_stop_w);
+ DECLARE_WRITE8_MEMBER(champwr_msm5205_volume_w);
+ DECLARE_WRITE8_MEMBER(portA_w);
};
/*----------- defined in video/taito_l.c -----------*/
diff --git a/src/mame/includes/taitosj.h b/src/mame/includes/taitosj.h
index dc61c9fab1d..e13bf3dc536 100644
--- a/src/mame/includes/taitosj.h
+++ b/src/mame/includes/taitosj.h
@@ -76,6 +76,10 @@ public:
DECLARE_WRITE8_MEMBER(taitosj_collision_reg_clear_w);
DECLARE_CUSTOM_INPUT_MEMBER(input_port_4_f0_r);
DECLARE_CUSTOM_INPUT_MEMBER(kikstart_gear_r);
+ DECLARE_WRITE8_MEMBER(taitosj_sndnmi_msk_w);
+ DECLARE_WRITE8_MEMBER(input_port_4_f0_w);
+ DECLARE_WRITE8_MEMBER(dac_out_w);
+ DECLARE_WRITE8_MEMBER(dac_vol_w);
};
diff --git a/src/mame/includes/tank8.h b/src/mame/includes/tank8.h
index 76413bd1615..06b30b24c1c 100644
--- a/src/mame/includes/tank8.h
+++ b/src/mame/includes/tank8.h
@@ -48,6 +48,12 @@ public:
DECLARE_WRITE8_MEMBER(tank8_lockout_w);
DECLARE_WRITE8_MEMBER(tank8_int_reset_w);
DECLARE_WRITE8_MEMBER(tank8_video_ram_w);
+ DECLARE_WRITE8_MEMBER(tank8_crash_w);
+ DECLARE_WRITE8_MEMBER(tank8_explosion_w);
+ DECLARE_WRITE8_MEMBER(tank8_bugle_w);
+ DECLARE_WRITE8_MEMBER(tank8_bug_w);
+ DECLARE_WRITE8_MEMBER(tank8_attract_w);
+ DECLARE_WRITE8_MEMBER(tank8_motor_w);
};
diff --git a/src/mame/includes/tankbust.h b/src/mame/includes/tankbust.h
index bfddaf4ad66..89e69226b03 100644
--- a/src/mame/includes/tankbust.h
+++ b/src/mame/includes/tankbust.h
@@ -35,6 +35,8 @@ public:
DECLARE_READ8_MEMBER(tankbust_txtram_r);
DECLARE_WRITE8_MEMBER(tankbust_xscroll_w);
DECLARE_WRITE8_MEMBER(tankbust_yscroll_w);
+ DECLARE_READ8_MEMBER(tankbust_soundlatch_r);
+ DECLARE_READ8_MEMBER(tankbust_soundtimer_r);
};
diff --git a/src/mame/includes/taxidriv.h b/src/mame/includes/taxidriv.h
index 83887f9153e..9db11ed694e 100644
--- a/src/mame/includes/taxidriv.h
+++ b/src/mame/includes/taxidriv.h
@@ -30,11 +30,30 @@ public:
required_shared_ptr<UINT8> m_scroll;
int m_bghide;
int m_spritectrl[9];
+ DECLARE_WRITE8_MEMBER(p2a_w);
+ DECLARE_WRITE8_MEMBER(p2b_w);
+ DECLARE_WRITE8_MEMBER(p2c_w);
+ DECLARE_WRITE8_MEMBER(p3a_w);
+ DECLARE_WRITE8_MEMBER(p3b_w);
+ DECLARE_WRITE8_MEMBER(p3c_w);
+ DECLARE_WRITE8_MEMBER(p4a_w);
+ DECLARE_WRITE8_MEMBER(p4b_w);
+ DECLARE_WRITE8_MEMBER(p4c_w);
+ DECLARE_READ8_MEMBER(p0a_r);
+ DECLARE_READ8_MEMBER(p0c_r);
+ DECLARE_WRITE8_MEMBER(p0b_w);
+ DECLARE_WRITE8_MEMBER(p0c_w);
+ DECLARE_READ8_MEMBER(p1b_r);
+ DECLARE_READ8_MEMBER(p1c_r);
+ DECLARE_WRITE8_MEMBER(p1a_w);
+ DECLARE_WRITE8_MEMBER(p1c_w);
+ DECLARE_READ8_MEMBER(p8910_0a_r);
+ DECLARE_READ8_MEMBER(p8910_1a_r);
+ DECLARE_WRITE8_MEMBER(p8910_0b_w);
+ DECLARE_WRITE8_MEMBER(taxidriv_spritectrl_w);
};
/*----------- defined in video/taxidriv.c -----------*/
-WRITE8_DEVICE_HANDLER( taxidriv_spritectrl_w );
-
SCREEN_UPDATE_IND16( taxidriv );
diff --git a/src/mame/includes/tceptor.h b/src/mame/includes/tceptor.h
index cf40f625032..ea55634d989 100644
--- a/src/mame/includes/tceptor.h
+++ b/src/mame/includes/tceptor.h
@@ -47,6 +47,7 @@ public:
DECLARE_WRITE8_MEMBER(tceptor_bg_ram_w);
DECLARE_WRITE8_MEMBER(tceptor_bg_scroll_w);
void tile_mark_dirty(int offset);
+ DECLARE_WRITE8_MEMBER(voice_w);
};
diff --git a/src/mame/includes/tecmo.h b/src/mame/includes/tecmo.h
index cab0e0c81ff..a9474f739a2 100644
--- a/src/mame/includes/tecmo.h
+++ b/src/mame/includes/tecmo.h
@@ -35,6 +35,8 @@ public:
DECLARE_WRITE8_MEMBER(tecmo_fgscroll_w);
DECLARE_WRITE8_MEMBER(tecmo_bgscroll_w);
DECLARE_WRITE8_MEMBER(tecmo_flipscreen_w);
+ DECLARE_WRITE8_MEMBER(tecmo_adpcm_start_w);
+ DECLARE_WRITE8_MEMBER(tecmo_adpcm_vol_w);
};
diff --git a/src/mame/includes/tecmosys.h b/src/mame/includes/tecmosys.h
index 47ac9e68c63..26ce5c24455 100644
--- a/src/mame/includes/tecmosys.h
+++ b/src/mame/includes/tecmosys.h
@@ -68,6 +68,8 @@ public:
DECLARE_WRITE16_MEMBER(bg0_tilemap_lineram_w);
DECLARE_WRITE16_MEMBER(bg1_tilemap_lineram_w);
DECLARE_WRITE16_MEMBER(bg2_tilemap_lineram_w);
+ DECLARE_READ16_MEMBER(eeprom_r);
+ DECLARE_WRITE16_MEMBER(eeprom_w);
};
diff --git a/src/mame/includes/tehkanwc.h b/src/mame/includes/tehkanwc.h
index c7da48ba57f..1d6ce420253 100644
--- a/src/mame/includes/tehkanwc.h
+++ b/src/mame/includes/tehkanwc.h
@@ -37,6 +37,11 @@ public:
DECLARE_WRITE8_MEMBER(tehkanwc_flipscreen_y_w);
DECLARE_WRITE8_MEMBER(gridiron_led0_w);
DECLARE_WRITE8_MEMBER(gridiron_led1_w);
+ DECLARE_READ8_MEMBER(tehkanwc_portA_r);
+ DECLARE_READ8_MEMBER(tehkanwc_portB_r);
+ DECLARE_WRITE8_MEMBER(tehkanwc_portA_w);
+ DECLARE_WRITE8_MEMBER(tehkanwc_portB_w);
+ DECLARE_WRITE8_MEMBER(msm_reset_w);
};
diff --git a/src/mame/includes/thief.h b/src/mame/includes/thief.h
index 9136bb12ac2..f8a64d5797c 100644
--- a/src/mame/includes/thief.h
+++ b/src/mame/includes/thief.h
@@ -30,6 +30,7 @@ public:
DECLARE_WRITE8_MEMBER(thief_blit_w);
DECLARE_READ8_MEMBER(thief_coprocessor_r);
DECLARE_WRITE8_MEMBER(thief_coprocessor_w);
+ DECLARE_WRITE8_MEMBER(tape_control_w);
};
diff --git a/src/mame/includes/thunderx.h b/src/mame/includes/thunderx.h
index 9a57c0f7518..b2a4cfdc4a9 100644
--- a/src/mame/includes/thunderx.h
+++ b/src/mame/includes/thunderx.h
@@ -44,6 +44,7 @@ public:
DECLARE_WRITE8_MEMBER(thunderx_sh_irqtrigger_w);
DECLARE_READ8_MEMBER(k052109_051960_r);
DECLARE_WRITE8_MEMBER(k052109_051960_w);
+ DECLARE_WRITE8_MEMBER(scontra_snd_bankswitch_w);
};
diff --git a/src/mame/includes/tigeroad.h b/src/mame/includes/tigeroad.h
index 90fa46bceec..26a9cccd2f6 100644
--- a/src/mame/includes/tigeroad.h
+++ b/src/mame/includes/tigeroad.h
@@ -20,6 +20,7 @@ public:
DECLARE_WRITE16_MEMBER(tigeroad_videoram_w);
DECLARE_WRITE16_MEMBER(tigeroad_videoctrl_w);
DECLARE_WRITE16_MEMBER(tigeroad_scroll_w);
+ DECLARE_WRITE8_MEMBER(msm5205_w);
};
diff --git a/src/mame/includes/timeplt.h b/src/mame/includes/timeplt.h
index 1947a3e201c..9bf2fc83ff5 100644
--- a/src/mame/includes/timeplt.h
+++ b/src/mame/includes/timeplt.h
@@ -42,6 +42,7 @@ public:
DECLARE_WRITE8_MEMBER(timeplt_flipscreen_w);
DECLARE_READ8_MEMBER(timeplt_scanline_r);
DECLARE_CUSTOM_INPUT_MEMBER(chkun_hopper_status_r);
+ DECLARE_WRITE8_MEMBER(chkun_sound_w);
};
diff --git a/src/mame/includes/tmnt.h b/src/mame/includes/tmnt.h
index 7beea478e7a..2136941a9c8 100644
--- a/src/mame/includes/tmnt.h
+++ b/src/mame/includes/tmnt.h
@@ -112,6 +112,10 @@ public:
DECLARE_READ16_MEMBER(prmrsocr_rom_r);
DECLARE_WRITE16_MEMBER(tmnt_priority_w);
DECLARE_READ16_MEMBER(glfgreat_ball_r);
+ DECLARE_READ8_MEMBER(punkshot_sound_r);
+ DECLARE_WRITE8_MEMBER(glfgreat_sound_w);
+ DECLARE_WRITE8_MEMBER(tmnt_upd_start_w);
+ DECLARE_READ8_MEMBER(tmnt_upd_busy_r);
};
diff --git a/src/mame/includes/tnzs.h b/src/mame/includes/tnzs.h
index c673df1d26f..097c60cb55c 100644
--- a/src/mame/includes/tnzs.h
+++ b/src/mame/includes/tnzs.h
@@ -70,6 +70,10 @@ public:
DECLARE_READ8_MEMBER(mcu_extrmatn_r);
DECLARE_WRITE8_MEMBER(mcu_extrmatn_w);
DECLARE_WRITE8_MEMBER(tnzs_sync_kludge_w);
+ DECLARE_READ8_MEMBER(kageki_csport_r);
+ DECLARE_WRITE8_MEMBER(kageki_csport_w);
+ DECLARE_WRITE8_MEMBER(kabukiz_sound_bank_w);
+ DECLARE_WRITE8_MEMBER(kabukiz_sample_w);
};
diff --git a/src/mame/includes/toaplan2.h b/src/mame/includes/toaplan2.h
index 82f28cb87d1..4fc073404a8 100644
--- a/src/mame/includes/toaplan2.h
+++ b/src/mame/includes/toaplan2.h
@@ -99,6 +99,8 @@ public:
DECLARE_WRITE16_MEMBER(batrider_unknown_dma_w);
DECLARE_WRITE16_MEMBER(batrider_objectbank_w);
DECLARE_CUSTOM_INPUT_MEMBER(c2map_r);
+ DECLARE_WRITE16_MEMBER(oki_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(oki1_bankswitch_w);
};
/*----------- defined in video/toaplan2.c -----------*/
diff --git a/src/mame/includes/toki.h b/src/mame/includes/toki.h
index e180bf2f9ea..4413c8a9ce9 100644
--- a/src/mame/includes/toki.h
+++ b/src/mame/includes/toki.h
@@ -30,6 +30,7 @@ public:
DECLARE_WRITE16_MEMBER(toki_foreground_videoram16_w);
DECLARE_WRITE16_MEMBER(toki_background1_videoram16_w);
DECLARE_WRITE16_MEMBER(toki_background2_videoram16_w);
+ DECLARE_WRITE8_MEMBER(toki_adpcm_control_w);
};
diff --git a/src/mame/includes/topspeed.h b/src/mame/includes/topspeed.h
index 4d957f3e766..f1655177892 100644
--- a/src/mame/includes/topspeed.h
+++ b/src/mame/includes/topspeed.h
@@ -43,6 +43,9 @@ public:
DECLARE_READ8_MEMBER(topspeed_input_bypass_r);
DECLARE_READ16_MEMBER(topspeed_motor_r);
DECLARE_WRITE16_MEMBER(topspeed_motor_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(topspeed_msm5205_address_w);
+ DECLARE_WRITE8_MEMBER(topspeed_msm5205_stop_w);
};
diff --git a/src/mame/includes/toypop.h b/src/mame/includes/toypop.h
index 81103090589..e6d27d7a387 100644
--- a/src/mame/includes/toypop.h
+++ b/src/mame/includes/toypop.h
@@ -37,6 +37,13 @@ public:
DECLARE_WRITE16_MEMBER(toypop_flipscreen_w);
DECLARE_READ16_MEMBER(toypop_merged_background_r);
DECLARE_WRITE16_MEMBER(toypop_merged_background_w);
+ DECLARE_READ8_MEMBER(dipA_l);
+ DECLARE_READ8_MEMBER(dipA_h);
+ DECLARE_READ8_MEMBER(dipB_l);
+ DECLARE_READ8_MEMBER(dipB_h);
+ DECLARE_WRITE8_MEMBER(out_coin0);
+ DECLARE_WRITE8_MEMBER(out_coin1);
+ DECLARE_WRITE8_MEMBER(flip);
};
diff --git a/src/mame/includes/trackfld.h b/src/mame/includes/trackfld.h
index f74c2d55d61..fbfa6a8e75b 100644
--- a/src/mame/includes/trackfld.h
+++ b/src/mame/includes/trackfld.h
@@ -43,6 +43,10 @@ public:
DECLARE_WRITE8_MEMBER(trackfld_colorram_w);
DECLARE_WRITE8_MEMBER(trackfld_flipscreen_w);
DECLARE_WRITE8_MEMBER(atlantol_gfxbank_w);
+ DECLARE_READ8_MEMBER(trackfld_SN76496_r);
+ DECLARE_READ8_MEMBER(trackfld_speech_r);
+ DECLARE_WRITE8_MEMBER(trackfld_VLM5030_control_w);
+
};
diff --git a/src/mame/includes/truco.h b/src/mame/includes/truco.h
index 35ceea7d9a7..3a8e169f447 100644
--- a/src/mame/includes/truco.h
+++ b/src/mame/includes/truco.h
@@ -9,6 +9,11 @@ public:
required_shared_ptr<UINT8> m_videoram;
required_shared_ptr<UINT8> m_battery_ram;
int m_trigger;
+ DECLARE_WRITE8_MEMBER(porta_w);
+ DECLARE_WRITE8_MEMBER(pia_ca2_w);
+ DECLARE_WRITE8_MEMBER(portb_w);
+ DECLARE_WRITE8_MEMBER(pia_irqa_w);
+ DECLARE_WRITE8_MEMBER(pia_irqb_w);
};
diff --git a/src/mame/includes/trucocl.h b/src/mame/includes/trucocl.h
index 1d26bb3a7fd..d3271d720bf 100644
--- a/src/mame/includes/trucocl.h
+++ b/src/mame/includes/trucocl.h
@@ -16,6 +16,7 @@ public:
DECLARE_WRITE8_MEMBER(irq_enable_w);
DECLARE_WRITE8_MEMBER(trucocl_videoram_w);
DECLARE_WRITE8_MEMBER(trucocl_colorram_w);
+ DECLARE_WRITE8_MEMBER(audio_dac_w);
};
diff --git a/src/mame/includes/tubep.h b/src/mame/includes/tubep.h
index 8bdfdd7d77f..7bde8cb2d17 100644
--- a/src/mame/includes/tubep.h
+++ b/src/mame/includes/tubep.h
@@ -60,6 +60,14 @@ public:
DECLARE_WRITE8_MEMBER(tubep_sprite_control_w);
DECLARE_WRITE8_MEMBER(rjammer_background_LS377_w);
DECLARE_WRITE8_MEMBER(rjammer_background_page_w);
+ DECLARE_WRITE8_MEMBER(rjammer_voice_startstop_w);
+ DECLARE_WRITE8_MEMBER(rjammer_voice_frequency_select_w);
+ DECLARE_WRITE8_MEMBER(ay8910_portA_0_w);
+ DECLARE_WRITE8_MEMBER(ay8910_portB_0_w);
+ DECLARE_WRITE8_MEMBER(ay8910_portA_1_w);
+ DECLARE_WRITE8_MEMBER(ay8910_portB_1_w);
+ DECLARE_WRITE8_MEMBER(ay8910_portA_2_w);
+ DECLARE_WRITE8_MEMBER(ay8910_portB_2_w);
};
diff --git a/src/mame/includes/tumbleb.h b/src/mame/includes/tumbleb.h
index 798d19dbed0..e983cf39c36 100644
--- a/src/mame/includes/tumbleb.h
+++ b/src/mame/includes/tumbleb.h
@@ -63,6 +63,7 @@ public:
DECLARE_WRITE16_MEMBER(tumblepb_control_0_w);
DECLARE_WRITE16_MEMBER(pangpang_pf1_data_w);
DECLARE_WRITE16_MEMBER(pangpang_pf2_data_w);
+ DECLARE_WRITE16_MEMBER(tumbleb2_soundmcu_w);
};
/*----------- defined in video/tumbleb.c -----------*/
diff --git a/src/mame/includes/tumblep.h b/src/mame/includes/tumblep.h
index 2679b56239c..16fdd8456fe 100644
--- a/src/mame/includes/tumblep.h
+++ b/src/mame/includes/tumblep.h
@@ -27,6 +27,7 @@ public:
DECLARE_WRITE16_MEMBER(tumblep_sound_w);
DECLARE_WRITE16_MEMBER(jumppop_sound_w);
DECLARE_READ16_MEMBER(tumblepop_controls_r);
+ DECLARE_WRITE16_MEMBER(tumblep_oki_w);
};
diff --git a/src/mame/includes/tunhunt.h b/src/mame/includes/tunhunt.h
index a74f8fda9c3..ccd545e987f 100644
--- a/src/mame/includes/tunhunt.h
+++ b/src/mame/includes/tunhunt.h
@@ -16,6 +16,11 @@ public:
DECLARE_WRITE8_MEMBER(tunhunt_control_w);
DECLARE_READ8_MEMBER(tunhunt_button_r);
DECLARE_WRITE8_MEMBER(tunhunt_videoram_w);
+ DECLARE_READ8_MEMBER(dsw2_0r);
+ DECLARE_READ8_MEMBER(dsw2_1r);
+ DECLARE_READ8_MEMBER(dsw2_2r);
+ DECLARE_READ8_MEMBER(dsw2_3r);
+ DECLARE_READ8_MEMBER(dsw2_4r);
};
diff --git a/src/mame/includes/turbo.h b/src/mame/includes/turbo.h
index e2cf5e6c340..dd17717cc9e 100644
--- a/src/mame/includes/turbo.h
+++ b/src/mame/includes/turbo.h
@@ -85,6 +85,22 @@ public:
DECLARE_READ8_MEMBER(buckrog_port_3_r);
DECLARE_WRITE8_MEMBER(turbo_videoram_w);
DECLARE_WRITE8_MEMBER(buckrog_bitmap_w);
+ DECLARE_WRITE8_MEMBER(turbo_ppi0a_w);
+ DECLARE_WRITE8_MEMBER(turbo_ppi0b_w);
+ DECLARE_WRITE8_MEMBER(turbo_ppi0c_w);
+ DECLARE_WRITE8_MEMBER(turbo_ppi1a_w);
+ DECLARE_WRITE8_MEMBER(turbo_ppi1b_w);
+ DECLARE_WRITE8_MEMBER(turbo_ppi1c_w);
+ DECLARE_WRITE8_MEMBER(turbo_ppi3c_w);
+ DECLARE_WRITE8_MEMBER(subroc3d_ppi0a_w);
+ DECLARE_WRITE8_MEMBER(subroc3d_ppi0c_w);
+ DECLARE_WRITE8_MEMBER(subroc3d_ppi0b_w);
+ DECLARE_WRITE8_MEMBER(buckrog_ppi0a_w);
+ DECLARE_WRITE8_MEMBER(buckrog_ppi0b_w);
+ DECLARE_WRITE8_MEMBER(buckrog_ppi0c_w);
+ DECLARE_WRITE8_MEMBER(buckrog_ppi1c_w);
+ DECLARE_READ8_MEMBER(turbo_analog_r);
+ DECLARE_WRITE8_MEMBER(buckrog_ppi8255_0_w);
};
diff --git a/src/mame/includes/twin16.h b/src/mame/includes/twin16.h
index 3c835055e28..a8eb1df618a 100644
--- a/src/mame/includes/twin16.h
+++ b/src/mame/includes/twin16.h
@@ -51,6 +51,9 @@ public:
DECLARE_WRITE16_MEMBER(fround_gfx_bank_w);
DECLARE_WRITE16_MEMBER(twin16_video_register_w);
DECLARE_READ16_MEMBER(twin16_sprite_status_r);
+ DECLARE_READ8_MEMBER(twin16_upd_busy_r);
+ DECLARE_WRITE8_MEMBER(twin16_upd_reset_w);
+ DECLARE_WRITE8_MEMBER(twin16_upd_start_w);
};
diff --git a/src/mame/includes/tx1.h b/src/mame/includes/tx1.h
index ab0dd005a58..2ac98c96f8f 100644
--- a/src/mame/includes/tx1.h
+++ b/src/mame/includes/tx1.h
@@ -157,6 +157,10 @@ public:
DECLARE_WRITE8_MEMBER(tx1_ppi_latch_w);
DECLARE_READ8_MEMBER(bb_analog_r);
DECLARE_READ8_MEMBER(bbjr_analog_r);
+ DECLARE_WRITE8_MEMBER(tx1_coin_cnt_w);
+ DECLARE_WRITE8_MEMBER(bb_coin_cnt_w);
+ DECLARE_READ8_MEMBER(tx1_ppi_porta_r);
+ DECLARE_READ8_MEMBER(tx1_ppi_portb_r);
};
diff --git a/src/mame/includes/ultratnk.h b/src/mame/includes/ultratnk.h
index 7b1c8f8727e..fbe954a2cd8 100644
--- a/src/mame/includes/ultratnk.h
+++ b/src/mame/includes/ultratnk.h
@@ -31,6 +31,10 @@ public:
DECLARE_WRITE8_MEMBER(ultratnk_video_ram_w);
DECLARE_CUSTOM_INPUT_MEMBER(get_collision);
DECLARE_CUSTOM_INPUT_MEMBER(get_joystick);
+ DECLARE_WRITE8_MEMBER(ultratnk_fire_1_w);
+ DECLARE_WRITE8_MEMBER(ultratnk_fire_2_w);
+ DECLARE_WRITE8_MEMBER(ultratnk_attract_w);
+ DECLARE_WRITE8_MEMBER(ultratnk_explosion_w);
};
diff --git a/src/mame/includes/unico.h b/src/mame/includes/unico.h
index 15b9c49dbe6..326dc343e38 100644
--- a/src/mame/includes/unico.h
+++ b/src/mame/includes/unico.h
@@ -32,6 +32,8 @@ public:
DECLARE_WRITE32_MEMBER(unico_palette32_w);
DECLARE_WRITE16_MEMBER(unico_vram_w);
DECLARE_WRITE32_MEMBER(unico_vram32_w);
+ DECLARE_WRITE16_MEMBER(burglarx_sound_bank_w);
+ DECLARE_WRITE32_MEMBER(zeropnt2_eeprom_w);
};
diff --git a/src/mame/includes/vendetta.h b/src/mame/includes/vendetta.h
index d51b53495d8..c029b660e5b 100644
--- a/src/mame/includes/vendetta.h
+++ b/src/mame/includes/vendetta.h
@@ -38,6 +38,7 @@ public:
DECLARE_WRITE8_MEMBER(z80_arm_nmi_w);
DECLARE_WRITE8_MEMBER(z80_irq_w);
DECLARE_READ8_MEMBER(vendetta_sound_interrupt_r);
+ DECLARE_READ8_MEMBER(vendetta_sound_r);
};
/*----------- defined in video/vendetta.c -----------*/
diff --git a/src/mame/includes/vertigo.h b/src/mame/includes/vertigo.h
index 8c1cb402c6a..fa830715abc 100644
--- a/src/mame/includes/vertigo.h
+++ b/src/mame/includes/vertigo.h
@@ -106,6 +106,8 @@ public:
DECLARE_WRITE16_MEMBER(vertigo_audio_w);
DECLARE_READ16_MEMBER(vertigo_sio_r);
DECLARE_WRITE16_MEMBER(vertigo_motor_w);
+ DECLARE_READ16_MEMBER(vertigo_pit8254_lsb_r);
+ DECLARE_WRITE16_MEMBER(vertigo_pit8254_lsb_w);
};
diff --git a/src/mame/includes/videopin.h b/src/mame/includes/videopin.h
index 88d8c475a20..939fae01c38 100644
--- a/src/mame/includes/videopin.h
+++ b/src/mame/includes/videopin.h
@@ -34,6 +34,9 @@ public:
DECLARE_WRITE8_MEMBER(videopin_led_w);
DECLARE_WRITE8_MEMBER(videopin_ball_w);
DECLARE_WRITE8_MEMBER(videopin_video_ram_w);
+ DECLARE_WRITE8_MEMBER(videopin_out1_w);
+ DECLARE_WRITE8_MEMBER(videopin_out2_w);
+ DECLARE_WRITE8_MEMBER(videopin_note_dvsr_w);
};
diff --git a/src/mame/includes/vsnes.h b/src/mame/includes/vsnes.h
index 2c5c518ba54..ef7a055d988 100644
--- a/src/mame/includes/vsnes.h
+++ b/src/mame/includes/vsnes.h
@@ -71,6 +71,12 @@ public:
DECLARE_READ8_MEMBER(set_bnglngby_irq_r);
DECLARE_WRITE8_MEMBER(vsdual_vrom_banking);
void v_set_mirroring(int ppu, int mirroring);
+ DECLARE_READ8_MEMBER(psg1_4015_r);
+ DECLARE_WRITE8_MEMBER(psg1_4015_w);
+ DECLARE_WRITE8_MEMBER(psg1_4017_w);
+ DECLARE_READ8_MEMBER(psg2_4015_r);
+ DECLARE_WRITE8_MEMBER(psg2_4015_w);
+ DECLARE_WRITE8_MEMBER(psg2_4017_w);
};
diff --git a/src/mame/includes/warpwarp.h b/src/mame/includes/warpwarp.h
index c68d70c80e6..aaf82f2cda1 100644
--- a/src/mame/includes/warpwarp.h
+++ b/src/mame/includes/warpwarp.h
@@ -27,6 +27,8 @@ public:
DECLARE_WRITE8_MEMBER(warpwarp_out3_w);
DECLARE_WRITE8_MEMBER(geebee_videoram_w);
DECLARE_WRITE8_MEMBER(warpwarp_videoram_w);
+ DECLARE_READ8_MEMBER(warpwarp_dsw1_r);
+ DECLARE_READ8_MEMBER(warpwarp_vol_r);
};
diff --git a/src/mame/includes/wc90b.h b/src/mame/includes/wc90b.h
index b976c0de3aa..946b8b2dc3f 100644
--- a/src/mame/includes/wc90b.h
+++ b/src/mame/includes/wc90b.h
@@ -34,6 +34,7 @@ public:
DECLARE_WRITE8_MEMBER(wc90b_bgvideoram_w);
DECLARE_WRITE8_MEMBER(wc90b_fgvideoram_w);
DECLARE_WRITE8_MEMBER(wc90b_txvideoram_w);
+ DECLARE_WRITE8_MEMBER(adpcm_control_w);
};
diff --git a/src/mame/includes/wecleman.h b/src/mame/includes/wecleman.h
index 41acf8380e4..9176ceebefd 100644
--- a/src/mame/includes/wecleman.h
+++ b/src/mame/includes/wecleman.h
@@ -60,6 +60,13 @@ public:
DECLARE_WRITE16_MEMBER(wecleman_videostatus_w);
DECLARE_WRITE16_MEMBER(hotchase_paletteram16_SBGRBBBBGGGGRRRR_word_w);
DECLARE_WRITE16_MEMBER(wecleman_paletteram16_SSSSBBBBGGGGRRRR_word_w);
+ DECLARE_WRITE8_MEMBER(wecleman_K00723216_bank_w);
+ DECLARE_READ8_MEMBER(hotchase_1_k007232_r);
+ DECLARE_WRITE8_MEMBER(hotchase_1_k007232_w);
+ DECLARE_READ8_MEMBER(hotchase_2_k007232_r);
+ DECLARE_WRITE8_MEMBER(hotchase_2_k007232_w);
+ DECLARE_READ8_MEMBER(hotchase_3_k007232_r);
+ DECLARE_WRITE8_MEMBER(hotchase_3_k007232_w);
};
diff --git a/src/mame/includes/wolfpack.h b/src/mame/includes/wolfpack.h
index 93d524081f1..2e3b4da3681 100644
--- a/src/mame/includes/wolfpack.h
+++ b/src/mame/includes/wolfpack.h
@@ -49,6 +49,8 @@ public:
DECLARE_WRITE8_MEMBER(wolfpack_torpedo_h_w);
DECLARE_WRITE8_MEMBER(wolfpack_torpedo_v_w);
DECLARE_CUSTOM_INPUT_MEMBER(wolfpack_dial_r);
+ DECLARE_WRITE8_MEMBER(wolfpack_word_w);
+ DECLARE_WRITE8_MEMBER(wolfpack_start_speech_w);
};
diff --git a/src/mame/includes/wwfwfest.h b/src/mame/includes/wwfwfest.h
index c5f37e050c4..575be8fa300 100644
--- a/src/mame/includes/wwfwfest.h
+++ b/src/mame/includes/wwfwfest.h
@@ -37,6 +37,7 @@ public:
DECLARE_WRITE16_MEMBER(wwfwfest_bg1_videoram_w);
DECLARE_CUSTOM_INPUT_MEMBER(dsw_3f_r);
DECLARE_CUSTOM_INPUT_MEMBER(dsw_c0_r);
+ DECLARE_WRITE8_MEMBER(oki_bankswitch_w);
};
diff --git a/src/mame/includes/xorworld.h b/src/mame/includes/xorworld.h
index 13f8dbe9b9e..74a03778235 100644
--- a/src/mame/includes/xorworld.h
+++ b/src/mame/includes/xorworld.h
@@ -12,6 +12,9 @@ public:
DECLARE_WRITE16_MEMBER(xorworld_irq2_ack_w);
DECLARE_WRITE16_MEMBER(xorworld_irq6_ack_w);
DECLARE_WRITE16_MEMBER(xorworld_videoram16_w);
+ DECLARE_WRITE16_MEMBER(eeprom_chip_select_w);
+ DECLARE_WRITE16_MEMBER(eeprom_serial_clock_w);
+ DECLARE_WRITE16_MEMBER(eeprom_data_w);
};
diff --git a/src/mame/includes/yiear.h b/src/mame/includes/yiear.h
index d4808d72850..ea40037ebf9 100644
--- a/src/mame/includes/yiear.h
+++ b/src/mame/includes/yiear.h
@@ -19,6 +19,8 @@ public:
UINT8 m_yiear_irq_enable;
DECLARE_WRITE8_MEMBER(yiear_videoram_w);
DECLARE_WRITE8_MEMBER(yiear_control_w);
+ DECLARE_READ8_MEMBER(yiear_speech_r);
+ DECLARE_WRITE8_MEMBER(yiear_VLM5030_control_w);
};
@@ -28,6 +30,3 @@ public:
PALETTE_INIT( yiear );
VIDEO_START( yiear );
SCREEN_UPDATE_IND16( yiear );
-
-READ8_DEVICE_HANDLER( yiear_speech_r );
-WRITE8_DEVICE_HANDLER( yiear_VLM5030_control_w );
diff --git a/src/mame/includes/yunsung8.h b/src/mame/includes/yunsung8.h
index ef453d84bcf..5c17b5476c5 100644
--- a/src/mame/includes/yunsung8.h
+++ b/src/mame/includes/yunsung8.h
@@ -33,6 +33,7 @@ public:
DECLARE_READ8_MEMBER(yunsung8_videoram_r);
DECLARE_WRITE8_MEMBER(yunsung8_videoram_w);
DECLARE_WRITE8_MEMBER(yunsung8_flipscreen_w);
+ DECLARE_WRITE8_MEMBER(yunsung8_sound_bankswitch_w);
};
diff --git a/src/mame/includes/zaccaria.h b/src/mame/includes/zaccaria.h
index 3f13adf02a5..1c63431ef46 100644
--- a/src/mame/includes/zaccaria.h
+++ b/src/mame/includes/zaccaria.h
@@ -32,6 +32,15 @@ public:
DECLARE_WRITE8_MEMBER(zaccaria_flip_screen_x_w);
DECLARE_WRITE8_MEMBER(zaccaria_flip_screen_y_w);
DECLARE_CUSTOM_INPUT_MEMBER(acs_r);
+ DECLARE_WRITE8_MEMBER(zaccaria_dsw_sel_w);
+ DECLARE_WRITE8_MEMBER(ay8910_port0a_w);
+ DECLARE_WRITE_LINE_MEMBER(zaccaria_irq0a);
+ DECLARE_WRITE_LINE_MEMBER(zaccaria_irq0b);
+ DECLARE_READ8_MEMBER(zaccaria_port0a_r);
+ DECLARE_WRITE8_MEMBER(zaccaria_port0a_w);
+ DECLARE_WRITE8_MEMBER(zaccaria_port0b_w);
+ DECLARE_WRITE8_MEMBER(zaccaria_port1b_w);
+ DECLARE_WRITE8_MEMBER(mc1408_data_w);
};
diff --git a/src/mame/machine/mcr68.c b/src/mame/machine/mcr68.c
index e91ea9461c1..c5d75f9baae 100644
--- a/src/mame/machine/mcr68.c
+++ b/src/mame/machine/mcr68.c
@@ -79,7 +79,7 @@ const pia6821_interface zwackery_pia0_intf =
const pia6821_interface zwackery_pia1_intf =
{
DEVCB_HANDLER(zwackery_port_1_r), /* port A in */
- DEVCB_HANDLER(zwackery_port_2_r), /* port B in */
+ DEVCB_DRIVER_MEMBER(mcr68_state, zwackery_port_2_r), /* port B in */
DEVCB_NULL, /* line CA1 in */
DEVCB_NULL, /* line CB1 in */
DEVCB_NULL, /* line CA2 in */
diff --git a/src/mame/video/taxidriv.c b/src/mame/video/taxidriv.c
index b74dcfb03d1..647a53c7627 100644
--- a/src/mame/video/taxidriv.c
+++ b/src/mame/video/taxidriv.c
@@ -2,10 +2,9 @@
#include "includes/taxidriv.h"
-WRITE8_DEVICE_HANDLER( taxidriv_spritectrl_w )
+WRITE8_MEMBER(taxidriv_state::taxidriv_spritectrl_w)
{
- taxidriv_state *state = device->machine().driver_data<taxidriv_state>();
- state->m_spritectrl[offset] = data;
+ m_spritectrl[offset] = data;
}